随笔分类 -  java基础知识

关于java的基础知识
摘要:package com.ddc.mem;public class ThreadLocalTestMain { ThreadLocal<AddInteger> localArgs=new ThreadLocal<AddInteger>(); AddInteger intance=new AddInteger(); public void mainTest(){ for(int i=0 ;i<10;i++){ ThreadTest thread=new ThreadTest(i); thread.start(); ... 阅读全文
posted @ 2012-05-15 11:25 xiao晓 阅读(209) 评论(0) 推荐(0)
摘要:一个java运行起来执行代码,主要的内存消耗有这几块:1、堆2、栈 :栈是每个线程一个的,是以消耗的内存是内存大小*线程数,当线程数特多时候需要小心 。3、直接内存:主要是通道时候的缓存,在内存不足是也会报OutOfMemoryError错误,外带sun.misc.Unsafe.allocateMemory异常(这个我认为类似于C中的malloc的功能) 。4、socket的cache和buffer,这个也不在堆中分配,当无法分配时候,会报Too many open files 的错误。5、jni代码中,类库执行的代码内存,也不再堆中。6、虚拟机执行也要消耗一定的内存 。 阅读全文
posted @ 2012-05-15 10:30 xiao晓 阅读(479) 评论(0) 推荐(0)
摘要:转载自源代码:添加注释 。1. String str1 = "abc"; System.out.println(str1 == "abc");步骤:1) 棧中开辟一块空间存放引用str1,2) String池中开辟一块空间,存放String常量"abc",3) 引用str1指向池中String常量"abc",4) str1所指代的地址即常量"abc"所在地址,输出为truePS:没啥好所的,就是用字符串池中的字符串 。2. String str2 = new String("abc&q 阅读全文
posted @ 2012-03-22 16:17 xiao晓 阅读(442) 评论(0) 推荐(1)
摘要:定义:1.强引用一般的引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference)如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(Referenc 阅读全文
posted @ 2012-03-22 10:57 xiao晓 阅读(927) 评论(0) 推荐(0)