数据类型与运算符知识总结【Java】
1,java中把函数叫作方法,这与C语言的叫法有差异,但使用规则相同,只不过不用声明,相对C语言,使用更方便一些。 ,2,java中没有无符号数的概念,C语言中,二进制运算部分总是牵扯到无符号数概念,忽略这个概念可能导致对结果的误判。 3,java中拥有包装类和基本类两个概念,通俗点说包装类是定义对象的,调用需要引用对象地址,而基本类型则不需要,与C语言中使用方法类似。 4,每种基本类型有对应的包装类, byte,1个字节,对应包装类Byte; int,4个字节,对应包装类Integer; long ,8个字节,对应包装类Long,但要注意赋值形式为 long a=100 L,后面带L,否则会被编译器判别为类型错误; double ,8字节,对应包装类Double,可以精确到11位; float, 4字节,对应包装类Float ,赋值形式为 float f=12.5 f,如果不带后面的f,会被编译器默认12.5为double,就会报错; char ,2字节,对应包装类 Character,相对于C语言里的char,它可以放汉字,因为用的是unicode 表 ,但是char类型不能存负数; short ,2字节,对应包装类 Short; boolean ,JVM标准中未说明这个类型几个字节,包装类Boolean,它只有 true和false两个值(java中没有 0是假,非0是真这一说,这个与C语言有着本质区别)。 5,java中使用数据类型时,有两个点必须要注意:局部变量使用时必须初始化,否则编译不通过;任何类型赋值不能超过取值范围。 6,数据类型分,基本/内置/简单类型(有整数,小数,字符), 和引用类型(字符串,数组, 类,接口,枚举)。基本类型和引用类型将在后期进一步阐释差别。 7,字符串的包装类是String,字符串和任何类型的数据用加号拼接后还是字符串。
public static void main6(String[] args) {
int a=10;
int b=20;
System.out.println("a="+10);
System.out.println("hello"+a+b);
可以看到,第一个计算表达式,得到的是a=10,而不是20; 第二个计算表达式,得到的是hello1020,而并没有经过运算,这就是我要说的,字符串和任何类型的数据用加号拼接后还是字符串。 当然字符串还有一个特性就是,如果字符串在前面,那么整个就是字符串字;如果符串在后面,它就会先运算,再拼接,最后形成字符串;
8,java中变量定义默认采用小驼峰的形式,即 numDig形式, 大驼峰 即 NumDig ,但任何时候不要用拼音命名,大驼峰用于类名。
9,C语言中 用const修饰常量, java用 final 修饰常量,要放类前面,比如 final int A=10,一经final修饰,A就成了常量, 常量值不能改。final修饰变量最好用大写,方便辨识。 10,数据类型的赋值与类型转换过程中,还有一些需要注意, 比如,小字节数可以赋给大字节变量,但大字节赋值给小字节变量,必须要强制类型转换; 低精度赋给高精度的变量也不可以,但反过来可以; boolean类型不能和其他任何类型转换。 11,运算中的整形提升问题,这个在C语言中也会遇到,程序为了提高运算效率,就会把小于整形类型,提升为整形后再进行运算,但这就造成了运算后,等号两边数据类型不匹配,导致出现问题。比如,两个byte变量运算后会变成整形,需要强制类型转换为byte,如下图代码所示:
public static void main9(String[] args) {
byte a=10;
byte b=21;
}
12,整形与字符串的互相转换, int 转string ,String str1=num+"" 或者 String str2=String.valueOf(整形变量) string转int, int a=Integer.valueOf(str) 或者 int ret= Integer.parseInt(str)
public static void main10(String[] args) {
int a=10;
String str1=a+"";
System.out.println(str1);
String str3=String.valueOf(a);
System.out.println(str3);
String str="123";
int b=Integer.valueOf(str)+1;
System.out.println(b);
}
13,写代码过程中,总会出错,在C语言中,错误称为bug,而java中称为换异常,比如除数不能为0,不然会显示算数(Arithmetic)异常。要注意的是,只要程序某一行出错,剩下代码都将不会被执行。 14,运算符,类似于+=,-= 形式的称为复合运算符,使用复合运算符的一大好处是,程序会自动进行强制类型转换,就不会出现前面讲的,整形提升后出错。有一个特殊案例,int a=10,a=a++ ,输出结果 a=10,这与C语言结果是不同的。
public static void main(String[] args) {
short sh=10;
sh+=19;
System.out.println(sh);
int a=10;
int b=10;
b=b++;
a++;
System.out.println(a);
System.out.println(b);
}
可以看下运行结果 可以看到,b在++后得到的仍然是10,这与C语言中的结果是不同的,具体原因,将在后面讲到。
15,在java中,关系表达式的结果,只会是true 或 false。 以&&表达式为例,表达式1和表达式2只能是关系表达式(必须是布尔类型),并且表达式1为假就不再执行2。 16,介绍一个运算符,>>> ,它被称为无符号右移位运算符,即无论正负数,右移统统补0。 17,三目运算符,这个也与C语言中用法相同, 表达式1?表达式2:表达式3 ,只不过 表达式1必须为关系表达式。 18,注释,java注释分三种: \ 单行注释,用的注释 * \ 多行注释,不推荐用, * *\ 文档注释,可自动生成文档 大段注释,ctrl shift \ 行注释,ctrl \
|