
Java
文章平均质量分 83
rickey17
这个作者很懒,什么都没留下…
展开
-
23种设计模式模式详解 Java 结构型模式(二)
23种设计模式模式详解 Java 结构型模式(二)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式的好处:代码的可重用性、可扩展性,可阅读性,保证代码的可靠。(代码要优雅)关于相关源码可以在GitHub上下载: https://github.com/rickey17/design适配器模式装饰模式代理模式外观模原创 2017-04-17 19:36:11 · 608 阅读 · 0 评论 -
Tomcat NIO性能测试的参数调整: processorCache
tomcat在处理每个连接时,Acceptor角色负责将socket上下文封装为一个任务SocketProcessor然后提交给线程池处理。在BIO和APR模式下,每次有新请求时,会创建一个新的SocketProcessor实例(在之前的tomcat对keep-alive的实现逻辑里也介绍过可以简单的通过SocketProcessor与SocketWrapper实例数对比socket的复用情况);...原创 2019-02-21 15:31:58 · 2343 阅读 · 0 评论 -
术语,概念理解——并发与并行,异步与同步,非阻塞与阻塞
并发与并行并发和并行是相关的概念,但存在细微差别。并发意味着两个或多个任务正在取得进展,即使它们可能没有同时执行。例如通过时间切片来实现,其中任务的各部分被顺序执行并且与其他任务的部分混合。另一方面,当执行可以真正同时发生时,并行性就出现了。异步与同步如果调用方在方法返回值或抛出异常之前无法继续进行,则方法调用被视为同步。另一方面,异步调用允许调用者在有限数量的步骤之后前进,并且可以通过一些...原创 2019-01-23 12:03:09 · 221 阅读 · 0 评论 -
Google Guava官方教程(中文版)
原文链接 译文链接引言Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/...转载 2019-01-15 14:22:06 · 716 阅读 · 0 评论 -
Netty源码分析与Dubbo实战(三)——Java编程模型
传统的BIO编程ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作、连接成功之后,双方通过输入和输出流进行同步阻塞通信。伪异步BIO编程为了解决传统的BIO编程面临的一个I/O一个线程的问题,伪异步用线程池来处理多个客户端的请求接入。BIO编程&伪异步BIO编程代码由于这两种编程方式都比较简单,所以就代码就放一起啦。public class...原创 2018-12-23 14:32:36 · 410 阅读 · 0 评论 -
Java并发编程(三)——原子操作
概念不可被中断的一个或一系列操作术语定义 术语名称 英文 解释 缓存行 cache line 缓存的最小操作单位 比较并交换 Compare And Swap CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较旧值有没有变化,才交换成新值,发生了变化则不交换 CPU流水线 CPU pipeline CPU流水线的工作方式就原创 2017-08-13 18:31:29 · 392 阅读 · 0 评论 -
Java并发编程(二)——Java并发底层实现原理
Java代码会被编译后变成Java字节码,字节码会被类加载器加载到JVM中,JVM执行字节码,最终转化成汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。volatile在多线程并发编程中,synchronized和volatile都很重要,volatile是轻量级的synchronized,它在多处理器的开发中,保证了共享变量的可见性。*可见性指一个线程修改这个共原创 2017-08-13 17:31:36 · 355 阅读 · 0 评论 -
深入理解JVM(六)——类文件结构
Java诞生之初就有的口号,Write Once,Run AnywhereJava规范分为Java语言规范和Java虚拟机规范,Java实现平台无关性的基础是虚拟机和字节码存储格式,Java虚拟机不与包括Java在内的任何语言绑定,它只与Class文件这种特定的二进制文件格式关联时至今日,已经有很多语言运行在Java虚拟机之上,包括Groovy,JRuby,Jython,Scala等,只要他们通过编原创 2017-07-02 17:55:38 · 302 阅读 · 0 评论 -
深入理解JVM(五)——JVM调优 Eclipse调优
在开发,测试环境,我们可以通过JConsole或者VisualVM去监控Java程序的运行时,但是生产环境是不会给你安装这些应用的。JDK1.6之后,JMX管理默认都是开启的,所以你也可以通过JMX管理达到监控和调优的目的。这也是我下一阶段的工作一部分。大体的需求包括:显示虚拟机进程以及进程的配置,环境信息(jps,jinfo)监视应用程序的CPU,GC,堆,方法区以及线程信息(jstat,js原创 2017-07-02 14:34:39 · 665 阅读 · 0 评论 -
深入理解JVM(四)——各个版本提供的垃圾收集器
上一篇将的回收算法是内存回收的方法论,本篇讲垃圾收集器的具体实现,Java虚拟机规范并没有对齐做出规定和限制,所以不同厂商,不同版本的虚拟机,垃圾收集器有很大的区别。 收集器名称 区域 说明 Serial 新生代 单线程,GC时必须停止其它线程直到收集结束;JVM运行在client模式下新生代的默认收集器,简单有效;采用复制算法 ParNew 新生代 Serial收原创 2017-07-01 18:53:39 · 2490 阅读 · 0 评论 -
深入理解JVM(三)——垃圾收集器
需要了解GC吗?Q:需要了解GC和内存分配吗? A:当需要排查各种内存溢出,内存泄露问题时;当垃圾回收成为系统高并发的瓶颈时哪些内存需要回收?程序计数器,虚拟机栈,本地方法栈随着线程生而生,线程灭而灭,栈帧随着方法的进入和退出而进栈和出栈。基本上类结构确定下来就已知了。 Java堆和方法区则不同,只有运行时才知道要创建哪些对象,这部分内存的分配和回收是动态的。对象已死吗?引用计数算法给对象中添原创 2017-07-01 14:19:07 · 306 阅读 · 0 评论 -
深入理解JVM(一)——对象的创建
对象的创建对象的创建,在语言层面上,通常只是new这个关键字而已。(本章所讨论的对象限于普通Java对象,不包括数组和 Class对象)虚拟机遇到new指令时:检查这个指令的参数是否能在常量池定位到一个类的符号引用。检查这个符号引用代表的类是否已被加载,解析,初始化过。如果没有必须执行相应的类加载过程类加载检查后,虚拟机会为新生对象分配内存。对象所需的内存在类加载时可完全确定,为对象分配空间原创 2017-07-01 12:59:15 · 394 阅读 · 0 评论 -
深入理解JVM(一)——运行时的数据区域
Java与C++的围墙:内存动态分配,垃圾收集技术程序计数器当前线程所执行的字节码的行号指示器,通过改变这个计数器的值来选择下一条执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等依赖计数器。线程私有,唯一不会OutOfMemory的区域。执行Java方法时指向正在执行的虚拟机字节码,执行Native方法时为空。Java虚拟机栈描述方法执行的内存模型,每个方法执行的同时会创建一个栈帧。用于存储原创 2017-07-01 11:52:27 · 274 阅读 · 0 评论 -
好用的工具推荐——curl
介绍curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。优势越来越多的rest阵营越来越多的HTTP没有前端,自己做测试的神器如果研究ElasticSearch等下载地址https://curl.haxx.se/download.html安装步骤sudo tar -xzvf /hom原创 2017-05-26 21:14:53 · 1069 阅读 · 0 评论 -
23种设计模式模式详解 Java 行为型模式(三)
23种设计模式模式详解 Java 行为型模式(三)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式的好处:代码的可重用性、可扩展性,可阅读性,保证代码的可靠。(代码要优雅)关于相关源码可以在GitHub上下载: https://github.com/rickey17/design策略模式模板方法模式观察者模式迭原创 2017-04-18 19:47:34 · 421 阅读 · 0 评论 -
23种设计模式模式详解 Java UML类图小知识(一)
23种设计模式模式详解 Java UML类图小知识(一)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式的好处:代码的可重用性、可扩展性,可阅读性,保证代码的可靠。(代码要优雅)关于相关源码可以在GitHub上下载: https://github.com/rickey17/design设计模式的6大原则设计模式分类创原创 2017-04-16 15:44:30 · 8108 阅读 · 1 评论 -
Apache HttpAsyncClient 源码分析
Apache HttpAsyncClient 4.1.2转载來源:简书原作者:ntjsz链接:https://www.jianshu.com/p/6bcfd6b2bd5c<dependency> <groupId>org.apache.httpcomponents</groupId> &am转载 2019-02-25 12:21:40 · 3062 阅读 · 0 评论