文章分类 -  java

摘要:JVM启动前静态Instrument# Javaagent 是什么? Javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求: 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。 P 阅读全文
posted @ 2022-04-19 18:58 rocky-2013 阅读(634) 评论(0) 推荐(0) 编辑
摘要:Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以去生成一 阅读全文
posted @ 2022-04-19 18:57 rocky-2013 阅读(160) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-06-24 17:37 rocky-2013 阅读(0) 评论(0) 推荐(0) 编辑
摘要:本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。 总体介绍 Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过 阅读全文
posted @ 2019-01-18 13:38 rocky-2013 阅读(492) 评论(0) 推荐(0) 编辑
摘要:上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。 寻找节点后继 对于一棵二叉查找 阅读全文
posted @ 2019-01-18 13:38 rocky-2013 阅读(211) 评论(0) 推荐(0) 编辑
摘要:在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码: 在多线程的情况下,这样写可能会导致uniqueSingleton有多个实例。比如下面这种情况,考虑有两个线程同时调用getInstance(): 可以看到,uniqueSingleton被实例化了两次并且被不同对象持有。完全违背了 阅读全文
posted @ 2019-01-10 12:44 rocky-2013 阅读(153) 评论(0) 推荐(0) 编辑
摘要:参考文章:https://www.cnblogs.com/charlesblc/p/5994162.html 刚开始认识volatile的时候,觉得对它的一些特性非常迷惑。比如:具有可见性,如果一个线程修改了volatile变量的值,那么其它线程也会发现这一点;同时它又不具有原子性,多个线程对被vo 阅读全文
posted @ 2018-12-25 16:32 rocky-2013 阅读(106) 评论(0) 推荐(0) 编辑
摘要:BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺序来开发思想,因此BIO模型程序开发起来较为简单,易于把握。 但是BIO如果需要同时做很多事情(例如同时读很多文件,处理很多tc 阅读全文
posted @ 2018-11-23 15:30 rocky-2013 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1 前言 LinkedHashMap继承于HashMap 2 LinkedHashMap使用与实现 先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟: LinkedHashMap结构.png 2.1 应用场景 HashMap是无序的,当我们希望有顺序地去 阅读全文
posted @ 2018-10-18 09:20 rocky-2013 阅读(708) 评论(0) 推荐(0) 编辑
摘要:1. 前言 本文的源码是基于JDK1.7,JDK1.8中HashMap的实现,引入了红黑树,在后面的文章会写到。 后面还有一篇LinkedHashMap的解析:图解LinkedHashMap原理。 2. 使用与实现 2.1 基本使用 HashMap很方便地为我们提供了key-value的形式存取数据 阅读全文
posted @ 2018-10-18 09:19 rocky-2013 阅读(109) 评论(0) 推荐(0) 编辑
摘要:前言 我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少。这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往往忽视了IO的优化。 但是现在JVM在运行时优化已前进了一大步,现在的java应用程序更多的是受IO 阅读全文
posted @ 2018-10-12 21:47 rocky-2013 阅读(181) 评论(0) 推荐(0) 编辑
摘要:什么是CGLIB CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项 阅读全文
posted @ 2018-10-10 19:15 rocky-2013 阅读(429) 评论(0) 推荐(0) 编辑
摘要:一、背景 虽然目前处理器核心数已经发展到很大数目,但是按任务并发处理并不能完全充分的利用处理器资源,因为一般的应用程序没有那么多的并发处理任务。基于这种现状,考虑把一个任务拆分成多个单元,每个单元分别得到执行,最后合并每个单元的结果。 Fork/Join框架是JAVA7提供的一个用于并行执行任务的框 阅读全文
posted @ 2018-10-09 21:16 rocky-2013 阅读(667) 评论(1) 推荐(0) 编辑
摘要:Executor框架的两级调度模型 在HotSpot VM的模型中,JAVA线程被一对一映射为本地操作系统线程。JAVA线程启动时会创建一个本地操作系统线程,当JAVA线程终止时,对应的操作系统线程也被销毁回收,而操作系统会调度所有线程并将它们分配给可用的CPU。 在上层,JAVA程序会将应用分解为 阅读全文
posted @ 2018-10-09 21:10 rocky-2013 阅读(79) 评论(0) 推荐(0) 编辑
摘要:线程池的优点 1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。 线程池的创建 corePoolSize:线程池核心线程数量 maximumPoolSize:线程池最大 阅读全文
posted @ 2018-10-09 21:03 rocky-2013 阅读(76) 评论(0) 推荐(0) 编辑
摘要:在多线程的场景下,有些并发流程需要人为来控制,在JDK的并发包里提供了几个并发工具类:CountDownLatch、CyclicBarrier、Semaphore。 一、CountDownLatch 执行结果: 这里会存在两种结果:123或者213,但是绝对不会出现3打印在1、2前面的。 这个Cou 阅读全文
posted @ 2018-10-09 20:59 rocky-2013 阅读(90) 评论(0) 推荐(0) 编辑
摘要:Netty是JBoss出品的高效的Java NIO开发框架。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。对于Netty使用者来说,Netty提供了几个典型的example,并有详尽的API doc和g 阅读全文
posted @ 2018-10-08 22:10 rocky-2013 阅读(116) 评论(0) 推荐(0) 编辑
摘要:在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reac 阅读全文
posted @ 2018-10-08 22:08 rocky-2013 阅读(109) 评论(0) 推荐(0) 编辑
摘要:JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响。但也有一些基础的理论和原则,理解这些理论并遵循这些原则会让你的性能调优任务将会更加轻松。为了更好的理解本篇所介绍的内容。你需要已经了解和遵循以下内容: 1、已了解jvm 垃圾收集器 2、已了解jvm 性能监控常用工具 阅读全文
posted @ 2018-10-08 22:02 rocky-2013 阅读(79) 评论(0) 推荐(0) 编辑
摘要:从这篇开始我们开始探讨一些jvm调优的问题。在jvm调优中一个离不开的重点是垃圾回收,当垃圾回收成为系统达到更高并发量的瓶颈时,我们就需要对jvm中如果进行“自动化”垃圾回收技术实施必要的监控和调节。 这是jvm优化系列第一篇,其他请看以下: jvm优化必知系列——监控工具 对于调优之前,我们必须要 阅读全文
posted @ 2018-10-08 22:00 rocky-2013 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示