Java
xiaolongleee
玩儿大数据和Spring的
展开
-
笔记-JVM的类加载过程
Java代码运行在JVM之上,JVM的运行情况对于Java程序至关重要。因此掌握JVM中的关键机制会对编写稳定的,高性能的Java程序至关重要。JVM规范中定义的标准结构如下图所示:JVM负责装载class文件并执行,class文件通常由类加载器(ClassLoader)来完成加载。class的执行在Sun JDK中有解析执行和编译为机器码执行两种方式。其中编译执行又分为client和server...原创 2018-04-08 10:05:23 · 291 阅读 · 0 评论 -
java中IP地址与long之间的转换
IP地址转为long型: public static long ipToLong(String ip) { String[] ipArray = ip.split("\\."); List ipNums = new ArrayList(); for (int i = 0; i < 4; ++i) { ipNums.add(Long.valueOf(Long.parseLon...原创 2018-05-04 08:52:42 · 4366 阅读 · 1 评论 -
Java生成二维码
首先,引入maven包: <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId&g...原创 2018-05-03 09:40:44 · 179 阅读 · 0 评论 -
深入解析OutOfMemoryError
译文出处: shenzhang 原文出处:原文链接在Java中,所有对象都存储在堆中。他们通过new关键字来进行分配,JVM会检查是否所有线程都无法在访问他们了,并且会将他们进行回收。在大多数时候程序员都不会有一丝一毫的察觉,这些工作都被静悄悄的执行。但是,有时候在发布前的最后一天,程序挂了。1Exception in thread "main" java.lang.OutOfMemoryEr...转载 2018-04-20 17:24:37 · 533 阅读 · 0 评论 -
茴香豆系列之单例的几种写法
1. 懒汉式public class Singleton { private static Singleton instance; private Singleton(){} public static synchronized Singleton getInstance(){ if (instance == null) { inst...原创 2018-04-20 17:21:53 · 221 阅读 · 0 评论 -
Spring中使用Annotation来记录方法的运行时间
在Spring的Java程序中,每个方法写一句log来记录这个方法执行多久是一件很恶心的事情。记录下使用annotation来解决。1. 定义一个annotation@Target({java.lang.annotation.ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ...原创 2018-04-20 17:11:14 · 1385 阅读 · 1 评论 -
JVM相关参数解析
Java 8相关新特性请参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html以下为Java 7的参数:1 行为参数选项和默认值值描述-XX:-AllowUserSignalHandlers允许用户在应用中捕捉信号 (只和Solaris和Linux有关)-XX:AltStackSize=16384备用信号栈大小...转载 2018-04-20 09:52:39 · 311 阅读 · 0 评论 -
Java应用程序中的资源消耗分析
CPU的消耗查看CPU的消耗,目前最直接的办法就是通过linux系统的top命令来查看。如上文所述。对Java应用程序而言,CPU的消耗主要体现在us,sy两个值上,下面分析下这两个值:1. us当us值过高时,表示运行的应用程序消耗了大部分的CPU。在这种情况下,对Java程序而言,如何找到具体消耗CPU的线程所执行的代码呢?首先通过linux提供的命令找到消耗CPU严重的线程及其ID,将此ID...原创 2018-04-20 09:44:45 · 2523 阅读 · 0 评论 -
JVM性能调优监控工具解析
我们在企业级Java开发的过程中有时会遇到以下问题:内存泄漏线程死锁锁抢占CPU占用过高等等JVM提供了一些命令工具可以帮助我们来定位这些问题:1. Jps(Java Virtual Machine Process Status Tool)它主要用来输出JVM中正在运行的进程状态信息。其语法格式如下:usage: jps [-help] jps [-q] [-mlvV] [<h...原创 2018-04-19 22:49:54 · 288 阅读 · 0 评论 -
JAVA 8:健壮、易用的时间/日期API
对很多应用来说,时间和日期的概念都是必须的。像生日,租赁期,事件的时间戳和商店营业时长,等等,都是基于时间和日期的;然而,Java却没有好的API来处理它们。在Java SE 8中,添加了一个新包:java.time,它提供了结构良好的API来处理时间和日期。历史在Java刚刚发布,也就是版本1.0的时候,对时间和日期仅有的支持就是java.util.Date类。大多数开发者对它的第一印象就是,它...转载 2018-04-22 17:11:51 · 274 阅读 · 0 评论 -
Java Integer使用的一个坑
在以前的工作中,曾经遇到过这么一个事儿:某个项目的基础common包中有一个树结构。它的节点如下定义:public class Node { private int id; private int parentId; //getters and setters and other methods}之前这个工程运行都正常。但在某次升级之后,几个与升级逻辑无关的业务突然开始出现莫名其妙...原创 2018-04-03 15:18:43 · 769 阅读 · 0 评论 -
查看Linux环境下MySQL是哪个java进程在链接
首先,在mysql cli中执行如下命令:MySQL [appcpa_bitmap]> show processlist;+-----------+--------+--------------------+---------------+---------+-------+-------+------------------+| Id | User | Host ...原创 2018-06-10 10:17:11 · 1365 阅读 · 1 评论