整型

byte 字节整数 short 短整数 int 整数 long 长整数

注意:=的两边数据类型要一致 注意:java默认的整型是int类型 注意:如果要表示long类型的数字,给数字的后面加L或者l浮点型

float:单精度

double:双精度

注意:java默认的浮点型是double

注意:如果要表示float类型的数字,给数字的后面加F或者f字符型

char 实际上字符型在计算机的底层是一个 正整数

注意:java默认采用的是unicode字符集,所以char类型占2个字节

注意:'' 和' '的区别 ''表示空字符文字,char类型不允许这么表示,是错误的 ' '表示空格字符,是允许的布尔型

boolean 2个值:true和false

## 类型转换

类型转换的问题

1:自动类型转换

如果多个类型之间的变量做运算,会按照数据类型从小到大的顺序一一做转换byte-->short char--->int-->long--->float--->double

2:强制类型转换

将大类型数据强制转换为小类型数据,可能会损失精度,结果不准确

## 标识符

给变量,常量,方法,类,包等起名的规则 1:不可以是数字开头 2:开头可以是字母,汉字,下划线_,美元符$ 3:后面可以跟字母,汉字,下划线_,美元符$,数字 4:区分大小写,长度无限制 5:不可以是java关键字 6:类的命名规则:驼峰原则,首字母大写

字符集

注意:二进制的高位是0,表示这个数字是正数,高位是1,表示这个数字是负数

注意:计算机最终保存的是补码的形式

Unicode包含ASCII,前128位

编程语言分类

强数据类型语言

JAVA, C, C++ 为代表

先定义类型,后赋值,等号的左边已经把类型固定了

弱数据类型语言

PHP,JS等为代表

根据等号的右边,右边给什么值,那么左边就是什么类型

运算符

自增和自减

System.out.println((a++)+(++a)+(a++)+(++a)+(a++))

赋值运算符

c=c+20和c+=20的区别? * c =c+20编译直接报错,因为=左右两边的类型不匹配 * c+=20 可以执行,c = (byte)(c+20),因为,对最后的结果做了强制类型转换,=号两边类型匹配,注意结果有可能损失精度

逻辑运算符

&:单与 当2个表达式的结果都为true的时候,整体结果才为true,否则就为false

|:单或 当2个表达式的结果都为false的时候,整体结果才为false,否则就为true

^:异或 当2个表达式结果不一样的时候,结果就为true,否则就为false

注意:&,|,^有2种用法

1:做逻辑运算 不常用

2:做位运算(2进制运算 常用)

&&:双与(短路与): 当2个表达式的结果都为true的时候,整体结果才为true,否则就为false

||:双或(短路或): 当2个表达式的结果都为false的时候,整体结果才为false,否则就为true

!:非,表达式为true,结果为false,反之结果为true

注意:&和&&的区别

当第一个表达式为true的时候,这两个吗没有任何区别

当第一个表达式为false的时候,&还要继续判断第二个表达式,最后结果为false

当第一个表达式为false的时候,&&表示短路与,不会继续判断后面的表达式,整体的结果就是第一个表达式的结果

短路与的效率更加高,实际开发中,常用短路与判断

注意:|和||的区别

当第一个表达式为false的时候,这两个没有任何区别,后面的表达式都要判断

当第一个表达式为true的时候,|还要继续判断第二个表达式,最后结果为true

当第一个表达式为true的时候,||表示短路或 不用判断第二个表达式,整体的结果就是第一个表达式的结果

短路或的效率更加高,实际开发中,常用短路或判断:双与(短路与): 当2个表达式的结果都为true的时候,整体结果才为true,否则就为false

||:双或(短路或): 当2个表达式的结果都为false的时候,整体结果才为false,否则就为true

!:非,表达式为true,结果为false,反之结果为true

注意:&和&&的区别

当第一个表达式为true的时候,这两个吗没有任何区别

当第一个表达式为false的时候,&还要继续判断第二个表达式,最后结果为false

当第一个表达式为false的时候,&&表示短路与,不会继续判断后面的表达式,整体的结果就是第一个表达式的结果

短路与的效率更加高,实际开发中,常用短路与判断

注意:|和||的区别

当第一个表达式为false的时候,这两个没有任何区别,后面的表达式都要判断

当第一个表达式为true的时候,|还要继续判断第二个表达式,最后结果为true

当第一个表达式为true的时候,||表示短路或 不用判断第二个表达式,整体的结果就是第一个表达式的结果

短路或的效率更加高,实际开发中,常用短路或判断

位运算符

1:位运算的操作数和结果都是整数2:如果操作数是byte,short,char,做运算之前先转为int在运算,结果也是int~ 按位取反 0变1,1变0

& 按位与 2位做与运算, 都为1,结果才为1,其余都为0

| 按位或 2位做或运算,都为0,结果才为0,其余都为1

^ 按位异或(相同为0相异为1)

》》按位右移 右移;左边空位补最高位即符号位

对这个数字除以2的操作,移位几次,就除以2几次

<< 按位左移 右移;右边空位补0

对这个数字乘以2的操作,移位几次,就乘以2几次

注意:当左移范围超过int的最大值,会损失精度

》》》无符号右移,左边空位补0

当操作数是正数的时候,>>和>>>没有区别

当操作数是负数的时候,>>和>>>有区别,不管是正负数,左边都补0

面试题:使用最高的效率计算2^4

2<<3

222*2

三目运算符 x?y:z

表达式1?表达式2:表达式3 * 10>5?10:5

如果表达式1成立(为true),就返回表达式2的值,否则返回表达式3的值

作用:可以代替简单的if语句,做比较运算 * 注意 * 1:三木运算符的数据类型可以是哪种类型? * 可以整型,浮点型,char * 2:三木运算符,运算之前,会将不同的类型转为相同的类型,再做比较,将小类型转为大类型(自动类型转换) * 3:当char类型和int类型做比较的时候 * 当结果没有超过char的范围,按照char类型显示结果,如果超过char的范围,按照int类型显示结果