/*
浮点数的特点
*/
//float 是不准确的,会舍弃误差 大约 接近但不等于 有限 离散
//double 最好完全使用浮点数进行比较
double a1=0.1/10;
float a2= 0.1f;
System.out.println(a1==a2);//结果是 false
System.out.println("===========================================");
float d1=23235324223423f;
float d2=d1+1;
System.out.println(d1==d2);//结果是 true
System.out.println("===========================================");
/*
字符串的特点
*/
//所有的字符串本质上都是数字
//编码 Unicode 表:如a=97 A=65 2字节 0-65536
char aa='a';
char ab='中';
char ac='A';
System.out.println(aa);
System.out.println((int)aa);
System.out.println(ab);
System.out.println((int)ab);
System.out.println(ac);
System.out.println((int)ac);
//转义字符
// \t 制表符
// \n 换行
//....
强制类型装换的注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候,强制转换,反之则是自动转换。
4.转换得时候可能存在内存溢出问题,或者是精度问题!
操作比较大的数的时候,注意溢出问题
如下
public static void main (String []args){
//JDK7的新特性,数字之间可以用下划线分割,且不会输出下划线
int money=10_0000_0000;
int years=20;
int total=money*years;//输出结果是-1474836480,计算的时候溢出了
long total2 =money*years;//默认是int,转换之前已经存在问题了。
long total3=monsy*((long)years);//先把一个数转换为long,那样就不会出错了。
System.out.println(total3)//输出结果是200_0000_0000
}
变量的作用域
1,类变量
(1)类变量是从属于类的
(2)变量类型前面要加上static
2,实例变量
(1)实例变量;从属于对象;如果不初始化,这个类型的默认值就是0
(2)布尔值的默认值是false
(3)除了基本数据类型,其余的默认值都是null
3,局部变量
(1)必须声明和初始化值
常量(关键词final) 定义方式(final+常量名=常量值)
常量(Constant);初始化(initialize)后不能再改变值!是不会变动的值
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序的运行过程中不允许被改变。
常量一般使用大写字符
变量的命名规范
所有变量,方法,类名;见名知意
类成员变量;首字母小写和驼峰原则;monthSalary
常量;大写字母和下划线;MAX—VALUE
类名;首字母大写和驼峰原则;Man,GoodMan
方法名;首字母小写和驼峰原则;run(),runRun()