八种基本数据类型
4种整形
| 名称 | 占用字节 | 范围 | 备注 |
|---|---|---|---|
| byte | 1 | -128~127 | |
| short | 2 | 正负3万 | |
| int | 4 | 正负21亿 | |
| long | 8 | 一般用不完 | 末尾加L |
2种浮点型
| 名称 | 占用字节 | 范围 | 备注 |
|---|---|---|---|
| float | 4 | 一般用不完 | 末尾加F |
| double | 2 | 一般用不完 |
特殊的浮点型
- 正无穷
- 负无穷
- NaN
需要精确计算请用BigDecimal
BigDecimal bigDecimal = new BigDecimal("3.37");BigDecimal bigDecimal2 = new BigDecimal("1.22");BigDecimal sum = bigDecimal.add(bigDecimal2);System.out.println(sum.doubleValue());
char
| 名称 | 占用字节 | 范围 | 备注 |
|---|---|---|---|
| char | 2 | A = 65 |
boolean
true false
变量
字母($)开头 由数字字母($)下划线组成
常量
final
final修饰的变量只能被赋值一次 但是变量指向的对象可以修改 如果要让其他类也能静态访问(类常量)可以用 public static final修饰
枚举
enum Size{SMALL,MEDIUM,LARGE} Size s = Size.SMALL;
数值类型转化
丢失精度
实线表示正常转化 虚线表示可能丢失精度

float转int 四舍五入
Math.round(f);
字符串
不可变的字符串
Java 里的 String常量是不可变的 因为不可变才能共享 提高效率 但是String变量的引用是可以变的
字符串的比较
字符串的比较必须用equals()方法而不能用== == 比较的是地址 equals先比较地址 再String里字符数组的每个位置的元素
字符串校验
if(str != null && !str.isEmpty()){}
拼接字符串
StringBuilder sb = new StringBuilder();String str = sb.append("1").append("2").append("3").toString();
StringBuilder 线程不安全 效率高 StringBuffer线程安全
StringBuilder里维护了一个字符数组 当append的时候会把参数的内容拷贝到数组里 最后toString的时候才创建String并返回
![]()
![]()
输入与输出
读取输入
Scanner in = new Scanner(System.in);String str = in.nextLine();int i = in.nextInt();String word = in.next(); //读一个单词 以空格分隔
格式化输出
printf

文件的输入于输出
Scanner PrintWrite

条件与循环
- 请不要用浮点型作为判断条件
- wait的判断最好用while不要用if 否则会产生虚假唤醒
switch
条件: byte short int char 枚举 字符串(1.7)
switch (i){case 1:System.out.println("我是1");case 2:System.out.println("我是2");System.out.println("上面没有break 所以我执行了");break;case 3:System.out.println("我是3");break;default:System.out.println("默认处理");break;}
数组
创建数组
int[] a = new int[100]; int[] a = {1,2,3}; int[]a = new int[]{1,2,3};
- 一旦创建 大小不可改变 如果想变可以用ArrayList
- 下标0 ~ length-1
打印数组
Arrays.toString

数组的拷贝

命令行参数

数组排序
Arrays.sort(arr) //快速排序
多维数组
- 创建
- 遍历
- 打印 Arrays.deepToString





