摘要:
下面是使用 explain 的例子: 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。 复制代码 mysql> explain s 阅读全文
摘要:
这个示例中BoundedBuffer是一个固定长度的集合,这个在其put操作时,如果发现长度已经达到最大长度,那么会等待notFull信号,如果得到notFull信号会像集合中添加元素,并发出notEmpty的信号,而在其take方法中如果发现集合长度为空,那么会等待notEmpty的信号,同时如果 阅读全文
摘要:
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接、读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候,程序也可以做其他事情,以实现线程的异步操作。 考虑一个即时消息服务器,可能有上千个客户端同时连接到服 阅读全文
摘要:
了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客户端对应一个线程。但是,每个新线程都会消耗系统资源:创建一个线程会占用CPU周期,而且每个线程都会建 阅读全文
摘要:
我们在开发中,有如下场景a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。b) 缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。c) 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。一种笨笨的办法就是,使用一个后台线程,遍历所有对象,挨个检查 阅读全文
摘要:
Java Memory Management, with its built-in garbage collection, is one of the language's finest achievements. It allows developers to create new objects... 阅读全文
摘要:
1. Java虚拟机内存结构划分新生代和老年代,这样只在新生代分配内存,从而简化了新对象的分配。另外新生代和老年代使用不同的GC算法,可以更有效的清除不再需要的对象。从上图可以看出,JVM内存由young+old+permanent组成,JVM又进一步将Young分成了eden,from survi... 阅读全文
摘要:
转自:http://jeromecen1021.blog.163.com/blog/static/18851527120117274624888/面试题目:地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候,对什么... 阅读全文
摘要:
前言垃圾自动回收机制的出现使编程更加的简单,使得我们不需要再去考虑内存分配和释放的问题,而是更加的专注在我们产品功能的实现上。但是我们还是需要花时间去了解下垃圾收集机制是怎么工作的,以便后面能够更好的进行我们应用的性能调优等。目前最基本的垃圾收集算法有四种,标记-清除算法(mark-sweep),标... 阅读全文
摘要:
IBM介绍文档:https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/Java 的新生代串行垃圾回收器中使用了复制算法的思想。新生代分为 eden 空间、from 空间、to 空间 3 个部分。其中 from 空间和... 阅读全文