自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KK_GKD的博客

https://github.com/cwjokaka

  • 博客(25)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 【jvm实战】IDEA运行速度调优

1.个人电脑配置CPU:Intel Core i7-7700HQ 2.80GHzRAM:16.0GOS:windows10 64位2.打开ides安装目录里的bin文件夹,打开idea.exe.vmoptions(64位的叫idea64.exe.vmoptions)看到的是默认VM参数配置:-Xms128m-Xmx512m-XX:ReservedCodeCa

2017-11-15 17:32:55 15480 5

原创 第一次部署javaweb项目到linux(详细)

0.准备工作:先准备好工具:Xftp 5和Xshell 51.先(安装)tomcat(XShell5里进行):sa@iZ94sgjyh2cZ:~/service$ tar -vxf apache-tomcat-8.0.43.tar.gz把解压出来的文件夹改名为air(我个人的项目名):sa@iZ94sgjyh2cZ:~/service$ mv apache-tomcat

2017-11-10 14:34:23 554

原创 【java集合】自己实现简易的LinkedList

List接口:public interface IMyList { boolean add(E e); void add(int index, E e); int size(); boolean isEmpty();}LinkList实现:public class MyLinkedList implements IMyList {

2017-11-08 20:26:08 286

原创 jstack:Java堆栈跟踪工具

jstack(Stack  Trace  for  Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack来查看各个

2017-11-08 17:16:49 999

原创 jhat:虚拟机堆转储快照分析工具

Sun JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。不过实事求是地说,在实际工作中,除非笔者手上真的没有别的工具可用,否则一般都不会去直接使用jhat命令来分析dump文件,主要原因有二:一是一般不会在部署应用程序的服务器

2017-11-08 13:58:19 1647

原创 jmap:Java内存映像工具

jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照,还有一些比较“暴力”的手段:譬如在第2章中用过的-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以

2017-11-08 11:48:15 401

原创 jinfo:Java配置信息工具

jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询了(如果只限于JDK  1.6或以上版本的话,使用java-XX:+PrintFlagsFinal查看参数默认值也是

2017-11-08 11:25:50 217

原创 jstat虚拟机统计信息监视工具

jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。命令格式:jstat[option vmid[interval[s|ms][cou

2017-11-08 11:08:26 231

原创 jps虚拟进程状况工具

jps(JVM Process Status Tool):可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。虽然功能比较单一,但它是使用频率最高的JDK命令行工具,因为其他的JDK工具大多需要输入它查询到的LVMID来确定要监控的是

2017-11-08 11:00:12 485

原创 【java集合】自己实现简易的ArrayList

List接口:public interface IMyList { E set(int index, E elem); boolean add(E e); boolean remove(Object o); E remove(int index); int indexOf(Object o); E get(int index);

2017-11-07 22:07:55 519 2

原创 【JVM】12_空间分配担保

在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那么Minor GC可以确保是安全的。如果不成立,则虚拟机会查看HandlePromotionFailure设置值是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试着进行一次Minor GC,尽管这次Minor G

2017-11-07 15:55:58 2449 4

原创 【JVM】11_动态对象年龄判定

为了能更好地适应不同程序的内存状况,虚拟机并不是永远地要求对象的年龄必须达到了MaxTenuringThreshold才能晋升老年代,如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。/** * VM参数 : * -verbose:gc * -

2017-11-07 13:55:50 3123

原创 【JVM】10_长期存活的对象将进入老年代

/** * VM参数 : * -verbose:gc * -Xms20M * -Xmx20M * -Xmn10M * -XX:+PrintGCDetails * -XX:SurvivorRatio=8 * -XX:MaxTenuringThreshold=1 //年龄阈值,对象每熬过一次Minor GC,它的age会加1,age达到此值对象就会晋升老年代 * -XX:

2017-11-07 10:30:34 490

原创 【JVM】9_大对象直接进入老年代

/** * VM参数 : * -verbose:gc * -Xms20M * -Xmx20M * -Xmn10M * -XX:+PrintGCDetails * -XX:SurvivorRatio=8 * -XX:PretenureSizeThreshold=3145728 //对象如果大于或等于此值,会直接分配到老年代里 * -XX:+UseSerialGC

2017-11-06 16:57:37 7218

原创 【JVM】8_对象优先在Eden分配

/** * VM参数有这些: * -verbose:gc : 表示输出虚拟机中GC的详细情况,输出像: [Full GC 168K->97K(1984K), 0.0253873 secs] * -Xms20M : 堆内存最小值(单位M) * -Xmx20M : 堆内存最大值(单位M) * -Xm

2017-11-06 14:37:03 506 1

转载 【JVM】理解GC日志

本文转载自http://blog.csdn.net/renfufei/article/details/49230943本文是 Plumbr 发行的 Java垃圾收集指南 的部分内容。文中将介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息。我们通过 -XX:+UseSerialGC 选项,指定JVM使用串行垃圾收集器, 并使用下面的启动参数让 JVM 打印出详细的GC

2017-11-06 14:25:25 288

原创 【java集合】自己实现简易的Hashtable

Map接口:/** * Created by hasee on 2017/11/5. */public interface IMyMap { V put(K key, V value); V get(K key); int size(); boolean isEmpty(); interface Entry{}}Hashtable实现

2017-11-05 23:14:06 459

原创 【java集合】自己实现简易的HashSet

Set接口:public interface IMySet { boolean add(E e); boolean remove(E e); boolean contains(Object o); int size();}HashSet实现:import java.util.HashMap;/** * HashSet底层的数据存取是通过Hash

2017-11-04 19:28:12 477

原创 【java集合】自己实现简易的HashMap~改良

map接口:public interface IMyMap { V put(K key, V value); V get(K key); int size(); interface Entry{};}实现:import java.util.HashMap;/** * Created by hasee on 2017/11/2. */p

2017-11-03 20:20:08 204

转载 原码, 反码, 补码 详解

原码, 反码, 补码 详解本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.

2017-11-02 22:19:20 170

原创 【JVM】7_对象的自我拯救

即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历两次标记过程:如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被虚拟机调用过,虚拟机将

2017-11-01 17:59:54 252

原创 【JVM】6_GC存活分析算法之引用计数法的优缺

引用计数法(Reference Counting)的含义:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:客观地说,引用计数算法的实现简单,判定效率也很高,在大部分情况下它都是一个不错的算法,也有一些比较著名的应用案例,例如微软公司的COM(Component Object Model

2017-11-01 16:25:28 1253

原创 【JVM】5_测试直接内存溢出

直接通过反射获取Unsafe实例进行内存分配(Unsafe类的getUnsafe()方法限制了只有引导类加载器才会返回实例,也就是设计者希望只有rt.jar中的类才能使用Unsafe的功能)。因为,虽然使用DirectByteBuffer分配内存也会抛出内存溢出异常,但它抛出异常时并没有真正向操作系统申请分配内存,而是通过计算得知内存无法分配,于是手动抛出异常,真正申请分配内存的方法是unsafe

2017-11-01 14:00:07 274

原创 【JVM】4_利用GCLib测试方法区溢出

方法区用于存放Class的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。对于这些区域的测试,基本的思路是运行时产生大量的类去填满方法区,直到溢出,用GCLib可以方便我们测试方法区溢出。import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cgl

2017-11-01 09:46:17 269

原创 【java集合】自己实现简易的HashMap

面试中经常会被问到HashMap的原理,所以自己尝试实现了一个极简版的,应该可以应付一般的考官了,但是功能、性能方面肯定远不及官方jdk的了。先来看看定义的IMap接口:public interface IMap { V get(K key); V put(K key, V value); int size(); interface Entry{

2017-11-01 00:46:11 243

Maven3.2.5 教程 电子版

Apache Maven 是一套软件工程管理和整合工具。基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建、报告和文档。 本教程将教你如何在使用 Java 开发的工程中,或者任何其他编程语言中使用 Maven。

2017-10-20

医疗信息管理

很好用的管理系统.经常用于医疗管理系统。

2013-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除