JAVA基础
文章平均质量分 78
热闹场
个人博客: http://fredxue.com
展开
-
去除java中的注释小工具开发心得
问题需求:将一个java文件中的注释替换为空字符,即消除java文件中的注释。 输入:一个目标文件绝对路径和输出文件的绝对路径 看似简单,实则需要花脑筋的一件事,最后决定用有限状态机来解决这个问题,参考了Tristan的表驱动方法,很巧妙,链接:http://my.oschina.net/Tristan/blog/34118 状态机如下表: 0:普通字符代码 1:出原创 2014-12-22 19:17:56 · 1387 阅读 · 0 评论 -
java中Hashtable浅析
Hashtable实际上从java1.1就有了,现在java的文档上已经不再推荐只用该工具。 单线程环境下使用hashmap,多线程环境下则推荐使用ConcurrentHashmap, 其拥有比hashtable更好的并发性能。 但对于初学者,我们仍有必要对hashtable的实现细节有所掌握。 我们来看它的hash函数是如何实现的: private int hash(Obj原创 2015-06-07 19:54:58 · 391 阅读 · 0 评论 -
Java String split方法的正则表达式输入
今天遇到一个bug, 执行下面代码的时候输出为0. String[] temp = "8.5".split("."); System.out.println(temp.length); 百思不得其解,上stackoverflow查了一下,看到相似问题才发现split方法的输入是当做正则表达式来处理的,于是找到该方法的源码,贴在下面。 不难看出方法先判断regex原创 2015-06-13 10:21:57 · 562 阅读 · 0 评论 -
深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
写在前面:Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。本文将深入分析枚举的源码,看一看枚举是怎么实现的,他是如何保证线程安全的,以及为什么用枚举实现的单例是最好的方式。 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类转载 2016-09-05 17:03:24 · 544 阅读 · 0 评论