
java基础
qojnbbqtg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java序列化Serializable和Externalizable
Serializable是二进制位为基础保存的,可以没有任何构造方法。 Externalizable必须要手动提供一个public no-arg构造方法,否则会报错! transient表示变量不被序列化,但是如果一个类实现Externalizable在writeObject()仍然把transient变量序列了,是可以成功的。这就失去了transient的意义! 实现Serializa...原创 2012-05-02 16:42:47 · 110 阅读 · 0 评论 -
java多语言
在eclipse plugin编程中,可以直接用继承NLS这个类,MLR exnteds NLS,然后设定多个static Field, 其中Field的名字和.properties中的key值相等,用户就可以直接访问子MLR中的Field就可以访问多语言了,不过MLR中要调用NLS.initializeMessages(resourceBunlde, MLR.class) 注意resourceB...原创 2012-11-09 15:41:17 · 125 阅读 · 0 评论 -
Java&Js正则
greedy, reluctant, possessive 三种匹配模式在 http://docs.oracle.com/javase/tutorial/essential/regex/quant.html有详细介绍, greedy表示每次eat entire string, if not matched, back off one character step by step until ma...原创 2012-11-16 16:51:47 · 98 阅读 · 0 评论 -
Thinking In Java 4th 关于Annotation处理器的观察者模式
首先先定义SQLString SQLInteger Constraints这三个Annotation,下面以SQLString为代表: [code="java"] @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface SQLString { public int length()...原创 2012-08-13 09:43:52 · 132 阅读 · 0 评论 -
java中CyclicBarrier和CountDownLatch的异同
CountDownLatch只能使用一次,cyclicBarrier可以重复使用,同时还提供barrierAction。 在功能上,cyclicBarrier可以完全替代countdownlatch, 但是性能上,如果同时工作的线程在几百数量级,则两者性能差不多,但是在千/万数量级的线程时,countdownlatch性能远远高于cyclicbarrier。 下面是测试代码,改变count值,观...原创 2012-11-23 16:11:28 · 173 阅读 · 0 评论 -
java NIO中的Selector SelectableChannel SelectionKey
推荐参考: http://rox-xmlrpc.sourceforge.net/niotut/index.html 下面是我写的一个小demo: [code="java"] import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java...原创 2012-12-10 14:36:08 · 137 阅读 · 0 评论 -
java异常
运行时异常可以不捕获,即使一段代码不可能抛出这个RuntimeException,你也可以在任何时候任何地点抛出这个RuntimeException,因此我建议RuntimeException不抛也不捕获,统一交给处理程序最后处理(调用者一般不会知道一个方法会抛出哪些RuntimeException的,因此由程序统一处理) 重写方法时,不能声明抛出和父类方法异常不兼容的异常。如父类抛出一...原创 2012-12-28 10:30:38 · 94 阅读 · 0 评论 -
开发规范
1:制定API的时候,一定要考虑到参数类型、方法返回类型和所能抛出的异常,由于API改动的代价非常大,因此一定要考虑清楚,API要考虑后续的扩展,一个方法的内部实现是可以随意变化的,只要保证实现向后兼容就行,但暴露出来的API一般就不可能再去变了。 2:制定xml格式的时候,能用属性最好不要用text,因为属性用dtd/schema容易约束,而text则不好或不能约束。 群内tank给的例...原创 2013-01-07 13:25:49 · 117 阅读 · 0 评论 -
根据totalRecordSize和pageRecordSize求pageCount
一直使用(totalRecordSize - 1) / pageRecordSize + 1 来计算pageCount, 今天被群里的tank告知,如果totalRecordSize=0则上面这个式子结果是1,显然不对。 换成这个: (totalRecordSize + pageRecordSize - 1) / pageRecordSize 就会避免上面这个问题。 ...原创 2013-02-18 18:18:09 · 326 阅读 · 0 评论 -
泛型类不能继承Throwable及其子类
class A extends Throwable/RuntimeException 上面这段代码编译会报错,原因:由于Throwable及其子类是会在任何地方throws或catch,如果有泛型的话,那么在别的地方是不能确定泛型参数T的。 thanks for tank....原创 2013-02-22 16:35:32 · 357 阅读 · 0 评论 -
java开发小技巧
前面几篇blog记录的都是java中一些很基础的知识,但不经常遇到,对于我这个有2年多开发经验的码农来说,还是不知其原理。因此这里单独开篇blog来记录开发中遇到的一些很基础很有用的skills。 注:很多思想都是来自群中的讨论,在此感谢tank大牛,教会了我好多东西,thx very much. (这篇blog原本是把群的号给公布出来,我只是想让更多java lover加入群中,没想到web ...原创 2013-02-28 10:06:16 · 135 阅读 · 0 评论 -
cxf发布WS,如何在pojo中得到web.xml中配置
用cxf直接将一个pojo作为WS进行发布,如果想在pojo中读取container的配置参数,由于pojo和Servlet无半点关系,这里借助WebServiceContext,代码: [code="java"] public class HelloWorld implements IHelloWorld { @Resource private WebServiceConte...原创 2012-08-02 18:48:09 · 121 阅读 · 0 评论 -
去除代码行中前面的数字
在网上看demo,复制代码下来执行,通常前面的行数也一起复制了下来,今天想写一个小程序去除前面的行数,开始想用RandomAcessFile来实现的,遇到两个问题,1:writeChars()写出的字母是全角的,writeUTF()写出的字母前面竟然有一个$,不知道怎么搞的;2:由于去除前面的行数,因此write的字符数比read出来的字符数要少,write之后,发现最后的几个字符没有消失,我不知...原创 2012-07-30 10:56:30 · 581 阅读 · 0 评论 -
URL访问文件
[code="java"] try{ // URL url = new URL("file:icons/close.bmp"); // URL url = new URL("file:message_zh_CN.properties"); URL url = new URL("file:///E:/workspace/eclipsej2ee3.7/study/jface/me...原创 2012-11-01 15:57:05 · 346 阅读 · 0 评论 -
java final变量的初始化问题
[code="java"] 二、JAVA类加载顺序 JAVA类加载顺序: 1).按代码顺序递归加载静态成员/代码块,先父类再本类; 2).按代码顺序递归加载非静态成员/代码块,先父类再本类; 3).按代码顺序递归调用构造函数,先父类再本类; JAVA类加时机: 1).调用静态成员时,加载静态成员所在的类及父类; ...原创 2012-01-31 18:29:06 · 156 阅读 · 0 评论 -
java project中获得资源文件路径问题
如果资源文件是在src文件夹下,则 [code="java"] URI uri = GetFileAbsolutePath.class.getClass().getResource("/test1.bsh").toURI(); //这里不能用new File("/test1.bsh");否则会直接调用系统盘下,也不能用new //File("test1.bsh") ,否则会漏了src这个文件...原创 2012-02-01 16:26:43 · 170 阅读 · 0 评论 -
读取xml配置文件
[code="java"] /** * * @author chega *用SAX进行xml文件的读取, *extends DefaultHandler *主要重写startElement endElement Character这三个方法就可以了 *本例是把xml中的node按层次读取并放在一个HashMap中,当有同层次同名的node会失效,而且没有处理Attrib...原创 2012-02-03 15:38:26 · 111 阅读 · 0 评论 -
wait notify的信号丢失问题
[code="java"] T1: synchronized(sharedMonitor){ sharedMonitor.notify(); } T2: while(someCondition){ //Point1 synchronized(sharedMonitor){ sharedMonitor.wait(); } } [/code]...原创 2012-02-10 19:25:54 · 477 阅读 · 0 评论 -
接口变了,实现类的运行情况
工作中遇到接口以后有可能增加方法的情况,原先以为接口一旦确定就不可能更改,但是经群里“坦克”大哥的教诲,知道了接口和实现类在编译后的关系。 [code="java"] public interface IA { public void test(); public void hello(); } public class A implements IA { ...原创 2012-02-24 13:24:47 · 155 阅读 · 0 评论 -
java序列化
转:http://developer.51cto.com/art/201104/257839.htm 正常情况下,一个类实现java序列化很简单,只需要implements Serializable接口即可,之后该类在跨jvm的传输过程中会遵照默认java序列化规则序列化和反序列化;不同jvm版本之间序列化方式稍有不同,但基本上都是兼容的。 AD: 正常情况下,一个类实现java序列化很简单...原创 2012-02-28 23:22:13 · 97 阅读 · 0 评论 -
目录递归拷贝(java)
[code="java"] public class Test4 { private static long totalSize = 0; public static void main(String...args) throws IOException{ File f1 = new File("E:\\TDDOWNLOAD"); File f2 = new File("E:...原创 2012-07-11 16:22:00 · 145 阅读 · 0 评论 -
java压缩与解压缩
[code="java"] public class Test5 { public static void main(String...args){ ZipOutputStream zos = null; ZipInputStream zis = null; try{ File file = new File("E:\\TDDOWNLOAD"); Che...原创 2012-07-11 19:31:16 · 104 阅读 · 0 评论 -
java取MAC地址
jdk1.6中,NetworkInterface这个类提供了getHardwareAddress()方法,可以获得机器的MAC地址 [code="java"] public class Test7 { public static void main(String...args) throws IOException{ Enumeration enums = NetworkInte...原创 2012-07-12 11:29:09 · 123 阅读 · 0 评论 -
java rmi
==引自http://www.cnblogs.com/ninahan0419/archive/2009/06/25/javarmi.html=== Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Ja...原创 2012-07-16 16:02:21 · 99 阅读 · 0 评论 -
Java String.intern()
在看《深入理解Java虚拟机》第二章中有如下代码: [code="java"] String str1 = new StringBuilder("计算机").append("软件").toString(); System.out.println(str1.intern() == str1); String str2 = new StringBuilder("ja").appen...原创 2017-09-14 18:44:15 · 261 阅读 · 0 评论