八种基本数据类型

4种整形

名称 占用字节 范围 备注
byte 1 -128~127
short 2 正负3万
int 4 正负21亿
long 8 一般用不完 末尾加L

2种浮点型

名称 占用字节 范围 备注
float 4 一般用不完 末尾加F
double 2 一般用不完

特殊的浮点型

  • 正无穷
  • 负无穷
  • NaN

需要精确计算请用BigDecimal

  1. BigDecimal bigDecimal = new BigDecimal("3.37");
  2. BigDecimal bigDecimal2 = new BigDecimal("1.22");
  3. BigDecimal sum = bigDecimal.add(bigDecimal2);
  4. 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;


数值类型转化

丢失精度

实线表示正常转化 虚线表示可能丢失精度

image.png

int -> float 丢失精度image.png

float转int 四舍五入

Math.round(f);


字符串

不可变的字符串

Java 里的 String常量是不可变的 因为不可变才能共享 提高效率 但是String变量的引用是可以变的


字符串的比较

字符串的比较必须用equals()方法而不能用== == 比较的是地址 equals先比较地址 再String里字符数组的每个位置的元素 image.png


字符串校验

  1. if(str != null && !str.isEmpty()){
  2. }

拼接字符串

  1. StringBuilder sb = new StringBuilder();
  2. String str = sb.append("1")
  3. .append("2")
  4. .append("3").toString();

StringBuilder 线程不安全 效率高 StringBuffer线程安全

StringBuilder里维护了一个字符数组 当append的时候会把参数的内容拷贝到数组里 最后toString的时候才创建String并返回 image.png image.png image.png


输入与输出

读取输入

  1. Scanner in = new Scanner(System.in);
  2. String str = in.nextLine();
  3. int i = in.nextInt();
  4. String word = in.next(); //读一个单词 以空格分隔

格式化输出

printf

image.png


文件的输入于输出

Scanner PrintWrite

image.png


条件与循环

  • 请不要用浮点型作为判断条件
  • wait的判断最好用while不要用if 否则会产生虚假唤醒

switch

条件: byte short int char 枚举 字符串(1.7)

  1. switch (i){
  2. case 1:
  3. System.out.println("我是1");
  4. case 2:
  5. System.out.println("我是2");
  6. System.out.println("上面没有break 所以我执行了");
  7. break;
  8. case 3:
  9. System.out.println("我是3");
  10. break;
  11. default:
  12. System.out.println("默认处理");
  13. break;
  14. }

数组

创建数组

int[] a = new int[100]; int[] a = {1,2,3}; int[]a = new int[]{1,2,3};

  • 一旦创建 大小不可改变 如果想变可以用ArrayList
  • 下标0 ~ length-1

打印数组

Arrays.toString

image.png


数组的拷贝

image.png


命令行参数

image.png


数组排序

Arrays.sort(arr) //快速排序


多维数组

  • 创建
    • image.png
  • 遍历
    • image.png
  • 打印 Arrays.deepToString
    • image.png