自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行走,思考

不要太固执

  • 博客(34)
  • 收藏
  • 关注

小算法:求素数包的个数

题目:有一个数组,假设是{2,3}。。那么他的子集数包括{2}{3}{2,3},这个称为子包。每个子包的数据和是2,3,5。它们都是素数,那就叫素数包。现在设计个程序,入口是数组,出口是数字(素数包的个数)。 分析:这里面涉及到2个知识点,一个是求所有子集,一个是求素数。其实就是将两个小知识点融合了一下。     所有子集数可以用二进制组合的方式来求。比如求一个集合{1,2,3}的所有子集,...

2009-09-22 23:20:28 210

接口类型引用为何能调用Object类的方法

    首先看这段代码: interface InterfaceTest{ void test(); } public class Test implements InterfaceTest{ public void test(){ System.out.println("test"); } public static void main(String[] args...

2009-09-20 19:15:28 594 2

无聊:详解java的构造方法

      关于java的构造方法有几个简单的问题: 1.构造方法有返回值吗?      没有。构造方法没有任何返回类型,也不允许是void。比如: public class Test {  //这不是构造函数! public void Test() { System.out.println("void Test()"); } public static voi...

2009-09-20 00:47:59 283

小例子:如何说明String常量池的位置

    以前批过《关于Java堆与栈的思考》这个帖子,具体内容见http://zangxt.iteye.com/blog/440330。     这里只是举个简单的例子说明字符串常量池在内存中的位置。     闲言少叙,直接上代码。   import java.util.ArrayList; public class Test { public static void ...

2009-09-20 00:44:16 324

无聊:为啥可以使用空引用调用static方法或者访问static field

先看代码: public class Test { public static void testStatic(){     System.out.println("testStatic()"); } public void testNonStatic(){     System.out.println("testNonStatic()"); } public st...

2009-09-10 00:52:08 642 1

无聊:谁说private方法自动是final的?兼评《Java编程思想》中的几个问题

          首先声明,本文无任何实际价值,只是讨论一些无聊的说法。     有一个著名的帖子《Java关键字final、static使用总结》,里面有这样一句话: 注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。     这句话的确值得注意,搞不明白一个表示可见性的关键字private和一个表示禁止覆盖的关键字final怎...

2009-09-03 10:07:07 738

从“关于Java堆与栈的思考”一帖看错误信息的传播

        我对转贴的信息一直有敌意,原因如下:首先,除了制造更多的信息垃圾,转贴不会带来新的价值,想收藏的话一个链接足矣;其次,将错误信息以讹传讹,混淆视听。不妨选一个典型的例子说明一二。         相信《关于Java堆与栈的思考》这个帖子大家并不陌生,转载量极大。但内容如何呢?我就试着分析一下。说明:以下内容,黑色字体为引用别人的帖子,红色字体是我的分析,蓝色字体是引用相关文献。...

2009-08-05 05:03:34 186

谜题解析

题目接http://zangxt.iteye.com/blog/435711 说明:这篇博文是我自己分析和整理的,题目来源和解析参考http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5186.pdf ,版权归原作者所有。   1.读文档,看Boolean.getBoolean()这个方法的功能就能解决...

2009-07-30 12:35:29 161

几个谜题,深入的了解java

在2009年的JavaOne大会上,Joshua Bloch和Neal Gafter又为我们带来的7道谜题,挺有意思的。大家不妨看看。 摘自: Return of the Puzzlers: Schlock and Awe Joshua Bloch, Google, Inc.; Neal Gafter, Microsoft http://developers.sun.com/learning/ja...

2009-07-29 18:10:15 146

finally的小特性

        try/catch/finally语句下,finally子句是肯定会执行的。但是很多人做不同的测试,却得出了不同的结论。 具体的原理最好是去看《深入java虚拟机》,里面对jsr、ret等几个指令做了详细的说明。这里不深入分析,而仅仅是从表现形式上看一下finally的特征。 代码:    /* * author: Zang XT */ public clas...

2009-05-21 15:59:00 168

非public类的public方法有什么用

     好像有这样一个面试题:如果一个类是非public的,那么它的方法声明为public有什么用吗? 看这种情况: package test; public abstract class Test { public abstract void test(); public static Test getInstance(){ return new S...

2009-05-19 21:49:00 559

默认构造方法并非总是public的

     以前印象中一直有一个概念,说“如果没有提供构造方法,java将自动添加一个空的public的构造方法”。现在看来,有2个问题,一,默认构造方法未必是public的,二,默认构造方法肯定有super();(Object类的是空构造方法)。 实际情况是,默认构造方法的修饰符是和所在类的修饰符一致的。 比如 public class Test{ } 它的默认构造方法是 public...

2009-05-19 19:14:00 409 1

String类型的重点总结

        String类是Java中很重要的一个类,在此总结一下这个类的特别之处。下面的相关资料翻译自《java语言规范》(第三版)和《java虚拟机规范》(第二版),有的直接摘引了原文。下面的代码都是用SUN jdk1.6 javac来编译。     1.String literal,这里将它翻译为字面常量,它由双引号包围的0个或多个字符组成,比如"abc","Hello Wo...

2009-05-19 18:31:00 182

一个静态初始化的例子

Java语言规范中的一个例子: class Super { static int taxi = 1729; } class Sub extends Super { static { System.out.println("Sub"); } } public class Test { public static void main(...

2009-05-18 02:28:00 157

读书笔记:java的class文件格式分析(一)

    阅读Java Virtual Machine Specification中的第四章,理解Java的class文件格式。 class文件由8位的字节流组成。 The ClassFile Structure ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_...

2009-03-21 17:45:00 167

java中对switch的处理

        switch是控制选择的一种方式,编译器生成代码时可以对这种结构进行特定的优化,从而产生效率比较高的代码。在java中,编译器根据分支的情况,分别产生tableswitch,lookupswitch两中情况,其中tableswitch适用于分支比较集中的情况,而lookupswitch适用与分支比较稀疏的情况。不过怎么算稀疏,怎么算集中就是编译器的决策问题了,这里不做深入的分析。 ...

2009-01-14 19:41:00 244

一些java中常见的基础问题的总结

      无聊的问题总结.1.&和&&的区别. java中的逻辑运算符:    & 逻辑与(AND)   | 逻辑或(OR)   ^ 逻辑抑或(XOR)   ! 逻辑非   && 条件与(AND)   || 条件或(OR)   注意&&和||会进行短路计算,第一个条件可以判断表达式的结果时,不对后面的条件进行判断了. 位操作运算符:...

2008-12-19 12:25:00 134

三.补充工作

    开始使用openjdk自带的netbeans项目来分析遇到了很多问题,运行时经常有ant脚本出错的情况,为了避免这些问题,自己又从源代码直接创建了javac项目。在Netbeans的工程属性中,改变运行的设定,主类选择com.sun.tools.javac.Main,参数这里先设定为HelloWorld.java。工作目录选择D:\Test,并把HelloWorld.java文件放在该目录...

2008-12-14 20:56:00 163

java方法调用时的类型转换

      Java进行方法调用时,可能会对参数的类型进行转换,以匹配到要调用的准确方法,在重载时要尤其注意这个问题。java语言规范中有相关的规定。 Method invocation conversion is applied to each argument value in a method or constructor invocation (§8.8.7.1, §15.9, §15....

2008-12-13 22:55:00 296

String的一点特殊性质

      在常量的处理上,String和基本类型的处理有些类似的地方,那就是Constant Folding(暂且翻译成常量折叠)和常量传播。 废话不说,直接看代码: public class Test { public static void main(String[] args) { System.out.println(TestFinal.str); System.out.print...

2008-12-13 22:12:00 131

二.从com.sun.tools.javac.Main开始

        Main中的main方法是javac的入口。           main中内容很少,只有两段分支代码 if (args.length > 0 && args[0].equals("-Xjdb")) { //.... } else{ System.exit(compile(args)); } 使用javac -Xjdb时会进入if部分,和调...

2008-12-04 23:04:00 316

一.准备工作

       首先下载openjdk的源文件包,地址http://www.java.net/download/openjdk/jdk7/promoted/b40/openjdk-7-ea-src-b40-20_nov_2008.zip.使用NetBeans进行构建,构建指南:http://nb-openjdk.netbeans.org/get-and-build-compiler.html  按照...

2008-12-03 12:48:00 105

jvm对boolean类型的处理

   JVM对boolean类型的支持比较有意思,java虚拟机规范里这样说:   Although the Java virtual machine defines a boolean type, it only provides very limited support for it. There are no Java virtual machine instructions solely ...

2008-11-25 19:16:00 460

HashMap小测试

    测试HashMap代码: importjava.util.HashMap; importjava.util.Map; /** * *@authorZangXT */ publicclassTest{ publicstaticvoidmain(String[]args){ Map<String,String>map=newHash...

2008-11-25 18:48:00 106

Java的好书

      学Java也算有一段时间了,记录一下看过或者还需要再深入的看到书。比较基础的:Core Java(8th),内容很全,概念清晰,一直没有认真看过,但是可以作为参考资料。The Java Programming Language(4th),算是最喜欢的Java书了,语言点介绍详略得当,概念权威,很多地方也会介绍一些语法的设计选择,很棒。对类库也进行了整体的介绍,看完能对java有个基本的...

2008-11-14 21:59:00 135

instanceof的使用

     总结:Java Puzzlers一书中的谜题50 看几行代码: publicclassMain{ publicstaticvoidmain(String[]args){ Strings=null; System.out.println(sinstanceofString); System.out.println(newMain()instanceofStri...

2008-11-06 20:47:00 120

i++ ,++i,i=i++的问题

     很经典的无聊问题之一。  int i=0;i=i++;结果i是多少?这是一个经常被提及的问题,答案一直五花八门。具体测试一下以说明问题: 代码1: publicclassTest{ publicstaticvoidmain(String[]args){ inti=0; i=i++; System.out.println(i); } } 结果i依然是0....

2008-11-05 20:16:00 306

读Java Puzzlers笔记: 表达式问题

    一.奇数性判断一个数是否为奇数,方法: publicstaticbooleanisOdd(inti){ return(i%2)!=0; } 或者: publicstaticbooleanisOdd(inti){ return(i&1)!=0; } 不要使用i%2==1来判断,因为它无法判断负奇数的情况.二.浮点数浮点数计算一直是计算机中...

2008-11-02 11:27:00 125

一个静态初始化的问题

问题代码:  public class Test1{ public static int k=0; public static Test1 t1=new Test1("t1"); public static Test1 t2=new Test1("t2"); public static int i=print("i"); public static int n=9...

2008-10-31 21:59:00 425

看一下enum的原理

      java5增加了enum,其实对enum的处理很简单,编译器增加了一些功能而以。看代码: public enum Season{ Spring,Summer,Autumn,Winter } javap -c Season就可以看出来具体的处理了,不过直接反编译更容易理解,使用jad处理的结果。 //Decompiled by Jad v1.5.8g.Copyri...

2008-10-29 13:22:00 123

java 1.6 表达式计算方法

  import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Test{ public static void main(String[] args) { Scri...

2008-10-11 12:42:00 148

局部内部类 与 final变量

     局部内部类可以访问定义该类的作用字段中的所有变量,包括局部变量、方法参数、实例变量(假设是一个非静态语句块)和静态变量。唯一的限制是局部变量或方法参数只有在声明成final时才可以使用。规定这种限制的主要原因是由于多线程问题,其次是为了确保从内部类访问这些变量时,他们都有明确定义的值。假设访问局部变量或参数的方法可以在定义局部类的方法执行完成以后调用(此时局部变量和参数都不再存在了),那...

2008-09-12 23:39:00 159

static方法与覆盖

     The Java Programming Language中的一段话:Static members within a classwhether fields or methodscannot be overridden, they are always hidden. The fact that they are hidden has little effect, howevereach...

2008-08-01 17:50:00 179

java中匿名内部类的构造方法调用

          与人讨论匿名内部类的构造方法问题,自己写代码看看原理到底是什么样子的。因为类是匿名的,所以就无从创建一个同名的构造方法了。但是可以直接调用父类的构造方法。测试代码如下:   package testtest; public class Main { public static void main(String[] args) { I...

2008-07-28 19:14:00 1272

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除