java
文章平均质量分 93
麦晓宇
个人从事程序化交易、ios,android开发,逆向
展开
-
JVM源码分析之FinalReference完全解读
概述Java对象引用体系除了强引用之外,出于对性能、可扩展性等方面考虑还特地实现了4种其他引用:SoftReference、WeakReference、PhantomReference、FinalReference,本文主要想讲的是FinalReference,因为当使用内存分析工具,比如zprofiler、mat等,分析一些oom的heap时,经常能看到 java.lang.ref.Fi转载 2017-05-01 16:00:25 · 511 阅读 · 0 评论 -
java面试题
Java泛型面试题1. Java中的泛型是什么 ? 使用泛型的好处是什么?这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现C转载 2016-07-21 13:04:13 · 1322 阅读 · 0 评论 -
java nio
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?本文会从传统的阻塞I/O和线程池模型面临的问题讲起转载 2017-07-31 22:00:35 · 1011 阅读 · 0 评论 -
应用服务器中对JDK的epoll空转bug的处理
前面讲到了epoll的一些机制,与select和poll等传统古老的IO多路复用机制的一些区别,这些区别实质可以总结为一句话,就是epoll将重要的基于事件的fd集合放在了内核中来完成,因为内核是高效的,所以很多关于fd事件监听集合的操作也是高效的,不方便的就是,因为在内核中,所以我们需要通过系统调用来调用关于fd操作集合,而不是直接自己攒一个。如果在linux转载 2017-07-31 21:31:14 · 2252 阅读 · 2 评论 -
Executor, ExecutorService 和 Executors 间的不同
java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent. Executors 这三者均是 Java Executor 框架的一部分,用来提供线程池的功能。因为创建和管理线程非常心累,并且操作系统通常对线程数有限制,所以建议使用线程池来并发执行任务,而不是每次请求进来时创建转载 2017-07-31 21:16:24 · 295 阅读 · 0 评论 -
BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2017-07-12 10:28:13 · 311 阅读 · 0 评论 -
JVM源码分析之SystemGC完全解读
概述JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理或许大家已经知道如下相关的知识system.gc其实是做一次full gcsystem.gc会暂停整个进程sy转载 2017-05-01 17:31:32 · 452 阅读 · 0 评论 -
JVM源码分析之堆外内存完全解读
摘要: 概述 广义的堆外内存 说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久概述广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大转载 2017-05-01 17:25:08 · 917 阅读 · 0 评论 -
Understanding JVM Internals
Every developer who uses Java knows that Java bytecode runs in a JRE (Java Runtime Environment). The most important element of the JRE is Java Virtual Machine (JVM), which analyzes and executes Java b转载 2017-05-01 16:15:02 · 621 阅读 · 0 评论 -
JVM源码分析-Java运行
最近在看Java并发编程实践和Inside JVM两本书,发现如果不真正的了解底层运作,那么永远是雾里看花。因此从http://openjdk.java.net/groups/hotspot/上下载了源代码,准备研究一番。要想完全研究懂我觉得得对计算机体系结构,C,C++编程,Linux内核都有比较深入的理解。由于并非从事JVM开发工作,因此不会研究的那么深入。入手就从“java 类名”这个转载 2017-05-01 16:04:08 · 523 阅读 · 0 评论 -
java @interface 注解详解
一、认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有的新特性JDK1.5之后内部提供的三个注解 @Depreca转载 2018-01-16 08:46:06 · 391 阅读 · 0 评论