![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
不忘初心-慢慢懂
纳百川,形成自己知识体系
展开
-
垃圾收集器
Serial Serial收集器是Hotspot运行在Client模式下的默认新生代收集器, 它在进行垃圾收集时,会暂停所有的工作进程,用一个线程去完成GC工作 特点:简单高效,适合jvm管理内存不大的情况(十兆到百兆)。 Parnew ParNew收集器其实是Serial的多线程版本,回收策略完全一样,但是他们又有着不同。 我们说了Parnew是多线程...原创 2014-10-19 21:00:00 · 1332 阅读 · 0 评论 -
java 对象创建过程
JVM中对象的创建过程 1. 拿到内存创建指令 当虚拟机遇到内存创建的指令的时候(new 类名),来到了方法区,找 根据new的参数在常量池中定位一个类的符号引用。 2. 检查符号引用 检查该符号引用有没有被加载、解析和初始化过,如果没有则执行类加载过程,否则直接准备为新的对象分配内存 3. 分配内存 虚拟机为对象分配内存(堆)分配内存分为指针碰撞和空闲列表两种方式;分配内存还要要保证...原创 2014-10-18 23:46:17 · 1485 阅读 · 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 · 1341 阅读 · 0 评论 -
BlockingQueue
ConcurrentLinkedQueue Java 提供的线程安全的 Queue 可以分为阻塞队列【非同步】和非阻塞【同步】队列,其中阻塞队列的典型例子是 BlockingQueue,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 阻塞队列可以通过加锁来实现,非阻塞队列可以通过 CAS 操作实现。 从名字可以...原创 2014-10-18 19:40:16 · 1068 阅读 · 0 评论 -
ReentrantLock
下面来看 ReentrantLock 中相关的源代码: ReentrantLock 默认采用非公平锁,因为考虑获得更好的性能,通过 boolean 来决定是否用公平锁(传入 true 用公平锁)。 /** Synchronizer providing all implementation mechanics */ private final Sync sync; public ...原创 2014-10-17 00:05:23 · 2521 阅读 · 0 评论 -
String、StringBuilder、StringBuilder
可变性 简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串char[]value 但...原创 2014-10-12 10:30:57 · 1877 阅读 · 0 评论 -
类加载器
一、什么是类加载器(ClassLoader) 类加载器可以把类加载到Java虚拟机中,对于任意的一个类,都需要由加载它的类加载器和这个类本身一同确立起在Java虚拟机中的唯一性。 比较两个类是否”相等“,只有在这两个类是由同一个类加载器加载的前提在才有意义,否则,即使这两个类源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类必定不相等。这里所指的“相等”包括代表...原创 2014-11-05 22:29:39 · 1325 阅读 · 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 · 1094 阅读 · 0 评论