1.分析代码
package example; public class exam { public static void main(String[] args) { // TODO Auto-generated method stub 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};
运行结果:
枚举类型常见用法:
https://blog.csdn.net/testcs_dn/article/details/78604547
2.同名变量的屏蔽原则
在java中,局部变量可以覆盖全局变量的值。
3.
byte:1字节 -128~127
short:2字节 -2^15~2^15-1
int :4字节 -2^31~2^31-1
long:8字节 -2^63~2^63-1
boolean:1字节 true false(java中不能以0或非0代替)
float: 4字节 -3.403E38~3.403E38
double:8字节 -1.798E308~- 4.9E324
char:2字节 ’\u0000‘~' ’\uffff '(16进制的,换算过来即0~65535)
(1字节等于8位)
注:低精度向高精度转化不丢失精度,从高精度转向低精度会损失。
4.
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计算不准确,会损失精度;String类型可以准确计算。
5.
int X = 100;
int Y = 200;
System.out.println("X+Y=" + X + Y);
//字符串后面的加号起的是连接的作用,即"X+Y"后面的加号会自动的把X转换为字符串100,这样X也就成为字符串了
//同样的道理,X后面的加号会把Y转化为字符串200,所以最后的输出结果为"X+Y="100200
System.out.println(X + Y + "=X+Y");
//因为X前面没有字符串,所以X和Y要先进行普通的加法运算,所以最后的输出结果为300=X+Y