使用1.6以上的JDK时,classpath默认为当前路径,不建议进行配置
byte与byte或(short,char)运算时候会提升为int,因为系统中整数默认类型为int
jvm在编译时无法判断变量中存储的值,只有在运行的时候才能知道变量里面的值。编译时只
判断所写程序是否语法错误,只有在运行是jvm才开始运行
java编译器有常量优化机制,在编译的时候已经将常量的运算结果算出
float取值范围比long要大,将一个float类型的变量赋值给一个long类型变量的时候,若没
有进行强制转换,程序在编译时候会报错(可能会损失精度)
java是按照UNICODE码进行编码的,中文占据两个字节
boolean类型的数据理论上占据八分之一个字节,但是java没有明确说明boolean类型的数据
数据类型 大小 范围 默认值
byte(字节) 8 -128 - 127 0
shot(短整型) 16 -32768 - 32768 0
int(整型) 32 -2147483648-2147483648 0
long(长整型) 64 -9233372036854477808-9233372036854477808 0
float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
char(字符型) 16 ‘ \u0000 - u\ffff ’ ‘\u0000 ’
boolean(布尔型) 1 true/false false
% 运算符结果的符号只与左边有关系,与右边无关
任何一个正整数%2的结果不是0就是1,可以用来当做切换条件
byte a=1; a++; 相当于byte a=1; a=(byte)(a+1);
byte a=1; a=a+1;会报错(可能会损失精度)
short a=1; a+=1; 相当于short a=1; a=(short)(a+1);
short a=1;a=a+1;会报错(可能会损失精度)
短路与、或的执行结果和与、或相同,但是在执行效率上短路与、或有时候要高于与、或
位异或的特点:一个数据对另一个数据异或两次,该数本身不变
if语句控制的语句体如果是一条语句,大括号可以省略,如果是多条语句,则不能省略,建
议永远不要省略
int a=10,是两句话,分别是int a; a=10;
三元运算符能实现的if else都能实现,而if else能实现的三元运算符不一定能实现(例如
,当if语句控制的操作是一个输出语句的时候)在开发时候能用三元运算符实现的尽量用三
元运算符,因为看起来容易,代码简答
switch语句可以接受的表达式内容有byte,char,int,short(可以自动提升为int类型的基本数
据类型),jdk1.5以后可以接受枚举类型,jdk1.7以上的版本可以接受String,case后面只能
是常量,不能是变量
switch结束执行只有两个条件,一个是遇见一个大括号,另一个是遇见break
对于固定值的判断,switch的效率比if高