
Java
文章平均质量分 87
u022726695
这个作者很懒,什么都没留下…
展开
-
Swing线程机制以及invokeLater和invokeAndWait
本人最近想写一个仿QQ,初学Swing对线程机制不太了解,所以在网上搜集了一些资料,结合自己的一些代码和想法,现将Swing线程机制以及invokeLater和invokeAndWait的学习所得分享给大家。Swing线程机制首先swing是单线程的,这个是这篇文章的前提,也是意义所在,当swing界面程序启动的时候,会启...2009-09-14 11:05:35 · 370 阅读 · 0 评论 -
第四惑:属性是否被动态绑定?
众所周知,方法可以被动态绑定,在子类被向上转型为父类时,虚拟机可以找到所运行对象的真正类型,并根据对象真正的类型来判断到底是调用父类的方法还是调用子类的方法,这也被称为多态。那变量呢?我们来看看: package cantellow.text12;class Parent{ public int i = 10; static int si = 10; fina...2009-04-03 17:11:26 · 150 阅读 · 0 评论 -
第五惑:初始化和动态绑定之间的小小冲突
今天骑车去都江堰了,很累很累,没准备好今天该发什么Tips,所以就找了以前的知识点,不算是充数,希望大家多多包涵。首先上代码:package cantellow.text13;public class Test13{ /** * @param args * @author cantellow */ public static void main(S...2009-04-04 23:46:35 · 87 阅读 · 0 评论 -
在重写了对象的equals方法后,还需要重写hashCode方法吗?
首先说建议的情况: 比如你的对象想放到Set集合或者是想作为Map的key时(非散列的Set和Map,例如TreeSet,TreeMap等),那么你必须重写equals()方法,这样才能保证唯一性。当然,在这种情况下,你不想重写hashCode()方法,也没有错。但是,对于良好的编程风格而言,你应该在重写equals()方法的同时,也重写hashCode()方法。 然后再说说必须重写hashCo...2009-08-19 21:08:34 · 166 阅读 · 0 评论 -
我承认我没有if(xxx != null)
昨天正在编码兴头时被项目组xx叫去,说我修改的代码出了空指针异常,还说关键的地方比如这是界面的发起部分,就应该判断是否空指针,不然过不去。我看了一下他的环境,说你没有我的数据库脚本,如果有了数据库环境,应该就不会出现这种情况,然后他就说你这个方法本来就有抛出NullPointerException的可能性,为什么调用完之后不判断呢?而且这是程序的关键部分,出了问题界面都发不起。嗯,好吧,我承...2010-09-08 12:08:14 · 214 阅读 · 0 评论 -
Eclipse下jar包版本不一致等常见问题
我借这个平台简单说说Eclipse下配置环境需要注意的几点,大多数情况下,我们遇到最多的根源就是jar包的版本不一致,比如我调用某个类的方法,这个方法在旧版本其实不存在的,这时候编译不会通过,这种情况还是好的,至少它明确告诉你哪个类存在问题,进而我们可以找到这个类所属的jar包。最要命的是程序运行时出现这种情况,那你肯定会问为什么编译的时候能通过,想一下远程调用,客户端是怎么调用服务器端的对象...2010-09-15 20:18:38 · 1686 阅读 · 0 评论 -
【分享】Findbugs反模式
FindBugs解释FindBugs是一个静态分析工具,它检查类或者 JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。之所以叫做静态分析工具,是因为它在不实际运行程序的情况对软件进行分析。使用findbugs有很多种方式,从GUI、从命令行、使用 Ant、作为 Eclipse 插件程序和使用 Maven,甚至作为hudson持续集成的插件。 findbug...2011-05-20 09:54:12 · 121 阅读 · 0 评论 -
正则表达式Mini版
1.句点符号:.条件限制除\n以外任意一个单独字符举例:java.. 条件限制为java后除换行外任意两个字符。 2.美元符号:$限制结尾举例:java$ 条件限制为以java为结尾字符 3.乘方符号:^限制开头举例:^java 条件限制为以Java为开头字符 4.大括号:{ }限制为连续出现指定次数字符{a}举...原创 2010-10-27 12:14:26 · 140 阅读 · 0 评论 -
泛型のwhy&how
Why,Java为什么需要泛型?如果我需要我的代码适用于多种类型,那么我可以使用object;如果我需要限定这个类型必须具有特定的约定,那么我可以定义接口或者抽象类。总之,我都可以解决,再加上Java的反射功能,没有泛型之前Collection库一样过得好好的。 那么java为什么还要加上泛型这样的语法糖呢?答案就是,在编译期间就检查类型转换是否正确,而不是拖延到运行时期...2011-07-21 18:35:04 · 120 阅读 · 0 评论 -
Debug控
我是一个debug控,很少写单元测试(不是我不想写),每次写完代码我都要把我的代码debug走一遍,这样才放心,debug也是我阅读别人代码的利器,同时我也经常用它来调试错误。 因为上家公司是做CS程序的,本地debug很方便,server和client启动也不是很慢,所以用debug调试和开发是一件很方便的事情。新公司是做互联网的,在本地debug调试机子承受不起,这对于我这...2011-08-02 14:34:25 · 140 阅读 · 0 评论 -
第三惑:类型被动使用举例
当类型属于被动使用的时候,它将不会被初始化。请看下面的例子:package cantellow.text11;public class Example1{ /** * @param args * @author cantellow */ public static void main(String[] args) { // TODO Au...2009-04-02 13:04:01 · 112 阅读 · 0 评论 -
第二惑:类型在没有被完全初始化之前就生成实例对象所表现的情况
public class MainTest { public static void main(String[] args) { Singleton obj = Singleton.getInstance(); System.out.println("obj.counter1==" + obj.counter1); System.out.println("obj.counter2=...2009-04-01 13:41:59 · 114 阅读 · 0 评论 -
第一惑:类初始化时,final修饰的静态字段的表现方式
计划从今天开始,模仿一下jythoner大哥,不过不是Java每日一题,而是Java每日一惑。主要是以Java的基本语法和一些虚拟机的特性为出发点,巩固一下自己Java基础知识,并抛砖引玉。我想这个对有些面试还是很有帮助的,所以搜集了一些书上的,网上的Tips。供大家参考,并在每个题目附上自己的理解,如有理解有错的地方和做的不好的地方请大家指出,我们共同进步。我尽量每天都出个Tips,当然大家的支...2009-03-31 16:27:36 · 109 阅读 · 0 评论 -
限制类生成的对象数量
类既不可以是private也不可以是protected(内部类除外),所以它只有两种权限:包访问权限或public,如果不希望任何人访问,就把所有的构造器都指定为private,从而阻止任何人都创建对象。有了这一点,你会发现有趣的事情,那就是我们可以掌握创建对象的数量,考虑下面一段代码:text2.java文件:package cantellow.text2;public class te...2009-03-25 19:32:57 · 206 阅读 · 0 评论 -
初始化及类的加载
学习Java说难也不难,说容易也不容易,一个HelloWorld看起来简单,但是你清楚java背后是怎样加载类和初始化的吗?那些深入Java虚拟机的原理暂且不说,但至少有些流程你还是有必要搞清楚的。每个类都是一个编译单元,应用程序的入口就是编译单元的main函数,因为它是static的,可以直接由类名来调用,不要把main想得太神奇,它也就只是一个方法,可以在main函数里再调用别个类的mai...2009-03-25 19:46:43 · 88 阅读 · 0 评论 -
接口与对象的关系
在现实生活中,我们会对事物建模,将事物模拟成对象,对象是现实世界映射到程序语言的模型,是实际待解问题的抽象,这就是OOP语言的抽象机制。假设一个人,有状态和行为之分,如状态有悲伤、高兴...行为有跑、跳、唱歌。犹如对象有字段和方法一样,方法就是用来改变状态(字段)从而产生“副作用”或者更常见的得到一个返回值,这些基本的OOP概念我就不多说了,学Java的都知道。。如果有很多对象都有共同的“面貌”...2009-03-25 19:52:34 · 337 阅读 · 0 评论 -
Java中非静态方法是否共用同一块内存?
将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们用field表示字段,用method表示方法,那么加上static区分后就 有四种:class field:有用static修饰的field class method:有用static修饰的meth...2009-03-25 20:01:04 · 163 阅读 · 0 评论 -
Class对象与类加载器
class对象是java.lang.Class<T>这个类生成的对象,Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 dou...2009-03-25 20:02:59 · 187 阅读 · 0 评论 -
Java安全沙箱机制
说明,本文部分内容转自:http://galaxystar.iteye.com/blog/225615参考书籍:《Inside the Java Virtual Machine,Second Edition》组成Java沙箱的基本组件如下:·类加载体系结构·class文件检验器·内置于Java虚拟机(及语言)的安全特性·安全管理器及Java APIJava安全模型的前三个部分——类加载体系结...原创 2009-03-25 20:05:36 · 213 阅读 · 0 评论 -
代码签名和认证
要对一段代码作担保或者签名,必须首先生成一个公钥/私钥对。用户应该保管那把私钥,而把公钥公开。一旦有了拥有了一个公钥/私钥对,就必须将要签名的class文件和其他文件放到了一个JAR文件中,然后使用一个工具对整个JAR文件签名。这个签名工具将首先对JAR文件的内容进行单项散列计算,以产生一个散列。然后这个工具将用私钥对这个散列进行签名,并且将经过签名后的散列加到JAR文件的末尾。这个签名后的散列代...2009-03-25 20:06:35 · 827 阅读 · 0 评论 -
Java夜未眠·经典句子选载
最近在读前辈蔡学镛《Java夜未眠·程序员的心声》,几天就看完了,里面的内容很好懂,围绕Java展开一系列的话题,包括社会现象,他自己的生活,说实话,这本书对我们程序员很有帮助,有时候是把你自己的心声说出来了,是啊,信息产业的变化速度太快,我们这些程序员其实是很累的,要不断的学习的新的东西才不至于被淘汰。蔡学镛前辈的句子幽默有趣,俨然不失一个技术作家的大家风范,也许是因为他也读了很多Java经典书...2009-03-25 20:16:12 · 282 阅读 · 0 评论 -
Java动态绑定虚拟机实现
今天在51CTO看到一篇很好的介绍Java动态绑定的文章。先转载部分过来给大家看看(地址:http://zhangjunhd.blog.51cto.com/113473/49452),共同学习,不过最后我想说的是虚拟机的实现。运行时绑定也叫动态绑定,它是一种调用对象方法的机制。Java调用对象方法时,一般采用运行时绑定机制。1.Java的方法调用过程编译器查看对象的声明类型和方...原创 2009-03-25 20:19:57 · 192 阅读 · 0 评论 -
解决eclipse每次启动maven很慢
好久没有用eclipse了,离开人人后maven私有仓库当然也连不上了,所以选择了maven中央仓库,但是因为我的项目太多,每次启动eclipse maven都要联网更新jar、pom什么的,搞的很慢,上网搜索居然没有人遇到这个问题,自己摸索了一下,解决方法很简单,把offline勾上,表示不联网:...2012-11-14 12:31:07 · 772 阅读 · 0 评论