![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
xiaojia1100
好好学习,天天向上。
https://github.com/xiaojiaC
展开
-
查看Java代码对应的汇编指令
访问这里下载对应版本的hsdis:Windows:http://vorboss.dl.sourceforge.net/project/fcml/fcml-1.1.1/hsdis-1.1.1-win32-amd64.ziphttp://vorboss.dl.sourceforge.net/project/fcml/fcml-1.1.1/hsdis-1.1.1-win32-i386.zip...原创 2020-04-08 21:46:40 · 610 阅读 · 0 评论 -
Java Thread
table th:first-of-type { width: 100px; } table th:nth-of-type(2) { width: 400px; } 线程状态 含义 诱发动作 NEW 新建线程对象,但尚未启动(start())。 new Thread() RUNNABLE 一个可运行的线程,包含就绪...原创 2018-07-26 18:42:54 · 424 阅读 · 0 评论 -
Java 性能调优工具
CPU使用率工具: vmstat检查应用性能时,应该首先审查CPU时间。代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率。在试图深入优化应用前,应该先弄清楚为何CPU使用率低。磁盘使用率工具: iostat对于所有应用来说,监控磁盘使用率非常重要。即便不直接写磁盘的应用,系统交换仍会影响它们的性能。写入磁盘的应用遇到瓶颈,是因为写入数据的效率不高(吞吐率太低),或者是因为写原创 2017-11-30 14:35:51 · 4236 阅读 · 0 评论 -
Java Date
SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。正例: 注意线程安全,使用 DateUtils。亦推荐如下处理:private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @原创 2017-08-16 19:03:12 · 279 阅读 · 0 评论 -
Java Regex
Special constructs (named-capturing and non-capturing)(?<name>X) X, as a named-capturing group(?:X) X, as a non-capturing group(?idmsuxU-idmsuxU) Nothing, but turns match flags i d m s u x U on -原创 2016-09-30 11:27:05 · 501 阅读 · 0 评论 -
Java 性能分析
性能术语等待时间: 在给定工作量下处理一个任务单元消耗的时长。 通常,都是在工作量“正常”的情况下提到等待时间的。吞吐量:系统在限定资源,限定时长内能完成的单位工作量。用的最多的是在某一个参考平台(比如指明了硬件配置,操作系统和软件环境的特定品牌服务器)上的每秒事务处理数。利用率:可用资源中用来处理工作单元(而不是清理任务或处于空闲状态)的资源百分比。通常说的服务器资源利用率是10%,指的是在正常处原创 2016-09-21 12:29:32 · 400 阅读 · 0 评论 -
Java 类文件
检查类文件方法签名的内部形式类型描述符 描述符 类型 B byte C char(16位Unicode字符) D double F float I int J Long L<类型名称> 引用类型(eg:Ljava/lang/String; 用于字符串) S short Z boolean [ array-of原创 2016-09-20 16:11:13 · 253 阅读 · 0 评论 -
Java 操作码
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int型0推送至栈顶 0x04 iconst_1 将int型1推送至栈顶原创 2016-09-20 15:47:40 · 1856 阅读 · 0 评论 -
Java Exception(Comparison method violates its general contract)
代码Collections.sort(users.getMenuProfiles(), new Comparator<UserMenuProfile>() { @Override public int compare(UserMenuProfile item1, UserMenuProfile item2) { /* 报错前未添加 if (item1.原创 2016-01-20 15:54:17 · 460 阅读 · 0 评论 -
Java HotspotVM
Hotspot VM运行时系统负责启动和停止Hotspot VM。启动Hotspot VM组件的是启动器。Hotspot有若干启动器。Unix/Linux上最常用的是java,Windows上最常用的是java和javaw。也可以通过JNI_CreateJavaVM启动内嵌的JVM。还有一个网路启动器javaws,web浏览器用它来启动applet。启动器启动Hotspot VM时会执行一系列操作。原创 2015-11-26 08:54:30 · 435 阅读 · 0 评论 -
Java CMS收集器
主要目标HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:降低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。就像吞吐量收集器,CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收集器总是暂停应用程序线程,并且可能是相当长的一段时间,然而这能够使该算法安全地原创 2015-10-10 17:07:16 · 935 阅读 · 0 评论 -
Java 年轻代GC
JVM的年轻代为什么会有年轻代我们先来想想,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是”朝生夕死”的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存”朝生夕死”对象的区域进行回收,这样原创 2015-10-10 09:54:06 · 3081 阅读 · 0 评论 -
Java GC日志分析
主要参数JVM的GC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)原创 2015-10-10 12:15:29 · 457 阅读 · 0 评论 -
Java System性能监控
大多数操作系统的CPU使用率分为用户态CPU使用率和系统态CPU使用率。用户态CPU使用率:执行应用程序代码的时间占总CPU时间的百分比。 系统态CPU使用率:应用执行操作系统调用的时间占总CPU时间的百分比。其值越大意味着共享资源有竞争或者I/O设备之间有大量交互。 既然原本用于执行操作系统内核调用的CPU周期也可以用来执行应用代码所以理想情况下,应用达到最高性能和扩展性时,它的系统态CPU原创 2015-10-24 12:06:02 · 288 阅读 · 0 评论 -
Java 服务提供框架
服务提供框架:服务接口: 提供者实现,用于提供服务支持。例如:JDBC接口Connection。提供者注册API: 服务提供框架用来注册实现,让客户端访问它们。 例如:DriverManager.registerDriver()。服务访问API: 客户端用来获取服务的实例,从而调用服务接口。服务访问API一般允许但是不要求客户端指定某种选择提供者的条件,如原创 2015-08-20 12:14:43 · 588 阅读 · 0 评论 -
Java 构建器
如果类的构造器或静态工厂中具有多个参数,设计这种类的时候,Builder模式就是一个不错的选择,特别是大多数参数都是可选的时候。与传统的重叠构造器模式相比,使用Builder模式的客户端代码将更加易于阅读和编写,构建器也比Javabean更加安全。重叠构造器模式:提供一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个构造器有两个可选参数,以此类推,最后一个构造器有所有的可选参数。原创 2015-08-20 18:04:47 · 564 阅读 · 0 评论 -
Java 注解
注解目前非常的流行,很多主流框架都支持注解,而且自己编写代码的时候也会尽量的去用注解,一时方便,而是代码更加简洁。注解的语法比较简单,除了@符号的使用之外,它基本与Java固有语法一致。Java SE5内置了三种标准注解: @Override,表示当前的方法定义将覆盖超类中的方法。 @Deprecated,使用了注解为它的元素编译器将发出警告,因为注解@Deprecated是不赞成使用的代码,被弃用原创 2015-09-07 19:15:27 · 293 阅读 · 0 评论 -
Java 高效代码
考虑用静态工厂方法代替构造器:优点: 1.静态工厂方法有名称,可以直接阐明意图,解决多个构造函数给用户的困扰(需要查明api了解个参数含义,才能实例化)。 2.不必在每次调用时都创建一个新的对象。 3.它们可以返回原返回类型的任何子类型对象。 4.在创建参数化类型实例的时候,它们使代码变得更加简洁。缺点: 1.类如果不含有公共的或受保护的构造器,就不能被子类化原创 2015-08-20 12:39:21 · 882 阅读 · 0 评论