static 和final static 静态修饰关键字,可以修饰 变量,程序块,类的方法; 当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存; 3.1.适用范围: 3.1.2.两者范围的交集,所以只能修饰:成员变量、方法、内部 ...
分类:
编程语言 时间:
2017-02-11 12:49:45
阅读次数:
175
A a = new A(); new 创建对象过程: 1.类加载 代码验证 2.给对象在内存(堆)中分配空间(给属性赋值); 3.属性赋默认值; byte,short.int,long ->0 float ->0.0f double ->0.0 boolean ->false String ->nu ...
分类:
编程语言 时间:
2017-02-03 17:08:02
阅读次数:
241
内存分配:整个内存:堆内存(年轻代大小+年老代大小)+非堆(持久代)。1、堆参数:-Xms:初始内存,默认是物理内存的1/64。-Xmx:最大内存,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最..
分类:
其他好文 时间:
2017-01-17 22:07:41
阅读次数:
220
JVM性能调优JVM垃圾回收与性能调优总结JVM调优的几种策略一、JVM内存模型及垃圾收集算法1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm)其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内..
分类:
其他好文 时间:
2017-01-09 16:51:46
阅读次数:
182
3、值类型和引用类型 区别: 存储位置:值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。 传递方式:值类型传递实际值,引用类型传递是引用(地址)。 值类型存取速度快,引用类型存取速度慢。 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或 ...
分类:
其他好文 时间:
2016-12-23 01:01:27
阅读次数:
184
反射 反向获取程序运行过程。 内存堆栈信息 保存运行时存放的内容。 debug_print_backtrace() 网页开发中,对html元素不了解的时候可以 想办法获取该元素属性以及 所拥有的事件函数。 每个html 元素都应该是一个对象。那么反射思想就可以实现。 让我们更加的熟悉该 元素。 ph ...
分类:
其他好文 时间:
2016-12-08 17:37:56
阅读次数:
212
tomcat服务突然无响应了,导出内存堆栈和线程堆栈,分析后发现是同步锁使用不合理导致的。 [root@prd-dtb-web-01 ~]# pgrep java10472[root@prd-dtb-web-01 ~]# jmap -heap 10472Attaching to process ID ...
分类:
其他好文 时间:
2016-11-27 16:28:13
阅读次数:
235
很多tomcat进程退出(或者进程假死),都是由于频繁的抛出OutOfMemeoryError导致的。 为了让tomcat退出前或者发生OutOfMemeoryError时自动dump堆栈信息,方便事后排查问题,我们可以做如下操作: 1、 在tomcat启动参数中加入两个参数 -XX:+HeapDu ...
分类:
其他好文 时间:
2016-11-19 23:21:11
阅读次数:
257
(一)在计算机中,运行的app数据都是保存在内存的。内存分为五大区域 *栈区:由编译器自动分配并释放,存放局部变量,先进后出(弹栈),一旦出了作用域就会被销毁,程序员不管这部分内存 *堆区:由程序员来管理,ARC管理OC对象在堆区,后进先出,堆都是alloc出来的(ARC是编译器在编译的时候自动添加 ...
分类:
其他好文 时间:
2016-11-10 16:37:16
阅读次数:
175
操作系统堆管理器管理: 堆管理器是操作系统的一个模块,堆管理内存分配灵活,按需分配。 大块内存: 堆内存管理者总量很大的操作系统内存块,各进程可以按需申请使用,使用完释放。 程序手动申请&释放: 手工意思是需要写代码去申请malloc和释放free。 脏内存: 堆内存也是反复使用的,而且使用者用完释 ...
分类:
编程语言 时间:
2016-11-09 19:53:38
阅读次数:
273