笔记2018-03-20

1、单行文本输入区(Textfield)

在单行文本输入区(Textfield)构件上可能发生的事件包括FocusEvent焦点事件,所对应的事件监听器是FocusListener;ActionEvent动作事件,所对应的事件监听器是ActionListener;MouseEvent鼠标事件,所对应的事件监听器是MouseMotionListener;

2、字节流与字符流

stream结尾都是字节流,reader和writer结尾都是字符流 两者的区别就是读写的时候一个是按字节读写,一个是按字符。 实际使用通常差不多。 在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。 只是读写文件,和文件内容无关的,一般选择字节流。


笔记2018-03-20_第1张图片
image.png

3、Map的key不可以重复,value是可以重复的

4、如何放掉一个指定占据的内存空间?

在《java虚拟机》一书中明确讲了,释放掉占据的内存空间是由gc完成,但是程序员无法明确强制其运行,该空间在不被引用的时候不一定会立即被释放,这取决于GC本身,无法由程序员通过代码控制。

5、Thread.sleep() 和 Object.wait()

Thread.sleep() 和 Object.wait()都可以抛出 InterruptedException。这个异常是不能忽略的,因为它是一个检查异常(checked exception)。
checked exception:指的是编译时异常,该类异常需要本函数必须处理的,用try和catch处理,或者用throws抛出异常,然后交给调用者去处理异常。
runtime exception:指的是运行时异常,该类异常不必须本函数必须处理,当然也可以处理。
Thread.sleep()抛出的InterruptException属于checked exception;IllegalArgumentException属于Runtime exception。

6、Java垃圾回收机制

垃圾回收主要针对的是堆区的回收,因为栈区的内存是随着线程而释放的。堆区分为三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法区)。
年轻代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。
年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收
永久代:存储的是final常量,static变量,常量池。

7、写入文件

一个文件中的字符要写到另一个文件中,首先需要读取这个文件,所以要先建立输入流,然后写到另一个文件,这时再建立输出流.
所以要先建立输入流,再建立输出流.

8、instanceof 和getClass会在运行时通过反射获得对象真正的类型。

很特殊的地方就是用在ArrayList中,如果ArrayList不知道泛型,在取出数据时,都会默认将数据更改为Object类型,是不能够赋值给其他类型的引用的,但是,instanceof 和getClass会在运行时通过反射获得对象真正的类型。

8、集合框架中线程安全的类

在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:

vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出
hashtable:就比hashmap多了个线程安全
enumeration:枚举,相当于迭代器

除了这些之外,其他的都是非线程安全的类和接口。

9、Object的wait()方法

wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。
java object默认的基本方法:
getClass(), hashCode(), equals(), clone(), toString(), notify(), notifyAll(), wait(), finalize()

10、HttpServletRequest类主要处理:

1.读取和写入HTTP头标
2.取得和设置cookies
3.取得路径信息
4.标识HTTP会话

11、volatile

volatile用于限定变量只能从内存中读取,保证对所有线程而言,值都是一致的。但是volatile不能保证原子性,也就不能保证线程安全。

你可能感兴趣的:(笔记2018-03-20)