- 博客(14)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 浅谈JVM类装载器
jvm它提供了我们程序运行的底层环境,那么我们在开发中怎么去执行我们的类信息的呢?今天我们就简单学习jvm加载class过程。1)class加载的验证流程在们编写程序时并不是简单的编写好之后就可以正常运行了,它的运行是一个系统工程,需要经过一个复杂的过程,那么首先需要有一个严格的校验过程,符合jvm加载规范时则可以运行,以下为验证流程:加载--》链接验证--》初始化加载: 获取类的字节码文...
2018-02-27 20:00:18 119
转载 JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同...
2018-02-10 16:11:49 106
原创 jvm GC回收几种算法理解
对于java 开发人员jvm 并不陌生,今天我们就看一下jvm垃圾回收的几种算法。1)经典算法:引用计数法简单理解:引用计数法通俗讲就是我们创建对象时如果有引用我们此对象时,那么我们此对象引用计数器就增加一,相反如果释放此对象引用时我们减一,以此种思想来进行我们GC回收。缺点:个人认为如果我们创建一个根对象A,如果B对A进行引用,并且B形成了一个循环引用那么如果如果B不在对A进行引用但是引用循环并...
2018-02-10 13:25:23 220
转载 JVM内存结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。 先看一张图,这张图能很清晰的说明JVM内存结构布局。Java的内存结...
2018-02-09 15:39:05 83
转载 JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommended that you exit and restart MyEclipse with new virtual machi...
2018-02-08 22:39:18 482
转载 JVM逃逸分析DoEscapeAnalysis
JVM逃逸分析JVM有栈、堆、方法区、本地栈等组成栈:每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。堆:当实例化对象时,会把对象分配的堆中,然后把指向改堆的引用压入栈中。逃逸:当一个对象的指针被多个方法或线程引用时,我们称这个指针发生了逃逸,一般情况返回对象、对全局变...
2018-02-07 22:17:45 1187
转载 深入理解 Java 垃圾回收机制
一:垃圾回收机制的意义java 语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存; 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构
2018-02-06 22:11:38 89
原创 java 中枚举使用
简单来说枚举使用就是当我们业务具有相同意义的值时我们可以考虑使用枚举,并且他可以在编译时检测我们代码是否有问题,比如:一周的星期几,性别等这些都是确定含义的值,所以我们可以使用枚举进行业务开发。下面举其简单的例子:package com.szpl.cai.proxy.dao;public enum WeekDay { MON(0,"星期一"),TUE(1,"星期二"),WED(2,
2018-02-05 23:19:16 330
转载 深入浅出享元模式
一、引子让我们先来复习下java中String类型的特性:String类型的对象一旦被创造就不可改变;当两个String对象所包含的内容相同的时候,JVM只创建一个String对象对应这两个不同的对象引用。让我们来证实下着两个特性吧(如果你已经了解,请跳过直接阅读第二部分)。先来验证下第二个特性:public class TestPattern { public sta
2018-02-05 22:07:05 146
原创 java 代理到动态代理演变及详解
1.在我们开发中代理设计其实无处不在,那么怎么实现代理呢?其实说白了就是我们调用一个类的时候,可以通过一个公共的类来实现不同方法的调用,也就是说完成代理之后的对象具有与目标类相同的属性及动作(方法)。话不多说,下面看一个简单的代理实现:1)假设场景,我们最熟悉的用户信息操作,有新增,修改,删除,查询。此时要求我们要对这些操作进行日志记录信息以便我们进行项目定位与维护。首先创建一个u简单user对象...
2018-02-05 21:15:28 117
原创 java 代理到动态代理演变及详解
1.在我们开发中代理设计其实无处不在,那么怎么实现代理呢?其实说白了就是我们调用一个类的时候,可以通过一个公共的类来实现不同方法的调用,也就是说完成代理之后的对象具有与目标类相同的属性及动作(方法)。话不多说,下面看一个简单的代理实现:1)假设场景,我们最熟悉的用户信息操作,有新增,修改,删除,查询。此时要求我们要对这些操作进行日志记录信息以便我们进行项目定位与维护。首先创建一个u简单user
2018-02-05 21:08:08 140
原创 遇到java 文件不编译问题
在开发中有时我们会遇到在我们IDE改写文件之后不编译问题,那么怎么处理,这是我的处理方式。1.今天在开发中遇到我的classpath下的properties文件不编译问题,因此进行了手动编译,将我们文件拷贝到classes路径下,其实便宜一个文件对我们来说so easy,但是这个编译文件是一个servlet文件,直接编译会不成功,因为我们jdk没有servlet-api.jar,所以我们需要将
2018-02-04 10:18:36 3111
转载 javaweb读取配置文件的4种方法
方式一:采用ServletContext读取获取配置文件的realpath,然后通过文件流读取出来或者通过方法getReasurceAsStream()。因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的classes目录中,也可以在应用层级及WEB-INF的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在WEB
2018-02-04 09:37:26 230
原创 oracle 取出某列数字的记录
今天有一个需求,因为数据库中信息有导入记录,则对应的数据比较混乱,比如录入人input_id字段,有中文名的但是从系统录入此字段为用户编码比如10020,那么怎么取出系统录入相关数据,此时使用正则函数regexp_like比较快捷方便,范例:select * from table where regexp_like(column,'^[0-9]+[0-9]$');-------------
2018-02-02 14:40:42 577
springMVC 简单实例流程代码
2017-11-20
文件下载进度条
2017-03-25
weblogic12c 与cxf2.7版本冲突
2022-06-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人