自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

点滴

The devil is in the details.

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Comparable接口compareTo方法的反对称性

以下是阅读《Core Java 卷一》的感悟,具体内容见该书关于接口的章节。Java要求Comparable接口的compareTo方法具有反对称性。即a.compareTo(b)和b.compareTo(a)的符号相反。同时,如果a.compareTo(b)抛出异常,b.compareTo(a)也必须抛出异常。引入继承后,这一点尤为值得注意。假设E

2017-01-06 15:39:45 1295

原创 ArrayList的clone方法探索

ArrayList的clone方法实现的是ArrayList对象的不完全深度拷贝,这主由对内部数组的拷贝造成的。内部数组实现的是对数组本身的深度拷贝,但没有实现对数组内容的深度拷贝,因此是个不完全的深度拷贝。对数组的深度拷贝,可以自己写其实现代码, 也可非常方便的调用数组的clone()方法,不管什么类型的数组都有一个clone方法, 且该方法是深度拷贝的,若数组的内容是引用类型的对象,则要对该引

2013-12-29 20:34:57 1486

原创 ArrayList用equals方法判断对象是否在其中

ArrayList的许多方法,如public boolean remove(Object theElement),public boolean contains(Object target),public int indexOf(Object target),public int lastIndexOf(Object target)都会用对象的equals方法判断形参对象是否在ArrayList中

2013-12-29 14:44:21 2074

原创 重写的方法形参必须相同

子类重写父类的方法后可以实现多态,重写时形参必须和父类的形参相同。如果不同,那么就不算重写,对子类来说,该方法属于重载。如下面的equals方法:package bzq12_29;public class EqualsTest{ public static void main(String[] args) { Object o = new Cat("小花", 3); Cat

2013-12-29 13:21:41 5789

原创 为什么内部类中有static成员时内部类也必须声明为static

如果A和B类关系紧密,且A类的主要作用是帮助完成B类的实现,这时可将A类作为B类的内部类,两个类可以互相访问各自的私有成员,这样就方便B类的设计,使B类更加自给自足(self contained)。这是我理解的内部类产生的原因,有点类似于C++中的友元类。        A类作为B类的内部类,便是B类的一份子,地位上和B类的属性和方法相当,此时A类便有static和非static之分了,这就是

2013-12-28 20:50:34 1973 1

原创 实现Cloneable接口,重写clone方法

如果一个类精心设计了clone方法,那么clone方法就会完成对象的深拷贝。这里的精心设计指下面括号中的内容:(不管什么类,实现clone方法的第一步是调用super.clone()完成其父类的深拷贝和该类对象本身的浅拷贝。如果该类包含引用类型,还需调用该引用类型的clone方法对引用类型深拷贝。)另外,这里super若是Object类,则一定是对Object的深拷贝,若这里的super不是Obj

2013-12-25 23:42:51 2131

翻译 A Restriction on Protected Access

假设类D继承自类B,类B中有一个protected的成员属性n,并且类D和类B在不同的包中,所以类D和类B如下定义:package one;public class B{ protected int n; ...}package two;import one.B;public class D extends B{ ....}然后D中

2013-12-23 22:37:36 525

翻译 package access

The protected modifier provides very weak protection compared to the private modifier, since it allows direct access to any programmer who is willing to go through the bother of defining a suitable

2013-12-23 22:28:44 708

转载 protected修饰的成员属性和方法的可见范围:子类或同一个包中的类

If a method or instance variable is modified by protected (rather than public orprivate), then it can be accessed by name inside its own class definition, it can beaccessed by name inside any clas

2013-12-23 22:00:26 3094

转载 为何private属性不能在子类中通过名字访问的理由

The fact that a private instance variable of a base class cannot be accessed in the definition of a method of a derived class often seems wrong to people. After all, if you are an hourly employee and

2013-12-23 21:48:52 602

原创 成员变量中的引用类型为null有意义时如何比较值是否相等

比如Person这个类中有一个成员属性表示人的死亡日期,用自定义的Date类型表示,null表示此人健在,这时成员属性的引用类型值为null便是有意义的了。在比较两个人是否为同一个人时,即equals方法的实现时,要判断这两个人的死亡日期是否相同,由于日期可能为null,所以不可直接调用Date类的equals方法,此时可如下处理:写一个private的helping class,

2013-12-22 19:56:12 621

原创 read方法读文件

read()方法读文件,一次读一个字符,至于一次读几个字节,这由输入流采用的编码决定,若是GBK编码,ascii码能表示的,就读一个字节,中文读两个字节;若是utf-8,ascii码能表示的,一次读一个字节,中文读三个字节,但是读到程序中int变量上的都是两个字节的unicode形式。

2013-12-17 22:06:03 1075

原创 utf-8编码汉字

utf-8虽然用三个字节来编码汉字,但是除去标志位后,真正有效的其实是两个字节,因为用utf-8读取汉字到整型变量后,打印该整型变量的二进制形式发现是15bits。这也解释了为什么可以将读取来的int值,强制转换成char型显示汉字,java中char型是两个字节,如果汉字真要用三个字节编码,那么转换成char就会丢失信息。

2013-12-17 08:10:14 1442 1

原创 原来代码这样发的

package bzq12_16;import java.io.*;public class FileReaderTest{ public static void main(String[] args) { FileReader fr = null; try { fr = new FileReader("D:\\Users\\y\\workspace\\Study12

2013-12-16 21:07:23 625

原创 FileReader读取文件

package bzq12_16;import java.io.*;public class FileReaderTest{public static void main(String[] args){FileReader fr = null;try{fr = new FileReader("D:\\Users\\y\\workspace\\Study1

2013-12-16 20:33:16 1024

java完美编程

挺不错的java入门书,讲述有条理、清晰易懂

2013-12-16

空空如也

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

TA关注的人

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