1. 1.1 标识符命名规则
- 标识符命名规则
- 所有标识符都以字母(A-Z或者a-z)、美元符号($)或者下滑线(_)开始
- 首字符后可以使字母(A-Z或者a-z)、美元符号($、下滑线(_)或者数字
- 不能使用关键字作为变量名或方法名
1.1.2 数据类型
- 数据类型
-
byte占1个字节
-
short占2个字节
-
int占4个字节
-
long占8个字节(定义时数字后加L,不要用小写l,可能会误认为是数字1)
-
float占4个字节(定义时数字后加F)
-
double占8个字节
-
char占2个字节
-
boolean占1位
-
字符只能有一位
-
String是类,不是关键字
- 基本类型
- byte,short,int,long,float,double,char,boolean
- 引用类型
- 类,接口类型,数组类型,枚举类型,注解类型,字符串类型
1.1.3数据类型拓展
- 整数拓展
二进制 | 十进制 | 八进制 | 十六进制 |
---|---|---|---|
0b开头 | 无 | 0开头 | 0x开头 |
-
浮点数
银行业务不能用浮点数,得用BigDecimal类
-
字符
Unicode编码(0-65536)
char c1 = '\u0061';//a
String s1 = new String("hello"); String s2 = new String("hello"); System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true String s3 = "hello"; String s4 = "hello"; System.out.println(s3==s4);//true System.out.println(s3.equals(s4));//true
-
==:比较引用类型比较的是地址值是否相同
-
equals:比较引用类型默认也是比较地址值是否相同,注意:String类重写了equals()方法,比较的是内容是否相同。
-
1.1.4 类型转换
//优先级:低 --------------------------------> 高
byte,short,char->int->long->float->double
//强制转换 (类型)变量名 高->低
//自动转换 低->高
int i = 128;
byte b = (byte)i;//内存溢出
System.out.println(i);//128
System.out.println(b);//-127
- 注意点:
-
- 不能对布尔类型进行转换
- 不能把对象类型转换为不相干的类型
- 在转换的时候可能存在内存溢出或者精度问题
//在不同类型数据计算时,需要先转换类型再计算
int years = 20;
int money = 10_0000_0000;//JDK7新特性,数字之间可以用下划线分隔
int total_0 = money*years;//-1474836480 溢出了
int total = money*((long)years);//200_0000_0000
1.1.5 变量和常量
-
类变量
-
实例变量
-
局部变量
如果不初始化,数值型的默认值为0(0.0),布尔类型的默认值为false,除了基本类型,其他的默认值为null
public class Main {
/**/
static int salary=2500; //类变量
int age; //实例变量
public static void main(String[] args) {
Main m = new Main();
System.out.println(m.age);
}
public void method(){
int i = 0; //局部变量
}
}
/*实例变量必须用new来实例化一个对象才能使用,而类变量则不用
局部变量的作用域为当前方法,局部变量必须声明和初始化
*/
-
常量
常量名最好用大写字母和下划线
//(final)修饰符,不存在先后顺序
static final double PI = 3.14;
1.1.6 运算符
-
判断相等用“==”
-
逻辑运算符:&&,||,!
-
不同类型的整数相加:
- 有Long为Long
- 其余为int
-
不同类型的小数相加:
-
有double为double
-
位运算
- 与(&)或(|)非(~)异或(^)
- 左移(<<)右移(>>)
-
幂运算
double pow = Math.pow(3,2); System.out.println(pow);//8
-
字符连接符(+)
int a = 10; int b = 20; System.out.println(""+a+b);//1020 System.out.println(a+b+"");//30
-
三元运算符(? : )
int score = 50; String type = score < 60 ?"不及格":"及格";//不及格
1.1.7 JavaDoc
- @author 作者
- @version 版本号
- @param 参数名
- @return 返回值
- @throws 异常抛出
- @exception 异常类名
- @since 开发时JDK版本