- 浏览: 6205 次
- 性别:
- 来自: 成都
最新评论
文章列表
1. 应该为每个Thread命名,方便错误查找。
2. 每个线程都有优先级,新建线程和创建它的线程的优先级相同,是否是守护线程也和创建它的线程相同。
3. 如果线程没有UncaughtExceptionHandler,则它的ThreadGroup会作为它的UncaughtExceptionHandler。
4. new Thread(Runnable), 若Runnable不为null,则执行Runnable的run方法,若Runnable为空,则执行Thread的run方法。
1. 必须重写run方法。
2. 当不需要加强Thread类的时候最好采用实现Runnable的方式来实现线程。
3. 若共享资源在Runnable的子类中,最好采用实现Runnable的方法来实现资源共享。
1. 有序的HashMap,重新put已有的元素不会对现有的order造成影响。
2. 比Treemap效率高,异步。
3. Entry含有before和after两个变量来实现order。
1. 异步,允许键值为null。
2. 无序。
3. 遍历元素和capacity,元素数量有关,所以若遍历操作很重要,则不要设置太高的capacity和太低的负载因数。
4. Collections.synchronizedMap(new HashMap(...))实现同步。
5. DEFAULT_INITIAL_CAPACITY = 16,DEFAULT_LOAD_FACTOR = 0.75f。
1. 用于取代Dictionary抽象类,键唯一。
2. put(K key, V value)若key已存在,则用value替换以前的value,并返回以前的value。
1. HashSet可以存储一个空元素,HashSet中的元素没有顺序。
2. 非同步,若有多线程访问,需要通过其他方式如Collections.synchronizedSet实现同步。
3. 内部有一个HashMap<E,Object>()实例用于保存元素,初始化长度为10,负载因数是0.75,将元素作为key存储,value是一个无用的object对象。
4. 因为HashSet采用HashMap的key来存储元素,所以不能有重复的元素。
1. Set不能存储重复的元素,最多存储一个null元素。
2. Set不能以Set作为元素。
3. containsAll(Collection<?> c),addAll(Collection<? extends E> c),retainAll(Collection<?> c),removeAll(Collection<?> c)可用于list和set之前互相操作。
1. De代表double ended。
2. 优先选择使用offerFirst(E e)和offerLast(E e),而不是addFirst(E e)和addLast(E e)。
3. 当Deque为空的时候,执行removeFirst(),removeLast(),getFirst(),getLast()会抛出NoSuchElementException,pollFirst(),pollLast(),peekFirst(),peekLast()则会返回null。
4. 当Deque是空的时候,执行element()和remove()会抛出异常,执行peek()和poll()会返回null ...
1. Queue一般是先进先出, Stack一般是后进先出。
2. 当Queue是空的时候,执行element()和remove()会抛出异常,执行peek()和poll()会返回null。
1. 在CMD窗口中执行 tasklist | findstr "服务名"(注意大小写),得到PID
2. 执行 netstat -aon | findstr "PID" 得到端口号
1、private搜索修饰词,表示成员是私有的,只有自身可以访问。
2、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限。
3、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
4、public修饰词,表示成员是公开的,所有其他类都可以访问。
1. 内存泄漏原因:
a) 在对象没有被引用,但依然没法被回收的情况下可能发生内存泄漏。
b) 长生命周期的对象持有短生命周期对象的引用。
2. 内存泄漏常见情况:
a) 静态集合类持有大量对象。
b) 未关闭IO,数据,socket链接。
c) 单例模式类引用了大量其他对象。
3. 避免内存泄漏的方法:
a) 明确变量应该是全局变量还是局部变量,尽量定义为局部变量。
b) 在变量被使用完成后将其置为NULL。
4. Java中的几种引用类型:
a) 强引用:直接为创造对象为变量赋值。
b) 软引用:如高速缓存对象, ...
1. 垃圾回收的作用是查找和回收无用的对象,以便让JVM更有效地使用内存。
2. 垃圾回收的执行时间是不确定的,执行Sytem.gc()并不能让垃圾回收立即执行。
3. 垃圾回收过于频繁回导致性能下降,过于稀疏会导致内存紧张。
4. finalize()方法是object的方法,在对象被垃圾回收之前执行。
5. 垃圾回收通过判断对象是否被引用来确定是否对其进行回收,常用的判断方法有引用计数和对象引用遍历,目前JVM采用第二种方式进行垃圾回收。
6. 常用垃圾回收机制:清除回收,复制回收,并行回收,分代回收,增量回收。