

Java 中线程的状态及转换
线程是操作系统中能够进行运算调度的最小单位了。它被包含在进程中,是进程在运行过程中,真正的『打工人』。每一个进程有且至少有一个线程存在,默认的线程我们可以把它叫作『主线程』。 在 Java 中,进行线程的切换是一件比较浪费资料的事情,这意味着代码的执行需要从用户态切换到内核态,然后再从内核态切换回用户态。但这也不是说我们不能用线程,合理的使用可以提高程序执行的吞吐率。 既然上面提到了『线程切换』,那我们就来聊聊,线程的几种状态。
Read more扒掉 synchronized 的底裤
zhihu
Read more

关于 GC
GC(Garbage Collect)是 Java 虚拟机最著名的一个机制——内存回收。 我们按着下面的流程来讲述 GC: 什么是 GC GC 常用算法 垃圾收集器是什么 finalize()方法详解 总结
Read more

关于线程安全的一切
自从多线程这个概念被发明之后,在开发中就无时无刻不得操心线程安全的问题。 但是,在了解线程安全之前,我们先来了解一下 Java 的内存模型,搞明白线程是如何工作的。
Read more

关于线程池的一切
线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。 我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程。只要池里有空闲的线程,任务就会分配给一个线程执行。在线程池的内部,任务被插入一个阻塞队列(Blocking Queue ),线程池里的线程会去取这个队列里的任务。当一个新任务插入队列时,一个空闲线程就会成功的从队列中取出任务并且执行它。 线程池经常应用在多线程服务器上。每个通过网络到达服务器的连接都被包装成一个任务并且传递给线程池。线程池的线程会并发的处理连接上的请求。 合理利用线程池能够带来三个好处。 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成..
Read more

关于注解
Annotation 是 JDK1.5 之后加入到 Java 中的,它其实就是代码里的特殊标记, 用于替代配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,开发人员可以通过注解告诉类如何运行。它提供了一种安全的类似注释的机制,用来将信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。它像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。
Read more

HashMap 解析
在 Java 和 Android 的开发中,我相信没有人没用过 HashMap 了吧。这几乎是 Java 中最重要的类之一,作为 Key-Value 存储类型的典范,我们在学会使用的同时,也必须要明白 HashMap 内部的实现原理,同时也必须知道它的一些衍生类,以及它们的用法。
Read moreJava 虚拟机面试题
Java虚拟机面试题 (⭐⭐⭐)
Read more

Java 并发面试题
Java并发面试题
Read more

Java动态代理机制
Java 动态代理是一种代理机制,它允许我们动态地、在不修改原代码的基础上,让代码完成它本来无法完成的工作。
Read more