![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
owen42087743
这个作者很懒,什么都没留下…
展开
-
java的存储区
概括而言,java有6个地方可以存储数据:[list][*]寄存器:存储最快的地方[/list][list][*]堆heap:一般new个对象的时候,将对象的数据存储在堆栈中,包括数组的new[/list][list][*]栈stack:速度比堆快,声明的变量存储在栈中,不过有区别,变量会把数值也存储在一起,但对象就会再在堆栈中划个区域保存数据,即栈中的对象引用堆中的数...2008-07-05 17:58:10 · 95 阅读 · 0 评论 -
JVM学习笔记3--分代
1.共划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)2.年轻代[quote]所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。,两个年轻代分三个区。一个Eden区Survivor区(一般而言)。大部分对象在Eden区中生成。当Eden区满...原创 2012-04-11 16:19:33 · 80 阅读 · 0 评论 -
JVM学习笔记2--强/弱/软应用
1.强引用[quote]一般声明对象时虚拟机生成的引用,强引用环境下,垃圾回收时需要严格判断当前对象是否被强引用,如果被强引用,则不会被垃圾回收[/quote]2.软引用[quote]一般被做为缓存来使用。与强引用的区别是,软引用在垃圾回收时,虚拟机会根据当前系统的剩余内存来决定是否对软引用进行回收。如果剩余内存比较紧张,则虚拟机会回收软引用所引用的空间;如果剩余内存相...原创 2012-04-11 15:12:58 · 79 阅读 · 0 评论 -
JVM学习笔记1--stack heap
1.stack存放程序处理逻辑,每个线程都有个线程stack,存放与当前线程有关的信息2.heap存储数据,是共享的,并且可以动态增长3.stack中存储基本数据类型和对象引用,heap中存储对象,基本数据类型因为存储空间固定,所以存放在stack中节省空间...原创 2012-04-11 14:53:33 · 85 阅读 · 0 评论 -
filter dispatcher
2.4版本的servlet规范在部属描述符中新增加了一个元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个元素中加入任意数目的,一般会设置REQUEST和FORWARD。[list][*]REQUSET: 普通客户端request请求,默认[*]FORWARD: forward过来的request[*]INCLUDE: inclu...原创 2011-07-22 15:05:09 · 69 阅读 · 0 评论 -
ListIterator和Iterator
Iterator和ListIterator主要区别在以下方面:1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。...2010-03-03 15:59:46 · 76 阅读 · 0 评论 -
类和接口的性能方面的建议
[size=small][list][*]避免昂贵复杂的构造过程[/list][list][*]内部类对象的创建比一般类的实例要复杂,耗时,所以最好用非public的具体类代替[/list][list][*]尽量使用接口[/list][list][*]使用包装类比使用原数据要低效[/list][list][*]大多数的JVM在搜索接口列表时是...2008-07-27 15:11:59 · 131 阅读 · 0 评论 -
读取资源文件
首先创建个类FileDirectoryConfig类,需要读取资源文件时,就可以调用这个类.[code="java"]public class FileDirectoryConfig { // value是资源文件中的值,key是资源文件中的键,key需要用户输入 private String value = null; // pro...2008-07-20 22:50:00 · 87 阅读 · 0 评论 -
static赋值的变态例子
大家看看下面会打印什么:[code="java"] static int first = accessTooSoon(); static int second = 1; static int accessTooSoon() { return (second); } public static void main(String[] args) { ...2008-07-20 00:51:15 · 122 阅读 · 0 评论 -
内存泄露
javaVM虽然有自己的垃圾回收器,可以回收大部分的内存空间,但还是有部分的内存空间是回收不了的.内存中饿对象分为3种:1.无用的对象,但是不可达,这是C或C++中的内存泄露;2.无用的对象,也可达,这就是java中的内存泄露;3.有用的对象.这就不是内存泄露了.为什么java中也会存在内存泄露呢,什么情况下会出现这种情况,下面是一个比较普遍的例子:[code="j...2008-07-18 17:28:16 · 75 阅读 · 0 评论 -
ArrayList的性能问题,大家看看
ArrayList的特点是可以动态改变长度,但是每次改变长度的时候性能花费是很大的,所以我们可以通过它自身的ensureCapacity()事先就给它决定好长度,这里有个前提,必须大概预测它的长度是多少.但是测试出结果出乎我的意料,大家一起来看看什么原因[code="java"] final int count = 100000; long startTime, stopTime,...2008-07-17 11:27:33 · 196 阅读 · 0 评论 -
static方法不能被覆盖
[size=small] 实例方法被覆盖,静态方法被隐藏[code="java"]public class testStatic { public static void main(String[] args) { Super s = new Sub(); System.out.println(s.g...2008-07-12 12:33:52 · 204 阅读 · 0 评论 -
JVM学习笔记4--JVM设置
1.-Xmx:[quote]JVM最大可用内存[/quote]2.-Xms[quote]JVM初始可用内存,可以设置与-Xmx相同,避免每次垃圾回收完成后JVM重新分配内存。[/quote]3.-Xmn[quote]年轻代大小,Sun官方推荐配置为heap的3/8[/quote]4.-Xss[quote]每个线程的堆栈大小,JDK5.0以后每个线程堆栈大小为...原创 2012-04-11 20:13:37 · 79 阅读 · 0 评论