java基础
文章平均质量分 82
iteye_20670
这个作者很懒,什么都没留下…
展开
-
ThreadLocal的原理和在框架中的应用
概述 我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。 我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。 虽然模板类通过资源池获取数据连接或会话...原创 2008-12-28 23:04:05 · 292 阅读 · 0 评论 -
java 启动命令解析
前言 在看Btrace源码的时候,了解到一些陌生的启动命令参数,例如-Xbootclasspath等,之前也曾遇到过,但并没有去进一步全面了解,在此则进行介绍。简介 Java 的启动参数包括标准的参数(运行环境参数)和非标准的参数(JVM实现支持的参数)。标准的参数参数描述 ...原创 2012-10-16 22:17:08 · 333 阅读 · 0 评论 -
Jar文件及MANIFEST.MF 文件入门
前言 在看Btrace相关源代码的时,才认识到MANIFEST.MF是有很大用途的,以前对jar文件没多大了解,现在有空也整理下相关的资料。 Jar文件简介 Jar文件的本质是zip 文件,其中包含了META-INFO文件夹。Jar文件可以用jar工具或者java.util.jar API 来创建。Jar的文件名没有任何限制。 ...原创 2012-10-16 20:34:37 · 260 阅读 · 0 评论 -
java.util.concurrent 之LinkedBlockingQueue源码分析
LinkedBlockingQueue类一个基于已链接节点的、范围任意的 blocking queue。此队列按 FIFO(先进先出)排序元素。队列的头部 是在队列中时间最长的元素。队列的尾部 是在队列中时间最短的元素。新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。 ...2011-03-30 16:08:08 · 114 阅读 · 0 评论 -
java.util.concurrent 之ConcurrentHashMap 源码分析
最近有点想研究下java.util.concurrent 包下的一些类中的实现,在现实中也对这包里的类应用不少,但都没怎么去深入理解,只是听说里面的实现在高并发中有不错的性能。。接下将对里面的几个比较常用的类的源码进行分析。。 ConcurrentHashMap类 研究源码时,我一般喜欢从实际的应用中去一步步调试分析。。这样理解起来容易很多。 实...2011-03-28 14:07:06 · 112 阅读 · 0 评论 -
Java并发编程笔记摘要
多线程设计的目的是为了更多的榨取服务器硬件的性能,但是线程仍然会给运行时带来一定程度的开销。上下文切换——当调度程序临时挂起当前运行的线程时,另 外一个线程开始运行——这在多个线程组成的应用程序中是很频繁的,并且带来巨大的系统开销:保存和恢复线程执行的上下文,离开执行现场,并且CPU 的时间会花费在对线程的调度而不是运行上。当线程共享数据的时候,它们必须使用的同步机制,这个机制...2011-08-19 14:16:12 · 114 阅读 · 0 评论 -
多线程时间记录logger类
在近期工作中遇到个性能测试的打印的问题,由于log4j中如果在多线程中,打印的无规律性(哪个线程先到就先打印),在多个线程中会出现的问题是,在action-service-dao 层模式中,如果想查看单个线程在action-service-dao 三层之间的消化时间,是很难查到的,因为它们是无规律打印的。为了解决这个问题,可以利用ThreadLocal 这个线程变量类,关于这个类的使用已经很广...原创 2010-05-10 19:28:49 · 480 阅读 · 0 评论 -
enum 内部实现解析
简单写个Enum 类型,然后反编译下 /** * * @author zhxing * @since 2010.02.26 */public enum Test{ //这定义必须放在第一行,否则会报错 Spring("a"),Summer("b",1),Autumn("c"),Winter("d"); //类变量 public static in...2010-03-22 16:52:34 · 212 阅读 · 0 评论 -
从JVM 内部看String 类型的问题
关于String 类型,在面试题或者实际编程中都会经常遇到,有很多的网友也曾做过大量的分析。在看完深入Java 虚拟机这本书后,对JVM 处理Java 程序的流程有了一个大概的认识,所以总结一下。 下面的分析从我们遇到的一些问题实例进行,我觉得这样是最好理解的。 1、String 类型对象的生成 String s=new String("zhxing");...2010-03-22 16:40:59 · 210 阅读 · 0 评论 -
log4j 配置
1. 配置文件 Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …#配置日志信息输出目的地Appenderlog4j.appender.appenderName = fully.qualified.name.of.appender.class...原创 2010-10-11 10:49:30 · 87 阅读 · 0 评论 -
ThreadLocal 源码分析
之前曾转载过相关ThreadLocal的文章,但一直是处于迷糊状态,最近复习的时候偶然看到博客里的文章,所以对此类做一个深入的分析和总结。(另外说明下,我这个源码的Java 版本是1.6.0_06) 在Java API 文档里,是这样解释的:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 ...2010-03-09 15:59:35 · 84 阅读 · 0 评论 -
软引用、弱引用、虚引用 总结
在看‘深入JAVA虚拟机’垃圾收集这一章的时候了解有关对象的引用级别,在网上找了些资料总结备忘。(该文章大多内容为多个网站的内容合并) 1、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清...原创 2010-01-15 13:17:27 · 291 阅读 · 0 评论 -
Integer类中使用“==”的问题(内部缓存)
首先看一段代码(使用JDK 5),如下: public class Test { public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; if (i1 == i2) System.out.println("Equal!"); ...2008-10-12 22:51:28 · 89 阅读 · 0 评论 -
异常处理的艺术(总结)
在看一些项目源码中,突然发现了异常的处理也是一门比较大的学问,其实处处都有学问,只是你是否留意而已。。好了,少点啰嗦,关于异常的处理,je上有个很精彩的讨论,我花了快一个钟时间才看完了,确实值得一看,帖子的网址:http://www.iteye.com/topic/2038 当然我这里写的,只是一个纯属的建议,大都是看了网上的帖子后,总结的。都是些前辈的经验。。下面开始吧。———...原创 2009-04-25 00:13:09 · 165 阅读 · 0 评论 -
Java 排序算法总结
1)分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(箱排序、基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。 2)选择排序算法的时候1.数据的规模 ; 2.数据的类型 ; 3.数据已有的...2009-12-09 11:45:05 · 166 阅读 · 0 评论 -
Java 输入输出流详解
最近一段时间,处于失业状态,正好有机会对未理解的知识进行整理,面试中这部分的知识很大可能也是会遇到的。下面的内容一部分是从网上筛选的,经过自己的梳理后总结的。 Java IO 用的是‘decorator模式’来构建的。要容易理解Java IO 应该从对称性和两个模式(装饰器模式和适配器模式)这两方面进行分析。 装饰器模式: 在由InputStream、OutputS...2009-12-07 19:50:20 · 138 阅读 · 0 评论 -
java基础杂集(更新中···)
1、类的初始化顺序(父类--静态变量 或 父类--静态初始化块 )->(子类--静态变量 或 子类--静态初始化块)->(父类--变量 或 父类--初始化块)-> 父类--构造器 ->(子类--变量 或 子类--初始化块) ->子类--构造器 静态变量和静态初始化块是依照他们在类中的定义顺序进行初始化的。同样,变量和初始化块也遵循这个规律...2009-03-01 10:46:56 · 100 阅读 · 0 评论 -
开发问题总结(一)
下面是在利用JDK的Instrument来编写调试工具的时候出现的一些问题总结 1、java.io.Console 类的读取操作将会阻塞掉写入操作,造成写入操作不能异步进行。原因是该类中加入了读写锁。代码如下: public String readLine(String fmt, Object ... args) { String line = null;...原创 2012-10-22 21:25:53 · 340 阅读 · 0 评论