
java
不忘初心-慢慢懂
纳百川,形成自己知识体系
展开
-
垃圾收集器
SerialSerial收集器是Hotspot运行在Client模式下的默认新生代收集器, 它在进行垃圾收集时,会暂停所有的工作进程,用一个线程去完成GC工作特点:简单高效,适合jvm管理内存不大的情况(十兆到百兆)。ParnewParNew收集器其实是Serial的多线程版本,回收策略完全一样,但是他们又有着不同。我们说了Parnew是多线程...原创 2014-10-19 21:00:00 · 1382 阅读 · 0 评论 -
java 对象创建过程
JVM中对象的创建过程1. 拿到内存创建指令当虚拟机遇到内存创建的指令的时候(new 类名),来到了方法区,找 根据new的参数在常量池中定位一个类的符号引用。2. 检查符号引用检查该符号引用有没有被加载、解析和初始化过,如果没有则执行类加载过程,否则直接准备为新的对象分配内存3. 分配内存虚拟机为对象分配内存(堆)分配内存分为指针碰撞和空闲列表两种方式;分配内存还要要保证...原创 2014-10-18 23:46:17 · 1528 阅读 · 0 评论 -
java 多线程拉数据
需求介绍有近2w 商品,获取到全部商品详细信息,存在2 个接口,一个是分页获取商品列表一个是根据列表页包含的商品编号,获取商品系那个IQ哪个采用多线程线程池方式获取商品详情import java.sql.Time;import java.util.ArrayList;import java.util.List;import java.util.UUID;impor...原创 2014-10-18 22:08:46 · 1386 阅读 · 0 评论 -
BlockingQueue
ConcurrentLinkedQueueJava 提供的线程安全的 Queue 可以分为阻塞队列【非同步】和非阻塞【同步】队列,其中阻塞队列的典型例子是 BlockingQueue,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 阻塞队列可以通过加锁来实现,非阻塞队列可以通过 CAS 操作实现。从名字可以...原创 2014-10-18 19:40:16 · 1110 阅读 · 0 评论 -
ReentrantLock
下面来看 ReentrantLock 中相关的源代码:ReentrantLock 默认采用非公平锁,因为考虑获得更好的性能,通过 boolean 来决定是否用公平锁(传入 true 用公平锁)。/** Synchronizer providing all implementation mechanics */private final Sync sync;public ...原创 2014-10-17 00:05:23 · 2547 阅读 · 0 评论 -
String、StringBuilder、StringBuilder
可变性简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串char[]value 但...原创 2014-10-12 10:30:57 · 1939 阅读 · 0 评论 -
类加载器
一、什么是类加载器(ClassLoader)类加载器可以把类加载到Java虚拟机中,对于任意的一个类,都需要由加载它的类加载器和这个类本身一同确立起在Java虚拟机中的唯一性。比较两个类是否”相等“,只有在这两个类是由同一个类加载器加载的前提在才有意义,否则,即使这两个类源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类必定不相等。这里所指的“相等”包括代表...原创 2014-11-05 22:29:39 · 1355 阅读 · 0 评论 -
容器
现在作用是实现算法不必写一堆数据结构,直接调用,确实简单很多。常用容器层次结构:一个小例子实现上面所说容器:import java.util.*;import java.io.*;public class test { public static void main(String[] args){ /* //IO 输入 try{ BufferedReader原创 2014-06-17 18:06:04 · 1152 阅读 · 0 评论