数据类型转换:
1.自动类型转换(隐式):特点时代码不需要进行特殊处理,自动完成。规则是数据范围从小到大,不是所占字节大小,是表示数据范围,例如float转换成long。
2.强制类型转换(显式):特点是代码需要特殊的格式处理,不能自动完成,比如数据范围从大到小。
强制类型转换时可能会发生精度损失或者数据溢出,(整数)数据溢出是代表被转换的类型范围不够 大,装不下原数据,所以溢出。(小数)精度损失是代表转换后数据小数位可能发生损失。
byte、short、char三种数据类型可以进行运算,在进行运算时都会先强制转换为int类型然后再进行运 算。
数字和字符的对照关系表(编码表):有ASCII码表盒Unicode码表(万国表)两种,Unicode码表的0-127部分和ASCII表一样,但是从128开始包含有更多的字符,包含中文、表情等。 特别记忆:‘0’—48,‘A’—65,‘a’—97。
四则运算中的“+”常见三种用法:
1.对于数值来说,就是加法。
2.对于字符char类型来说,在计算之前,char会被提升为int,然后再计算。char类型字符,和int类型字符,之间的对照关系表:ASCII、Unicode
3.对于字符串String来说,加号代表连接操作,任何数据类型和字符串进行连接的时候,结果都会变成字符串,例如:“abcd”+20+30=abcd2030。
运算符:
一元运算符:只需要一个数据就可以进行操作的运算符,例如:取反!、自增++、自减--
二元运算符:需要两个数据才可以进行操作的运算法,例如:加法+、减法-
三元运算符:需要三个数据才可以进行操作的运算符,?:
方法定义时的注意事项:定义方法时需要在类中定义,在其它方法旁边定义,成为一个单独的方法,不能在方法内定义其它的方法,但是可以在方法内调用别的方法。
jshell:Java 9 新增的一个交互式的编程环境工具。它允许你无需使用类或者方法包装来执行 Java 语句。它与 Python 的解释器类似,可以直接输入表达式并查看其执行结果。适用情况是所运行代码简单到连一个文件都不需要建立,三两句就能解决,可以使用jshell直接进行运行。
编译器的两点优化:
1.对于byte、short、char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。
①:如果右侧没有超过左侧的范围,编译器自动补上强转。
②:如果右侧超过了左侧范围,溢出,那么直接编译器报错。
2.在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,那么编译器javac在编译时就会将所有常量计算得到结果,不需要在程序中占用内存运算,这称为“编译器的常量优化”,一旦有变量参与运算,则需要在程序运行时运算。
例如:int result = 5+8,编译后得到的.class字节码文件中则是 int result = 13
觉得有用的小伙伴请点赞、评论或收藏一下多支持支持博主小弟,跪安~~