动手动脑
1、枚举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换 Size u=Size.valueOf( "SMALL" ); System.out.println(s==u); //true //列出它的所有值 for (Size value:Size.values()){ System.out.println(value); } } } enum Size{SMALL,MEDIUM,LARGE}; |
运行结果:
分析与结论:
①、在枚举变量中,使用==和equals()的结果是一样的;
②、原始数据类型有八个:byte、short、int、long、boolean、char、float、double;枚举类型是引用类型
③、getClass() 方法返回和当前枚举常量的枚举类型对应的 class 对象;
④、枚举可以限制范围,只可在枚举类中选。
2、同名变量的屏蔽原则
1 2 3 4 5 6 7 | public class Test1 { private static int value= 1 ; public static void main(String args[]) { int value= 2 ; System.out.println(value); } } |
结果:
分析与结论:
java变量遵循“同名变量的屏蔽原则”,第一个value是成员变量,也是全局变量,第二个value是局部变量,局部变量可以覆盖全局变量;
3、JAVA中的类型转换
short 16位 -32768~32767 -2^15~2^15-1
int 32位 -2147483648~2147483647 -2^31~2^31-1
long 64位 -922372036854775808~9223372036854775807 -2^63~2^63-1
float 32位 1.4e-45~3.4028235e38
double 64位 4.9e-324~1.7976931348623157e308
一般来说在实线两端都是由低精度指向高精度的类型,所占的位数从低到高,范围从小到大,所以可得出,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
4、
1 2 3 4 5 6 7 8 9 | public class TestDouble { public static void main(String args[]) { System.out.println( "0.05 + 0.01 = " + ( 0.05 + 0.01 )); System.out.println( "1.0 - 0.42 = " + ( 1.0 - 0.42 )); System.out.println( "4.015 * 100 = " + ( 4.015 * 100 )); System.out.println( "123.3 / 100 = " + ( 123.3 / 100 )); } } |
运行结果:
分析与结论:
使用double类型进行计算,结果是不精确的。因为这个涉及到二进制与十进制的转换问题。
5、
1 2 3 4 5 6 7 8 | public class Test2 { public static void main(String args[]){ int X= 100 ; int Y= 200 ; System.out.println( "X+Y=" +X+Y); System.out.println(X+Y+ "=X+Y" ); } } |
运行结果:
分析与结论:
原因,+X+Y,表示依次输出XY的值,而X+Y表示一种运算。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步