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->int
double 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需要加后缀F
long 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小的整数,运算时会先自动转换成int
byte 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);//Infinity
System.out.println(0/0.0);//NaN -- not a number
自增自减++ --
int a = 1;
//符号在后,先使用再变化
System.out.println(a++);//1
int b = 1;
//符号在前,先变化再使用
System.out.println(++b);//2
System.out.println(++b+a+b++);//3+2+3
//自减
int c = 1;
//符号在后,先使用再变化
System.out.println(c--);//1
int d = 1;
//符号在前,先变化再使用
System.out.println(--d);//0
System.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);
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。