随笔分类 -  java编程点滴

记录java编程的点点滴滴
摘要:迪米特法则(Law of Demeter LoD) –>最少只是原则(Least Knowledge Principle,LKP) 一个对象应该对其它的对象有最少的了解 阅读全文
posted @ 2012-06-05 15:25 誑逩の蝸犇 阅读(212) 评论(0) 推荐(0)
摘要:ThreadLocal即线程局部变量。功能:为每个使用该变量的线程,提供一个该变量的副本。其实ThreadLocal中拥有一个Map,它是线程->变量的映射。主要方法有三个,set,get,initValue。set与get的作用不用多讲,主要是initValue,它默认返回的是null,子类可以通过重载该方法,来改变默认值。1publicvoidset(Tvalue){2Threadt=Thread.currentThread();3ThreadLocalMapmap=getMap(t);4if(map!=null)5map.set(this,value);6else7createMa 阅读全文
posted @ 2012-06-05 09:26 誑逩の蝸犇 阅读(432) 评论(0) 推荐(0)
摘要:1.强引用这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference)如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用 阅读全文
posted @ 2012-04-18 14:52 誑逩の蝸犇 阅读(323) 评论(0) 推荐(0)
摘要:有时候需要对文字进行排序,java中提供了很好的方法,我们只要实现Comparator类就可以实现各种排序。下面是按照本地语言的排序方法。public static final Comparator<AppEntry> ALPHA_COMPARATOR = new Comparator<AppEntry>() { private final Collator sCollator = Collator.getInstance(); @Override public int compare(AppEntry object1, AppEntry object2) { re.. 阅读全文
posted @ 2012-04-10 20:21 誑逩の蝸犇
摘要:1.下载jdk,并解压到/software下2.以root身份登录ubuntu3.编辑/etc/profile 即在终端输入 gedit /etc/profile4.在/etc/profile中输入 #jdkbeginexportJAVA_HOME=/software/jdkexportJAVA_PATH=$JAVA_HOME/binexportJAVA_CLASSPATH=$JAVA_HOME/libexportPATH=$JAVA_PATH:$JAVA_CLASSPATH:$PATH#exportPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:. 阅读全文
posted @ 2011-11-26 16:46 誑逩の蝸犇 阅读(216) 评论(0) 推荐(0)
摘要:1.下载jdk安装包,并且解压到一个目录.2.配置环境变量 ,在/etc/profile中添加#jdk7 beginexport JAVA_HOME=/software/jdk7export PATH=$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH#jdk7 end3.在终端输入 source /etc/profile4.测试java -versionjavac 阅读全文
posted @ 2011-11-12 18:10 誑逩の蝸犇 阅读(151) 评论(0) 推荐(0)
摘要:ThreadLocal即线程本地化变量,使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal为每个线程的中并发访问的数据提供一个副本,通过访问副本来运行业务,这样的结果是耗费了内存,但是大大减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。下面的例子是实现日志记录的功能,每个线程都有对应的日志文件。1packagecom.thread.test;23importjava.io.IOException;4importjava.util.logging.FileHandler;5importjava.util.logging.Level;6importjava.uti 阅读全文
posted @ 2011-10-17 10:47 誑逩の蝸犇 阅读(265) 评论(0) 推荐(0)
摘要:java线程面试题1.实现线程的方法,有什么区别继承Thread与实现Runnable接口。启动方法不一样。Thread1继承,Thread2实现Runnable接口,则启动一个Thread1线程可以使用new Thread1().start(),而启动Thread2线程则new Thread(new Thread2()).start()。2.可以使用run方法启动一个线程吗?启动一个线程应该使用start方法,线程的run方法可以直接调用,但是不会启动一个新的线程,只是在原来的线程中调用了run方法而已。3.sleep方法与wait方法的区别,带时间参数时有什么区别?sleep()是线程的静 阅读全文
posted @ 2011-10-16 22:28 誑逩の蝸犇 阅读(1903) 评论(0) 推荐(0)