变量和常量命名规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):
包名:com.公司名.项目名.模块名... 全部小写
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则: monthSalary
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则: Man, GoodMan
方法名:首字母小写和驼峰原则: run(), runRun()
数值型-
[整型] :byte(1)、 short(2)、int(4)、 long(8)
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为short,byte,结果也是int
不存在byte,short常量 ,byte b=19; 19是int型,因为太常用,java内部自动会进行显式转换
double d = 2.0e-6*100000000.1;System.out.println(d);结果:200.0000002
[浮点型]:float(4)、 double(8)
不要使用浮点数进行比较,浮点数因为精度问题可能出错,如果要精确计算用BigDecimal
float d1 = 423432423f;
float d2 = d1+1;
d2是等于d1的
如果判断两个浮点数是否相等,但不需要精确计算的时候应该使用(f1-f2)< 1e-N 而不是使用(f1==f2),特别是在使用浮点数进行for循环的时候,切记使用(f1-f2)<1e-N
示例代码:double d = 0.001;
for (double i = 0; i<d ; i += d/10) {}
这样写是错误的,极有可能出现数学意义上i>d的情况,因为计算机在存取浮点数时是有精度损失的正确的写法应该是类似下面的写法double d = 0.001;
for (double i = 0; (d-i)>1e-9 ; i += d/10) {}
float数值要加F/f
double转float的时候采取的是四舍五入原则,double和float转整型时是截尾取整,而若要选用四舍五入则可以使用Math.round(参数)方法
因为精度问题,看起来相等的float值和double值不一定相等
eg: float f=0.4f; double d = 0.4; f > d ; f=0.40000000059604645 d=0.400000000000000000;字符型- char(2)
'a' != "a" 前者是字符,后者是字符串
char ch='';是错的,char里面不能存NULL,ch=' '才是正确的,里面存了个空格
char进行运算时,会转成int进行计算 eg:'2'+'2'=100
char的取值范围非负,所以与其他类型之间没有包含关系无法自动类型转换。char转换为int,long时进行无符号拓展
布尔型-boolean(1位 或 1byte,不同编译器并不一样,官方也没有说明,更广泛的说法是后者 1 byte)
不是C语言,0和1并不代表true/false
java中不允许if(a=b),除非a和b都是Boolean值,这时相当于执行下面语句
boolean a = true;
boolean b = false;if(a=b){system.out.printf("false");
}/*if(a=b) 等价于 a=b; if(a);*//*int m = 2;int n = 4;if(m=n)是错误的*/
数组的申明及初始化int[] arr = new int[5];int[] arr = {1,2,3,4};/*不允许分开写,下面是错误的int[] arr;arr={1,2,3,4}*/int[] arr = new int[]{1,2,3,4}; //注意右边不需要指明长度//允许这样写int[] arr;
arr = new int[]{1,2,3,4}
2.注意:arr.length是数组长度,不一定是元素长度,数组内部可能是空的,但length还是会计数
注意:基本数据类型变量是不会自行初始化
但引用数据类型会,整型为0,boolean为false,字符型&字符串型为NULL(unicode的0),object为NULL
=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。
==、!= 是所有(基本和引用)数据类型都可以使用
> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char)
扩展赋值运算符
自带强转功能 eg:short s =10; s+=10;是正确的
移位运算符
a>>n(a右移n位),,负数高位补1,正数高位补0,移移位相当于除2
a>>> n : 无符号右移,忽略符号位,高空位都以0补齐
左移和右移都可以与等号组合使用 eg int a =10;a>>=2;意为a右移2位
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态