JDK(java开发工具包)

JDK包含JRE,JRE包含JVM.
JDK的环境变量配置:
PATH: %JAVA_HOME%/bin;

变量

标识符的命名规定
**8大根本类型
byte,short,int,long,float,double,boolean,char**
Scanner工具类
`import java.util.Scanner;
Scanenr sc=new Scanner(System.in);
String name=sc.next();`
变量替换
`int a=c;
int b=a;
int c=b;`
根本类型的字面值
整数字面值是int类型
浮点数的字面值是double类型
字面值的后缀 lL fF dD
long g=100000000L;
float h=3.6F;
double s=3d;
根本类型的类型转换

//小转大---隐式转换byte a = 10 ;//把右侧的小类型byte类型的a,转成左侧的大类型long类型的b--能够间接转long b = a ; //大转小---显式转换double->intdouble m = 9.9 ;//拿着右侧的大类型double类型的m,转成左侧的下类型int类型的n--不能够间接转//解决方案是:强转/显示转化--加代码--(小类型)int n = (int)m ; //小类型long 大类型float//小转大  --能够间接转long x = 10;float y = x;//大转小 -- 不能间接转,须要强转float o = 9.9F ;//右侧的9.9字面值是double,非要变成float须要加后缀Flong p = (long) o ;//右侧的o是float类型是大类型.给左侧的plong类型小类型赋值--

运算规定

//1, 计算结果的数据类型,与最大类型统一System.out.println(3/2); //int/int--> int  -- 1 System.out.println(3d/2); //double/int --> double -- 1.5   //2, byte,short,char三种比int小的整数,运算时会先主动转换成intbyte a = 1 ;byte b = 2 ;byte c = (byte) (a + b) ;//右侧曾经变成大类型int了,给左侧的小类型,不能够间接赋值---须要强转 //TODO 测试short或者char的景象,同byte...//3,计算:光速运行一年的长度是多少米//整数运算时,曾经超出了int的范畴,就会呈现溢出景象//解决方案就是,把字面值是int类型,加后缀L转成long类型.System.out.println( 30000000L*60*60*24*365  );//4, java 对于小数运算时会产生不准确的景象System.out.println(1-0.8);//0.19999999999999996//5, 小数运算时的非凡值System.out.println(1.5/0);//InfinitySystem.out.println(0/0.0);//NaN -- not a number

自增自减++ --

int a = 1;//符号在后,先应用再变动System.out.println(a++);//1int b = 1;//符号在前,先变动再应用System.out.println(++b);//2System.out.println(++b+a+b++);//3+2+3//自减int c = 1;//符号在后,先应用再变动System.out.println(c--);//1int d = 1;//符号在前,先变动再应用System.out.println(--d);//0System.out.println(--d-d-d--);//-1-(-1)-(-1)

三元运算符 1 ? 2 : 3
---运算后果可能是2,也可能是3.到底是谁?由1决定.
--当1的地位判断成立时,后果就是2
--当1的地位判断不成立时,后果就是3

//1,定义两个变量int a = new Scanner(System.in).nextInt() ;int b = new Scanner(System.in).nextInt() ;//2,比两个数里的大值//判断a > b成立,就把a的值交给max保留.否则就把b的值交给max保留.int max = a > b ? a : b ;System.out.println("两个数里的大值是:"+max);//TODO 三个数里的大值?int c = new Scanner(System.in).nextInt() ;int res = max > c  ? max  : c ;System.out.println("三个数里的大值是:"+res);

逻辑运算符:后果是boolean值

  • !(取反,非真即假,非假即真)

       -- &(逻辑与) -- 示意并且关系       -- 1 & 2 ,想得到最终的后果是true,要求是:1是true并且2是true   -- &&(双与/短路与)-- 示意并且关系 --高效       -- 1 && 2 ,当1为false时,后果早都注定了是false,2的代码就会被短路不必执行了,提高效率   -- |(逻辑或) -- 示意或者关系       -- 1 | 2 ,想得到最终的后果是true,要求是:1是true或者2是true   -- ||(双或/短路或) -- 示意或者关系 --高效       -- 1 || 2 ,当1为true时,后果早都注定了是true,2的代码就会被短路不必执行了,提高效率
public class Test5_Runnian {    public static void main(String[] args) {        //1,接管用户输出的年号        int year = new Scanner(System.in).nextInt() ;                String desc = "平年" ;//给变量设置默认值        //2, 判断这个年是不是平年 -- 如果满足条件,就改成平年        //if(判断条件){干活}        //if(判断条件1 || 判断条件2){ 改成平年 }        //if(小条件1 &&  小条件2  || 判断条件2){ 改成平年 }        //if(能被4整除 &&  不能被100整除  || 能被400整除){ 改成平年 }        if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){             desc = "平年" ;        }        System.out.println(year+"年是"+desc);    }}