摘要:
本文作者Pierre是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。根据他多年的工作实践经验,他发现许多性能问题都是由Java堆容量不足和调优引起的。下面他将和大家分享非常实用的5个Java堆优化技巧。1.JVM:对难以理解的东西产生恐惧感 千万不要以为,通过配置,调优,就可以排除那些你所不明白的问题。有些人认为Java程序员不需要知道内部JVM内存管理。毫无疑问,这种观点明显是错误的,如果想拓宽知识面和提升排除故障能力,你就必须要了解和学习一下JVM内存管理。对于Java或者是Java EE新手来说,Java Heap调优和故障排除是一项非常有挑战 阅读全文
摘要:
java程序在运行时,需要在内存中分配内存空间为了提高运算效率,又对空间进行了不同区域的划分,每一个区域都有特定的处理数据方式和内存管理。 栈、堆、方法区、本地方法区、寄存器。 栈内存 用于存储局部变量。当数据使用完,会自动释放。 对内存 1.存放的是引用类型和对象实体。 2.堆内存中每一个实体都有内存地址 3.实体汇总的变量都有默认的初始值。 4.实体不在被使用,会不定时的被垃圾回收器回收释放。 方法区 1.类信息 2.静态变量 3.final变量 本地方法区 每个native方法调用状态 PC寄存器 程序计数器,可以理解方法的执行的计数器。每个java虚拟机线程都有他自己的PC寄存器,包含 阅读全文
摘要:
当对象在堆内存中不在被引用的时时,java虚拟机JVM会启动垃圾回收机制,不定时的将不在被使用的对象自动清除。 阅读全文
摘要:
引用类型和基本类型 引用类型作为参数时,堆内存中的值也改变了,所以改变参数的值。 基本类型作为参数时,操作时只在栈内存中相互赋值,所以不能改变参数的值。 只有引用或对象作为参数时,才能改变参数的值。 基本数据类型作为参数时,操作时实际上在栈内存中复制了两个变量在操作,所以不能改变参数的值。 阅读全文
摘要:
面向对象是基于面向过程的,将现实生活中解决问题的执行过程交给特定的对象去执行,将问题简单化,这就是面向对象。 阅读全文
摘要:
什么是数组? 同一种数据类型的集合,其实数组就是一个容器。 数组的好处 可以自动给数组中的元素编号,方便操作元素。 数组格式: 元素类型[] 数组名=new 元素类型[]; 阅读全文
摘要:
在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道。以Java EE中典型的S(pring)S(truts)H(ibernate)架构来说,Spring、Struts和Hibernate这三个框架都有自己的XML格式的配置文件。这些配置文件需要与Java源代码保存同步,否则的话就可能出现错误。而且这些错误有可能到了运行时刻才被发现。把同一份信息保存在两个地方,总是个坏的主意。理想的情况是在一个地方维护这些信息就好了。其它部分所需的信息则通过自动的方式来生成。JDK 5中引入了源代码中的注解(annotation)这一机制。注解使得Java源代码中不但可以包含功能 阅读全文
摘要:
【程序29】题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。Java代码 public class Ex29 {public static void main(String[] args){ double sum=0; int array[][]={{1,2,3},{4,5,6},{7,7,8}};for(int i=0;imyarr[k]){ temp=myarr[i]; myarr[i]=myarr[k]; myarr[k]=temp; } System.out.println(""); for(int 阅读全文
摘要:
一、精编教程贴 1、安卓模拟器BlueStacks安装使用教程 http://www.apkbus.com/android-64318-1-1.html 2、Mkey libgdx游戏引擎教程 http://www.apkbus.com/android-57355-1-1.html 3、java基础 与 android学习指南——实例教程 http://www.apkbus.com/android-71754-1-1.html 4、Google Android开发精华教程 http://www.apkbus.com/android-13503-1-1.html 5、Android开发环境搭建. 阅读全文
摘要:
最近用Java实现了个数字串(即只包含数字的字符串)与数字相加的工具方法,开发中可能会用到,代码分享如下:Java代码 /** * 数字串与数字相加的处理类 * * @author shawn.shen * */ public class StrPlusNumber {/** * @param args */ public static void main(String[] args) { String s = "99999"; System.out.println(plusNum(s, 1)); } /** * 实现数字串与数字的相加 * * @param str 数字串 阅读全文