摘要: Java虚拟机(Java virtualmachine)实现了Java语言最重要的特征:即平台无关性。 平台无关性原理:编译后的 Java程序(.class文件)由 JVM执行。JVM屏蔽了与具体平台相关的信息,使程序可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平 阅读全文
posted @ 2018-05-18 15:29 js王 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 文章出处:http://ifeve.com/jvm-yong-generation/ 聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的 阅读全文
posted @ 2018-05-18 14:26 js王 阅读(8949) 评论(2) 推荐(2) 编辑
摘要: import java.util.Arrays; import java.util.Stack; // 链式存储的二叉树 public class BSTree { private TreeNode root = null; public TreeNode getRoot() { return ro 阅读全文
posted @ 2018-05-18 10:30 js王 阅读(274) 评论(0) 推荐(0) 编辑
摘要: Netty是基于JDK NIO的网络框架 简化了NIO编程, 不用程序自己维护selector, 将网络通信和数据处理的部分做了分离 多用于做底层的数据通信, 心跳检测(keepalived) 1. 数据通信 1.1 Hello World SO_BACKLOG详解:服务器的TCP内核维护两个队列A 阅读全文
posted @ 2018-05-18 10:15 js王 阅读(1532) 评论(0) 推荐(0) 编辑
摘要: JDK7的Collections.sort()的算法是TimSort, 适应性的归并排序, 比较晦涩难懂, 这里没有实现 阅读全文
posted @ 2018-05-18 10:11 js王 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1. 为什么要进行读写分离 大量的JavaWeb应用做的是IO密集型任务, 数据库的压力较大, 需要分流 大量的应用场景, 是读多写少, 数据库读取的压力更大 一个很自然的思路是使用一主多从的数据库集群: 一个是主库,负责写入数据;其它都是从库,负责读取数据. 主从库数据同步. mysql原生支持主 阅读全文
posted @ 2018-05-18 10:09 js王 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 1. Webservice Webservice是一套远程调用技术规范 远程调用RPC, 实现了系统与系统进程间的远程通信.java领域有很多可实现远程通讯的技术,如:RMI(Socket + 序列化)、Binary-RPC(Http+二进制, 代表Hessian)、XML-RPC(Http+XML 阅读全文
posted @ 2018-05-18 10:03 js王 阅读(353) 评论(0) 推荐(0) 编辑
摘要: Quartz快速入门 Quartz是一个定时任务调度的框架,在预定的时间到达时,执行某一任务 可认为是JDK的Timer类的扩展 Quartz的核心接口Scheduler – 核心调度器Job – 任务JobDetail – 任务描述Trigger -- 触发器 SimpleTrigger只执行一次 阅读全文
posted @ 2018-05-18 10:00 js王 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 1. BIO JDK5之前, JDK的IO模式只有BIO(同步阻塞)问题: 因为阻塞的存在, 需对每个请求开启一个线程. 过多的线程切换影响操作系统性能解决: 使用线程池, 处理不过来的放入队列, 再处理不过来的会触发其他机制问题: 超过线程池数量的请求需要等待 服务端1: 一个请求~一个线程 服务 阅读全文
posted @ 2018-05-18 09:52 js王 阅读(1183) 评论(0) 推荐(0) 编辑