java基础
文章平均质量分 82
wei329937021
这个作者很懒,什么都没留下…
展开
-
全面分析Java的垃圾回收机制
全面分析Java的垃圾回收机制 引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来...原创 2009-12-07 16:36:21 · 76 阅读 · 0 评论 -
java对象占内存大小
[size=x-small]空对象占8个字节 有数据成员的话,你把数据成员按基本数据类型和对象引用分开统计。 基本数据类型按byte/boolean=1,char/short=2,int/float=4,long/double=8,累加,然后对齐到8的倍数。 对象引用按每个4字节,累加,然后对齐到8个字节的倍数。 ============= 对象占用字节数=基本的8字节+基本数...原创 2009-12-14 03:41:42 · 103 阅读 · 0 评论 -
Java对象创建过程-成员初始化顺序
[size=small][b]Java对象创建过程-成员初始化顺序[/b][/size] 前几天开始重读《Java编程思想(第3版)》,对Java对象的创建过程、成员初始化顺序(尤其是涉及到组合和继承的情况下)作一下梳理总结。 书中第4章初始化与清理中对Java对象的创建过程总结如下: 假设有个名为Dog的类 当首次创建型为Dog的对象时(构造器可以看成静态方法),或者Dog类的...原创 2009-12-12 06:09:47 · 139 阅读 · 0 评论 -
Java向上转型与向下转型
我们在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型。 [size=small][b]5.13.1 向上转型[/b][/size] 我们在现实中常常这样说:这个人会唱歌。在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念“人”。再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类)。我们现实中也经常这样...原创 2009-12-10 03:16:16 · 73 阅读 · 0 评论 -
java虚拟机jvm关于内存的设置与调优
JVM内存的设置的原理 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。 设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。 java -Xms64m -Xmx256m Test -Xms是设置内存初始化的大小 -Xmx是设置最大能够使用内存的大小(最好...原创 2009-12-08 06:16:10 · 134 阅读 · 0 评论 -
JAVA虚拟机内存分配与回收机制
[size=x-small]Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中...原创 2009-12-08 05:49:39 · 76 阅读 · 0 评论 -
详解Java内存机制(堆与栈)的分配
[size=x-small]Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。 堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,...原创 2009-12-08 05:15:15 · 129 阅读 · 0 评论 -
JAVA文件编译执行与虚拟机(JVM)介绍
[size=x-small]Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。 [b][size=small]一.Java源文件的编译、下载、解释和执行[/size][/b] Jav...原创 2009-12-08 05:12:58 · 184 阅读 · 0 评论 -
JAVA中String与StringBuffer的区别及开发用例,提高效率
[size=small]在JAVA中,我是最不喜欢对字符串进行操作的,说真的,觉的很是麻烦哦.呵呵,每当要操作时,我都是在网上搜索的.这次把自己常看到的东西写到自己的博客上来,以后好查看 String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。 ...原创 2009-12-08 04:54:45 · 108 阅读 · 0 评论 -
Java:重写equals()和hashCode()
[size=small]以下内容总结自《Effective Java》。 [b]1.何时需要重写equals()[/b]当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。 [b]2.设计equals()[/b] [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非floa...原创 2009-12-07 22:15:42 · 65 阅读 · 0 评论 -
jdk、jre、jvm及j2se安装 区别
jdk、jre、jvm及j2se安装 一:了解需要安装的版本,一般我们开发是j2se Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发: Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。J...原创 2009-12-07 21:18:58 · 132 阅读 · 0 评论 -
Java字节码学习之MethodInvoke
[b][size=x-small]学习Java字节码有助于理解Java内存结构,加深对JVM的理解。[/size][/b] 首先需要知道JVM内存由堆、栈、方法区、本地方法栈组成。 堆中存放JVM生命周期里所有的类的实例。 栈中存放函数中的基础类型局部变量、函数中实例变量的引用。 方法区存放Class、Method的信息以及Static...原创 2009-12-14 03:44:59 · 103 阅读 · 0 评论