一、初始变量
初始变量就是对变量进行第一次赋值,运行代码以最终的赋值结果进行输出。
public classdatatype {public static voidmain(String[] args) {int a =1; //声明初始变量
a =2;
System.out.println(a);int b =1; //声明初始变量
int c =10;
b=c;
System.out.println(b);
}
}
输出结果为:
二、自动类型转换(隐式转换)
短的类型可以赋值给长的类型,反过来则会编译异常。
public classdatatype {public static voidmain(String[] args) {byte c = 10;int d =c;
System.out.println(d);
}
}
运行结果:
当然也有强制转换,但是有丢失精度和溢出的风险:
三、有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
四、byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
char 会按照ASICC码的值进行计算。
五、当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
六、boolean 不能转换为其他类型
总结:
数字类型的运算规则:
1、有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种做据类型,然后再进行计算。数字类型的从小到大分别是byte、short、int、long、float、double。
2、数字类型的运算中,多个相同类型变量参与的运算,变量要先转换为相对应的数据类型的默认类型(比如两个byte类型的变量相加,会先把两个byte类型的变量转换成默认的int类型之后再计算,得到的结果是int类型)。
3、byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
练习题:
String str1 = 4; //判断对错:错 需要加上双引号
String str2 = 3.5f + “”; //判断str2对错:对 这里的f是只浮点型float
System.out.println(str2); //输出:3.5
System.out .println(3+4+“Hello!”); //输出:7Hello! 说明java是按照数学的从左往右的运算方式
System.out.println(“Hello!”+3+4); //输出:Hello!34
System.out.println(‘a’+1+“Hello!”); //输出:98Hello!
System.out.println(“Hello!”+‘a’+1); //输出:Hello!a1
ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个字符的编码,比如空格“SPACE"是32(二进制00100000),大写的字母A是65(二进制01000001