Java基础类库
包
1、java.lang包:java类库中的核心部分,包含System系统类、数学运算的Math类、处理字符串的String类以及8个数据类型包装类(Integer、Double、Float、Character、Short、Long、Boolean、Byte类)。
2、java.io包:标准的输入/输出类库。
3、java.util包:使用的工具类,比如Date类、Stack类、Vector类。
4、java.awt包:GUI的基本工具。
5、java.swing包:GUI工具包,提供了比java.awt包更加丰富、功能更加强大的组件。
6、java.applet包:小应用程序的基础类库,用于控制Web浏览器中的HTML文档格式、图形绘制、声音、动画、字体、人机交互等。
7、java.net包:用于实现网络功能的类,比如Socket类、ServerSocket类、URL类等。开发者可以在此基础上编写自己的应用程序,实现网络通信。
8、java.sql包:用于实现JDBC的类库。
Object类
java.lang包中的一个类。在Java中,所有的类归根结底都是由Object类派生出来的,继承了Object类的所有方法,也就是说Object类是所有类的超类,任何Java对象都可以调用该类定义的方法。
Object类的方法.png
Object类中的equals()方法在默认情况下用来比较两个对象的内存地址是否相同,若相同则返回true,否则返回false。
Math类
java.lang包中的一个类。
System类
java.lang包中的一个类。主要提供了标准输入、输出、错误输出属性,及一些用于访问系统属性的方法。
集合类
参考:https://blog.csdn.net/u010850027/article/details/53466627
java的集合类主要由两个接口派生而来,Collection和Map,它们是集合框架的根接口。这两个接口又包含了一些子接口或实现类。
Collection集合体系
Set和List接口是Collection接口派生的两个子接口,她们分别代表了无序集合和有序集合,Queue是Java提供的队列实现,有点类似于List。
Map集合体系
Map实现类用于保存具有映射关系的数据。Map中的key是不允许重复的。
HashTable的key、value不可以是null值。HashMap的key、value可以是null值。
map集合体系继承树.jpg
综上可以将集合类分为三大类:
Set集合:无序不重复。类似于一个糖罐子,把一个对象添加到Set集合里面的时候,Set集合无法记住添加这个元素的顺序,所以Set里面的元素不能重复,否则系统无法准确识别这个元素。
List集合:有序可重复。非常像一个数组,她可以记住每次添加元素的顺序,可以重复,只是List的长度可变。
Map集合:也像是一个糖罐子,只是她里面的每项数据都由两个值组成。
所以,如果访问List集合中的元素,可以直接根据元素的索引来进行访问;如果需要访问Map集合中的元素,可以根据每项元素的key来访问其value;如果访问Set集合中的元素,则只能根据元素本身来访问,这也是Set集合里元素不允许重复的原因。
JDBC
JDBC定义了一套标准的接口,通用API,不同数据库厂商去实现这些接口。
JDBC提供了统一的解决方案,用相同的方式访问不同的数据库。
ResultSet的fetchSize属性:在执行JDBC查询数据库时,假设物理内存足够用,如果查询结果集ResultSet要返回的记录数很多,比如上万记录,则对于ResultSet的fetchSize属性有:ResultSet的fetchSize越大,JDBC client端消耗的内存越大,性能也越快。
注意的点
1、unmodifiableMap方法
// map是一个合法的map
Map<Integer, String> unmodifiableMap = Collections.unmodifiableMap(map);
unmodifiableMap.clear();
unmodifiableMap.clear(); 执行时会报异常java.lang.UnsupportedOperationException。
unmodifiableMap.png
2、ArrayList和LinkedList删除元素的区别
public static void main(String[] args) {
List<String> tmpList = new LinkedList<String>();
tmpList.add("Hello");
tmpList.add("My");
tmpList.add("Son");
for (String curStr : tmpList) {
if ("My".equals(curStr)) {
tmpList.remove(curStr);// 删除倒数第二个元素
}
System.out.printf("curStr = %s, temList = %s\n", curStr, tmpList.toString());
}
}
输出结果:
curStr = Hello, temList = [Hello, My, Son]
curStr = My, temList = [Hello, Son]
如果使用的是 List<String> tmpList = new ArrayList<String>(); 那么删除倒数第二个不会抛出异常,删除其他都抛出异常。
如果使用的是 List<String> tmpList = new LinkedList<String>();那么删除最后一个和倒数第二个不会抛出异常,删除其他都会抛出异常。