本文共 1905 字,大约阅读时间需要 6 分钟。
- 组成关键字的字母全部小写(那么有大写字母的肯定不是关键字),goto,const作为保留字存在,现在并不使用了。
- 标识符的组成:英文字母,数字,下划线和$(美元符号),不能以数字开头,不能是java中的关键字。
- 包(用于把具有相同的类名进行区分):命名全部小写。单级包:a,多级包:a.b.c(就是a下有b,b下有c).
- 类或接口:每个单词的首字母大写。
- 方法或者变量:第一个单词的首字母小写,其余单词的首字母大写。
- 常量:(1)一个单词,全部大写(2)多个单词,每个字母大写,单词之间用下划线分开。例子:MAX_NUMBER
- 注释://单行注释 /* */ 多行注释 /** */文档注释(被javadoc工具解析成一个说明书)
- 二进制以0b开头,八进制以0开头,十六进制以0x(X)卡头(是零不是欧);
- 计算机中的计算都是采用补码进行的(位运算的效率最高)。正零负一。
- 进制转换:每一位上的系数*基数^权次幂相加。
- 数据类型:基本数据类型:byte(1个字节)short(2) int(4) long(8)char(2)float(4)double(8)Boolean(1).引用数据类型:类(class),接口(interface),数组([])。
- 整数的默认类型是int类型,浮点数的默认类型是double类型。
- 长整形的后缀要加L或l(一般用大写的,小写的像一);
- Float类型后面要加F或f;
- 没有初始化值得变量不能直接使用,只要在使用之前给值就行,并不一定非要在定义的时候就立即给出值。
- 默认转换:从小到大的转换,byte,short,char-----int ----long------float---double;byte,short,char相互之间不转换,它们参与运算时首先转换成int类型。Boolean不能转换成其它类型。
- 强制转换(从大到小的转换):目标类型 变量名=(目标类型)(被转换的数据)(尽量不使用强制转换,可能损失精度)。
- ‘0’=48 ,’A’=65 , ‘a’=97(ascII码);
- 常量计算时,先把结果计算出来,然后看是否在数据范围类,如果在就不报错。变量在进行运算时,一般首先进行类型提升(提升到默认类型)
- 变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。常量相加,首先做加法,然后看结果是否在赋值的数据类型范围之内,如果不是才报错。
- 字符串数据和其他类型数据相加,结果是字符串,这里的加号连接符。
- Byte short 在定义的时候,它们接收的其实是一个int类型数据,相当于自己做了一个数据检测,如果不在其范围之内就报错。
- Long表示的范围比float小,这是因为二者的存储结构不同。
- Java语言中的字符占用两个字节,所以java语言中的字符char可以存储一个中文汉字。Java预言采用的unicode编码。
- 整数相除只能得到整数。常量不可变,例子10++是错误的。
- ++等都是为变量进行操作的,单独使用放在操作数的前后得效果是一样的。参与运算使用时,放在操作数的前面,先自增,然后参与运算。放在操作数的后面,先参与运算,在自增。
- 扩展的赋值运算符(+=,-=,*=等)其实隐含了一个强制类型转换。例子;s+=1不是等价于s=s+1.而是等价于s=(s的数据类型)(s+1).
- 比较运算符无论操作是简单还是复杂,结果都是boolean类型。
- >=,<=,只要有一个满足就可以,>=(简单认为是>或等于,不是且的关系)
- 逻辑运算符(&,|等)用于连接布尔型表达式。
- &:有false就是false,|有true就是true.^相同为false,不同为true.
- &&和&:最终结果一样,&&具有短路效果,左边是false,右边就不执行了,效率高。||和|:最终结果一样,||具有短路效果,左边是true,右边就不执行了。效率高。
- 要做位运算,首先要把数据转换成二进制。
- &(与)|(或)^(异或)~(取反)(都是补码,但是显示是原码,所以要转换) >>>(无符号右移)
- ^的特点:一个数据对另一个数据异或两次,改数本身不变。(a^b^b=a).
- 实现两个数的交换,左边是a,b,a,右边是a^b. 一句话搞定就是b=(a+b)-(a=b);
- 左移:左边最高位丢弃,右边补零。
- 右移:最高位是零,左边补齐零,最高位为一,左边补齐一。
- 无符号右移:无论最高位是0还是1,左边补齐0;
- 左移乘,右移除(2^的移动的次幂) -------->待续
转载于:https://www.cnblogs.com/yc74/p/5336004.html