进制
- 二进制:0b
- 八进制:0
- 十六进制:0x
- BigDecimal 数学工具类
字符
Unicode编码,2字节 U0000~UFFFFF
布尔
boolean,不是bool
类型转换
- 不能对boolean转换
- 不能转换为不相干类型
- 高转低需要强制转换、低转高直接转
- 注意
int money = 10_0000_0000;
int years = 20;
long total = money * years;
结果先是int再转为long,所以无效 正确操作:
long total = 1l * money * years;
- 整数运算,有long转换为long,没long转换为int
short a = 1;
byte b = 2;
System.out.println(a+b); //结果是int类型
变量&常量
- 局部变量
- 实例变量:从属于对象,如果不初始化,会有默认值
- 类变量:加static关键字
- 常量: final(常量名一般用大写)
public class demo1 {
static final double PI = 3.1415925;
static double salary = 30000; //类变量
int age; //实例变量
public static void main(String[] args) {
System.out.println(salary);
demo1 demo = new demo1();
System.out.println(demo.age);
System.out.println(PI);
}
}
包机制
项目管理界面右键创建package
import base1.helloworld; //从src下一层开始
import base1.*; //导入包中所有的类
生成Javadoc文档
- /** + enter
- 命令行界面javadoc -encoding UTF-8 -charset UTF-8 xxx.java
Scanner输入交互
package base;
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println(str);
}
scanner.close();
}
}
scanner还有scanner.hasNextDouble()、scanner.hasNextInt()等骚操作
其他零碎知识点
- 字符串比较用equal,不能用==
s.equal(b)
- print和println一个换行一个不换行
- 增强型for循环(和C++一样的)
int[] number = {10, 20, 30, 40, 50};
for(int x: number) {
System.out.println(x);
}
学习资源