8 unix21

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 4k+

Java字节码研究

本文在本人2个博客https://blog.csdn.net/21aspnet和https://blog.csdn.net/unix21unix21同步发布1.String和常连池先上代码:public class TestApp { public static void main(String[] args) { String s1 = ...

2019-03-05 18:49:39

Java字节码instrument研究

MyAgent项目<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...

2018-08-21 15:54:36

JVM虚拟机参数配置官方文档

JDK8 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.htmlJDK7 https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html官方博客 https://blogs.oracle.com/poonam/==============...

2018-04-08 11:23:51

Linux kernel futex.c的bug导致JVM不可用

JVM死锁导致线程不可用,然后会瞬间起N个线程,当然也是不可用的,因为需要的对象死锁,然后耗尽文件句柄导致外部TCP无法建议拒绝服务,jstack之后就会恢复。解决办法:替换中间件类库 ,比如httpclient的。原因大致是:某个switch分支缺少memory barrier的正确处理,导致外部应用如JVM的lock被错误锁住;一般jstack连后就恢复。https://github.com/...

2018-04-08 09:54:01

Java堆外内存泄露分析

查看堆内存占用正常,jvm垃圾回收也没有异常。而top出来显示java占用内存是几个G,那么可能想到了是堆外内存泄漏。需要安装google-perftools工具进行分析1.先安装g++不然编译会报错:g++:commandnotfound#yum-yinstallgccgcc-c++----2.安装libunwind不建议版本>0.99据说有问题,

2018-01-25 14:18:29

线上java问题排查

0.jps这个输出java进程pid#jps查看java的线程#top -Hp 25448如图25757这个线程比较耗时,看看他在做什么注意需要折算出线程pid的16进制值,然后jstack。可以打印更多信息#jstack pid | grep -A 20 649d参考:JVM调优之jstack找出最耗cpu的线程并定位代码

2018-01-18 11:24:38

用“逐步排除”的方法定位Java服务线上“系统性”故障

说明:原文地址已经不可访问,其他地方有转载,不过很多丢失图片,所以,找到一处有图的重新配好图。用“逐步排除”的方法定位Java服务线上“系统性”故障Posted on 2014/08/25李斯宁(高级测试开发工程师)一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(

2018-01-05 14:12:34

Java常用命令及Java Dump

线程Dump,包含所有线程的运行状态。纯文本格式。堆Dump,包含线程Dump,幵包含所有堆对象的状态。二进制格式。Java Dump方法1.使用Java虚拟机制作Dump指示虚拟机在发生内存不足错误时,自动生成堆Dump-XX:+HeapDumpOnOutOfMemoryError2.使用图形化工具制作Dump使用JDK(1.6)自带的工具:Java Vi

2017-12-20 14:19:59

Java的SPI机制

Dubbo等框架使用到必须掌握。package org.hadoop.java;public interface IService { public String sayHello(); public String getScheme();}package org.hadoop.java;public class HDFSService impleme

2017-03-27 20:45:34

匿名内部类和传接口

匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口参考:http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.htmlpublic interface MyInterface { public

2017-03-27 17:45:40

编程经验

1.变量下面多处使用那么不应该直接在第一处修改 需要另一个变量或者开一个函数String TypeCode = (String) md.get("TypeCode"); if (!StaticUtil.XXXs.contains(TypeCode+"_")) { continue;

2017-02-06 11:06:45

SpringBoot使用笔记

其实也是参考官方的:http://spring.io/guides/gs/rest-service/SpringBoot并不神秘,其最大的好处是可以帮你省略引用一堆jar包,需要神秘jar它自动帮你引用,集成tomcat,集成配置等待好处太多,总之就是更方便开发而已。还是自己体验下比较好。1.建立java应用程序起一个Maven的java应用程序,注意不要再起Web

2017-01-01 14:20:15

Tomcat定时任务

原文:The   load-on-startup   element   indicates   that   this   servlet   should   be   loaded   (instantiated   and   have   its   init()   called)   on   the   startup   of   the   web   applicatio

2016-12-15 13:13:18

String和常量池

String s1 = "abc";// 放在常量池中 String s2 = "abc";// 从常量池中查找 String s3 = new String("abc");//new放在堆中 String s4 = new String("abc"); String s5 = s1.intern(); String

2016-12-02 13:15:17

JVM内存溢出的几种情形

java虚拟机规范定义了两种异常与栈空间有关:StackOverflowError和OutOfMemoryError线程计算过程中 栈深度>最大可用栈深度 抛出StackOverflowError如果栈可以动态扩展,如果扩展过程中没有足够内存空间支持会抛出OutOfMemoryError-Xss设置栈大小,栈大小决定了函数调用的可达深度public class Test

2016-12-02 11:09:22

MySQL常用性能分析方法-profile,explain,索引

1.查版本号无论做什么都要确认版本号,不同的版本号下会有各种差异。>Select  version();2.执行状态分析显示哪些线程正在运行>show processlist;下面是完整的信息

2016-10-26 13:49:46

事务隔离机制原理分析以及是否可以防止订单超卖

事务的隔离机制是指:Read Uncommitted(读取未提交内容)Read Committed(读取提交内容)Repeatable Read(可重读)Serializable(可串行化)具体的解释最经典的MySQL书《高性能MySQL(第3版)》以及有了就不在其他地方再引用了:隔离机制的比较其实也有人喜欢用锁来控制并发,书中还提到了“隐式”和

2016-10-18 20:35:04

Spring源码分析【8】-分布式环境SpringSecurity保持用户会话

1.SpringSecurity的权限控制流程是这样的:用户登录,基础信息UserInfo存在SpringSecurity的ThreadLocal里。下面是contextHolder对象:final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrat

2016-10-14 17:49:19

Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作

需要展开子树,复制堆栈跟踪,就可以查看到代码调用链,看到自己的业务代码,从而定位到最耗时的代码位置:

2016-10-13 10:47:42

Map和List静态初始化

public final static Map ServerIPMap = new HashMap() { { put("redis", "127.0.0.1"); put("solr", "127.0.0.1"); } };public final static List ComIPList =

2016-10-13 10:20:24

查看更多

勋章 我的勋章
    暂无奖章