java基础知识整理

57 阅读2分钟

8种基本数据类型

  • byte -> Boolean
  • short -> Short
  • int -> Integer
  • long -> Long
  • char -> Character
  • float -> Float
  • double -> Double
  • boolean -> Boolean

包装类型

  • Integer i2 = Integer.valueOf(1);
  • Integer i3 = new Integer(1);

基本类型

  • int i = i2.intValue();
  • int ii = 1;

JDK1.5 自动拆箱和装箱;

  • Integer iii = 4;
  • int iiii = iii + 1;

字符串 <==> 基本类型

  • int aa = Integer.parseInt("1");
  • String aaStr = String.valueOf(1);
  • String aStr = 1 + "1";

+符号: 自动拆箱, 字符串连接符, 求和运算符, 基本类型转换字符串

字符串 String

构造方式:

1String str = "hello"; // 方法区常量池
2String str = new String("hello"); // 堆中新建对象
3String str = new String(new char[]{'a', 'b', 'c'}); // 堆中新建对象
4String str = new String(new byte[]{ 97, 98, 100 }); // 堆中新建对象

常见函数:

  • charAt();
  • concat();
  • contains("A");
  • startsWith("a");
  • endsWith("z");
  • equals("abc"); // 重写Object的equals方法, 比较内容
  • indexOf("o");
  • lastIndexOf("z");
  • toCharArray(); //转换字符数组
  • Arrays.toString(数组); // [a, b, c, d]
  • isEmpty(); //是否是空字符串
  • replace();
  • split("==="); // 分隔符放在尾部不起作用, 放在首部分割出空字串元素
  • substring(startIndex, endIndex(可选));
  • toUpperCase();
  • toLowerCase();
  • trim();
  • length();

内存分析

String newStr2 = "ab" +"cd";// 拼接之后就是字符串常量池的地址,常量池中字符串数据只有一份,因此地址也是一个 String newStr ="abcd"; newStr2==newStr // true; 方法区内相同字符串 用 == 比较 得 true String str = str1 + str2; => String str = new StringBuilder().append(str1).append(str2);(内存地址是堆中的) final String str = "hello"; // 内存地址是方法区常量池

可变字符串

  • +号连接
  • StringBuffer sb = new StringBuffer("abc").append("abc"); 此外还有 insert delete replace length 等方法; 线程安全,相比+连接快
  • StringBuilder sb2 = new StringBuilder(); 线程不安全,相比前两个快

泛型

  • 泛型类 创建对象时明确具体类
  • 泛型方法 实现方法时明确具体类
  • 泛型接口 实现接口/或者继承类被new时明确具体类
  • <? extends Object> 是Object及Object的子类
  • <? super Object> 是Object及Object的父类
  • <?,?,?> 泛型类是一个或多个

集合

Collection

collection
add()添加元素
addAll()添加集合
contains()是否包含某元素
equals()比较内容是否相等
isEmpty()是否为空
remove()删除某个元素
size()集合长度
toArray()转换为数组

// foreach // 迭代器

collections
addAll()添加集合
sort()排序
binarySearch()二分查找
reverse()倒叙
list
add()添加元素
addAll()添加集合
contains()是否包含某元素
equals()比较内容是否相等
isEmpty()是否为空
remove()删除某个元素
size()集合长度
toArray()转换为数组
map
add()添加元素
addAll()添加集合
contains()是否包含某元素
equals()比较内容是否相等
isEmpty()是否为空
remove()删除某个元素
size()集合长度
toArray()转换为数组
tree
add()添加元素
addAll()添加集合
contains()是否包含某元素
equals()比较内容是否相等
isEmpty()是否为空
remove()删除某个元素
size()集合长度
toArray()转换为数组