一、注释
- 单行注释
// 单行注释
- 多行注释
/*
多行注释
多行注释
*/
- JavaDoc
/**
* @description 文档注释
* @author voldemort
*/
- javadoc是用来生成自己的API文档的
- 命令:javadoc -encoding UTF-8 -charset UTF-8 XXXX.java
二、基本数据类型
注:String 不是关键字,也不是基本类型,而是一个类。
- 什么是字节?
位是计算机内部数据存储的最小单位,用b表示。
字节是计算机中数据处理的基本单位,用B表示。
1B=8b,1KB = 1024B
- 进制
二进制0b 十进制 八进制0。十六进制0x
- 浮点数的局限性
浮点数的表示是不精确的,所以不能直接比较两个数是否完全相等。
float f = 0.1f; // 0.1
double d = 1.0/10 // 0.1
System.out.printIn(f==d); // false
float f1 = 1232114452;
float f2 = f1 + 1 ;
System.out.printIn(f==d); // true
故可以使用数学工具类BigDecimal实现银行业务。
- 所有字符本质仍是数字
char c = '\u0061' // a
- String
Sting sa = new String("a");
Sting sb = new String("a");
System.out.printIn(sa==sb); // false
Sting sc = "a";
Sting sd = "a";
System.out.printIn(sc==sd); // true
- 类型转换
低 -------------------------------------------> 高
byte,short,char-> int -> long -> float -> double
- 强制转换 高 -> 低
- 自动转换 低 -> 高
操作比较大的数的时候,注意溢出问题。
int money = 10_0000_0000
System.out.printIn(money); // 1000000000
int years = 20;
int total1 = money*years;
System.out.printIn(total1); // -1474836480 计算时溢出
long total2 = money*years;
System.out.printIn(total2); // 默认是int,转换之前已经存在问题
long total3 = money*((long)years); // 先把一个数转换为Long
System.out.printIn(total1); // 20000000000
注:JDK7新特性:数字之间可以用_分割
三、变量和常量
- 变量
public class Demo01 {
static int allClicks = 0; // 类变量
String str = "hello world"; // 实例变量
public void method(){
int i = 0; // 局部变量
}
}
- 常量
final 常量名 = 常量值
final double PI = 3.14;
注:常量名一般使用大写字符。
注:修饰符不存在先后顺序。
- 命名规范
变量(类成员变量、局部变量)和方法名:首字母小写和驼峰原则:lastName,runProject()
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:GoodMan
四、运算符
⚠️注意:优先级通过加括号控制
- 算数运算符
long a = 1234566L;
int b = 123;
short c = 10;
byte d = 8;
System.out.printIn(a+b+c+d); // 返回类型是Long
System.out.printIn(b+c+d); // 返回类型是Int
System.out.printIn(c+d); // 返回类型是Int
- 没有long时,所有非int型转为int型。
- 当一个较“小”数据与一个较“大”数据一起运算时,系统自动将“小”数据转换成“大”数据。
- 运算规则:先将运算级统一成该运算中最高的数据类型后再运算。
- 数学工具类Math
- 关系运算符
- 逻辑运算符 &&, || , !
// 短路运算
int c =5;
boolean d = (c<4)&&(c++<4);
System.out.printIn(d); // false
System.out.printIn(c); // 5
- 位运算符 &, |, ^, ~, <<, >>, >>>
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
<< 左移 *2
>> 右移 /2
例如:
2如何快速变成8
2<<3
*/
- 条件运算符 ?:
- 字符串连接符 +
// 短路运算
int a = 10;
int b = 20;
System.out.printIn(“”+a+b); // 1020
System.out.printIn(a+b+""); // 30
五、包机制
- 一般利用公司域名倒置作为包名:com.baidu.www
- packge必须放在最上面