陆陆续续学了一段时间,现在对所学内容做些总结,方便自己日后可以经常复习。希望各位大佬们可以指出错误或补充些遗漏的内容。(*^_^*)
一、八大基本类型
整数 int ,byte,short,long 注意long用大写L比较利于区分。二进制0b,八进制0,十六进制0x注意这里是零而不是o哦!类型转换低到高自动转换,byte,short,char->int->long->float->double。转换可能会存在内存溢出和精度问题。
int i = 128;
byte b = (byte)i;//强制转换 内存溢出 -128
System.out.println(i);//128
System.out.println(b);//-128
System.out.println((int)-45.89f);//-45
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2 = money*years;
long total3 = (long)money*years;
System.out.println(total);//-1474836480 计算时溢出了
System.out.println(total2);//-1474836480 默认是int转换前已经存在问题;
System.out.println(total3);//20000000000
浮点数 float,double这里大写F同理。float的存储方式和整数的不同。float是有限的,离散的,含入误差的,是属于接近但不等于,所以最好完全避免用浮点数进行比较。插一句,银行一般采用Java写好的BigDecimal来进行小数的比较。
float x = 0.1F;//0.1
double y = 1.0/10;//0.1
System.out.println(x==y);//false
float z = 6666666666666666F;
float g = z+1;
System.out.println(z==g);//true 栈溢出了
字符 char用'单引号'单字,String用“双引号”表字符串,注意这里String并不是八大基本类型,关键字,是类。所有字符的本质还是数字。字符串之间是用equal比较的,虽然还不懂什么意思,但就先记着,后面学了应该就懂了。这里new的String的方式是创建了一个内存堆,比较的是指向的内存堆的位置是否相同,在这虽然内容相同但地址不同。
char c1 = 'a';
char c2 = '中';
System.out.println((int)c1);//根据ASCII表强制转换,输出97
char c3 = '\u0061';//Unicode编码
System.out.println(c3);//输出a
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true
布尔值Boolean赋值true or false。在if语句中尽量规范,避免if(a==true){}这类的写法,if条件默认为true。在类型转换中,不能给Boolean转换。
boolean a = true;
if(a){
}
二、注释
注释不参与程序的运行。常见的有/*内容*/,//内容,doc文件
三、变量
局部变量:必须先声明和初始化。eg:代码里的a;
实例变量:在方法之外,从属于对象。不用初始化,默认0或0.0,boolean是默认false,其余都是null,调用得先new一个对象。eg:代码里的name,age;
类变量:在声明前加修饰符static,从属于类,会在该类第一次执行时运行,且只执行一次。eg:代码里的salary;插一句:修饰符不分先后顺序。
public calss Demo01{
String name;
int age;
static double salary = 666666;
public static void main(String[] args){
int a = 1;
Demo01 demo01 = new Demo01();
System.out.println(a);//1
System.out.println(demo05.age);//0
System.out.println(demo05.name);//null
System.out.println(salary);//666666.0
}
}
四、常量
常量用final定义,定义名为大写字母和下划线组成。
这里顺便提一嘴命名规则:
类成员变量,方法名:首字母小写和驼峰原则:monthSalary 常量:大写字母和下划线:MAX_VALUE 类名:首字母大写和驼峰:Man,GoodMan
未完待续