学习java的心得!
2016-03-22 16:32
183 查看
工作以来,代码越写越多,程序也越来越臃肿,效率越来越低,对于我这样一个追求完美的程序员来说,这是绝对不被允许的,于是除了不断优化程序结构外,内存优化和性能调优就成了我惯用的“伎俩”。
要对Java程序进行内存优化和性能调优,不了解虚拟机的内部原理(或者叫规范更严谨一点)是肯定不行的,这里推荐一本好书《深入Java虚拟机 (第二版)》(Bill Venners著,曹晓刚 蒋靖 译,实际上本文正是作者阅读本书之后,对Java虚拟机的个人理解阐述)。当然了,了解Java虚拟机的好处并不仅限于上述两点好处。从更深一点的技术层 面上看,了解Java虚拟机的规范和实现,将更加有助于我们编写高效、稳定的Java代码。
比如,假如了解Java虚拟机的内存模型,了解虚拟机的内存回 收机制,那么我们就不会过分依赖它,而会在需要的时候显式的”释放内存”(Java代码不能显式释放内存,但是可以通过释放对象引用告知垃圾回收器回收该 对象需要被回收),以降低不必要的内存消耗;假如我们了解Java栈的工作原理,那么我们就可以通过减少递归层数,减少循环次数来降低堆栈溢出的风险。
可 能对于应用开发人员来说,可能不会直接去涉及这些Java虚拟机底层实现的工作,但是了解这些背景知识,或多或少,都会对我们写的程序产生潜移默化的好的 影响。
本篇文章,将简明扼要的说明Java虚拟机的体系结构和内存模型,如有用词不妥或解释不准确之处,请不吝指正,深感荣幸!
要对Java程序进行内存优化和性能调优,不了解虚拟机的内部原理(或者叫规范更严谨一点)是肯定不行的,这里推荐一本好书《深入Java虚拟机 (第二版)》(Bill Venners著,曹晓刚 蒋靖 译,实际上本文正是作者阅读本书之后,对Java虚拟机的个人理解阐述)。当然了,了解Java虚拟机的好处并不仅限于上述两点好处。从更深一点的技术层 面上看,了解Java虚拟机的规范和实现,将更加有助于我们编写高效、稳定的Java代码。
比如,假如了解Java虚拟机的内存模型,了解虚拟机的内存回 收机制,那么我们就不会过分依赖它,而会在需要的时候显式的”释放内存”(Java代码不能显式释放内存,但是可以通过释放对象引用告知垃圾回收器回收该 对象需要被回收),以降低不必要的内存消耗;假如我们了解Java栈的工作原理,那么我们就可以通过减少递归层数,减少循环次数来降低堆栈溢出的风险。
可 能对于应用开发人员来说,可能不会直接去涉及这些Java虚拟机底层实现的工作,但是了解这些背景知识,或多或少,都会对我们写的程序产生潜移默化的好的 影响。
本篇文章,将简明扼要的说明Java虚拟机的体系结构和内存模型,如有用词不妥或解释不准确之处,请不吝指正,深感荣幸!
相关文章推荐
- 各种排序算法的分析及Java实现
- Java——基本容器:JFrame
- Spring Security(10)——退出登录logout
- Java多线程系列--“JUC原子类”05之 AtomicLongFieldUpdater原子类
- JAVA单聊模式的不同写法
- SpringMVC 基于注解的Controller详解s
- Eclipse项目提交到Android studio中出现的常见问题
- Java 内部类
- Java设计模式简介--策略模式--工厂方法模式--详细请看其他的两篇文章
- Java多线程系列--“JUC原子类”03之 AtomicLongArray原子类
- Spring Security(09)——Filter
- Java多线程系列--“JUC原子类”02之 AtomicLong原子类
- Java工程师技术栈--成神之路
- 手动配置hibernate5.1入门(1)
- Java字符串:String使用详解及源码分析
- Spring JdbcTemplate方法详解
- Java——Swing
- spring + mybatis 创建项目
- JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类
- JAVA基础1 语法基础变量与常量