尽量避免随意使用静态变量 要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如 Java代码 public class A{ static B b = new B();
关键字在类加载时就会进行初始化,并且缓存到 静态内存 中的特点,确保了调用 getInstance() 时,无须担心 instance 为null; 通过 fianl 关键字,式单例在多线程情况下的安全,因为JVM会自动对 fianl
尽量避免随意使用静态变量 要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如 public class A{ static B b = new B(); }
简单来讲,Java的内存分为堆和栈,其中堆是程序员用的内存,栈是系统用的内存。( 这句话不一定正确,但可以这么理解 )Java的内存管理主要是管理对象的分配和释放,或者说内存的分配和回收。在C或C+
语言中有8中基本类型和一种比较特殊的类型 String 。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统协调的,
等,性能也会受到一定的影响。 性能分析 在系统层面能够影响应用性能的一般包括三个因素:CPU、内存和IO,可以从这三方面进行程序的性能瓶颈分析。 CPU分析 当程序响应变慢的时候,首先使用to
是 OptionalInt 和 IntStream 等特殊类型存在的原因。在这篇文章中,我将概述JVM很难消除自动装箱的一个原因。 实例 例如,我们想要计算任意一类数据的编辑距离(Levensht
是 OptionalInt 和 IntStream 等特殊类型存在的原因。在这篇文章中,我将概述JVM很难消除自动装箱的一个原因。 实例 例如,我们想要计算任意一类数据的编辑距离(Levens
String:是不可改变的量,也就是创建后就不能在修改了。 StringBuffer:是一个可变字符串序列,它与 String 一样,在内存中保存的都是一个有序的字符串序列(char 类型的数组),不同点是 StringBuffer 对象的值都是可变的。
种GC类型以及各种类型对应用程序的影响。 在第二篇 如何监控Java的垃圾回收 中,阐述了 JVM 是怎样实际执行垃圾回收的,我们怎样去监控GC以及哪些工具能让这个过程更高效。 第三篇 如何如何优化Java垃圾回收机制
P13 va虚拟机JVM被广泛地部署在各种系统平台上。对Java应用的性能优化也越来越受到关注;谈到Java应用的性能问题就不得不涉及到两个方面:一是Java应用的构造是否是最优化的;二是对JVM的微调。本文
>卸载 其中加载(除了自定义加载)+链接的过程是完全由jvm负责的,什么时候要对类进行初始化工作(加载+链接在此之前已经完成了),jvm有严格的规定(四种情况): 1.遇到new,getsta
P38 15、error和exception有什么区别 答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况 exception 表示一种设计或实现问题。也就是说
字符串去重 字符串在任何应用中都占用了大量的内存。尤其数包含独立UTF-16字符的char[]数组对JVM内存的消耗贡献最多——因为每个字符占用2位。 内存的30%被字符串消耗其实是很常见的,不仅是
P41 Core Java试题汇总 1. 谈谈final, finally, finalize的区别。 答:final为Java语言中的关键字,有“这是无法改变的”或者“终态的”的含义; finally也为
P113 强制类型转换(显式) 5 2.3.3 表达式数据类型的自动提升 5 2.4 变量 5 2.5 常量(final) 6 2.6 命名规范 6 2.7 运算符 6 2.7.1 算术运算符 6 2.7.2 赋值运算符(=)
静态方法名(参数列表…) 类名.静态变量名 用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块(用处非常大,呵呵)。 1、static变量 按照是否静态的对类成
译者:叶文海(yewenhai@gmail.com) 1、Java环境中的字节码是什么? 由Java 编译器生成的一种代码。 由JVM生成的一种代码。 Java源文件(Java Source File)的别名。 一种写在类的实例方法中的代码。
P14 +int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转) 7、char型变量中能不能存贮一个中文汉字?为什么? 可以,char型
使用非阻塞I/O 1.3 慎用异常 1.4 不要重复初始化变量 1.5 尽量指定类的final修饰符 1.6 尽量使用局部变量 1.7 乘法和除法 二、J2EE篇 2.1 使用缓冲标记