最近在图书馆看书,偶然发现书架子上一本Java的书《Head First Java》。以前看过《Head First 设计模式》,感觉很不错,令人印象深刻。于是就把这本《Head First Java》借了回来。明天就是五一节了,导师的项目感觉进展比较顺利,早上就偷偷看看这本《Head First Java》,并把一些感觉重要的记录下来,算是拾遗了。
1,接口一定是public的,这一点毋庸置疑。接口的成员变量一定是public static final型的,不管你写不写这些关键字。就算你在接口中这样定义变量: int num=0;(注意,IDE一定会提示你对其进行初始化)。实际上编译器会自动加上public static final。接口的成员方法一定是public abstract的。哪怕你这样定义方法: void show(); (注意一定要加;)。实际上编译器会自动加上public abstract。
2,每个构造函数可以选择调用super()或this(),但是不能同时调用。super()和this()不能兼得。要显示调用super()或this()的话必须在构造函数的第一行。不显示调用也可以,编译器会自动给加上没有参数的那个super()的。但是要是父类没有没有参数的构造函数,而子类又没有显示调用父类的带参数的构造函数,那就坏事了。
3,大家都知道Object是所有类的父类。在子类调用new在堆中创建实例化对象的时候。实际上是先调用其父类的构造函数创建一个父类的实例化对象。这样一来堆中的子类对象就像是洋葱结构,父类对象在里面,子类多余父类的部分在外边。一层包一层。
4,如果一个类中有另一个类的实例化对象的引用,这样的话在堆中另一个类的实例化对象并不存在于这个类的实例化对象中,并不是洋葱结构的。而是在本类中保持一个引用变量的空间,另一个类独立的在堆中开辟一块区域存储实例化对象,这个引用指向那个新开辟的即可。
5,如果类已经是final的,再标记final的方法就很多余了。如果一个类不能被继承,那么他的所有方法都不能被覆盖。final方法就没有必要标记了。
6,如果类只有静态的方法,你可以将构造函数标记为private的以避免被初始化。
7,String.format()可以格式化字符串:
public class Format { public static void main(String args[]){ String str=String.format("%,d",23456); System.err.println(str); } } //结果: 23,456
public class Format { public static void main(String args[]){ String str=String.format("%,.2f",23456.6633); System.err.println(str); } } //结果: 23,456.66
8,String.format还可以格式化日期。
public class Format { public static void main(String args[]){ Date today=new Date(); System.err.println(String.format("%tc", today)); System.err.println(String.format("%tr", today)); System.err.println(String.format("%tA ,%tB %td",today,today,today )); } } //结果: 星期三 四月 30 09:40:00 CST 2014 09:40:00 上午 星期三 ,四月 30
9,使用断言:断言机制允许在测试期间向代码中插入一些检查语句。当代码发布时,这些插入的检测语句将会被自动移走。就是说在Debug阶段断言语句是有效的,但是在Release阶段是无效的。断言机制缺省情况下是关闭的,在Eclipse中启用断言的方法:Run——Run Configurations——Arguments——VM Arguments中加上-ea即可。
assert的使用有两种形式:
1,assert 条件;
int x=0; assert x>0; //运行结果: Exception in thread "main" java.lang.AssertionError at com.wjy.connect.TestLog.main(TestLog.java:42)
2,assert 条件:表达式;
int x=0; assert x>0:"你想传给AssertionError的信息。"; //运行结果: Exception in thread "main" java.lang.AssertionError: 你想传给AssertionError的信息。 at com.wjy.connect.TestLog.main(TestLog.java:42)
相关推荐
Head First Java 中文高清版Head First Java 中文高清版Head First Java 中文高清版
Head First Java 3rd 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍
head first java shapensone 习题解答
Head First Java是所有编程或者Java初学者最适合的书籍,我很喜欢轻松和寓教于乐的Head First风格,这应该是最有意思的关于Java的书。
Head First Java, 2nd EditionHead First Java, 2nd EditionHead First Java, 2nd EditionHead First Java, 2nd Edition
Head First Java中文第2版 PDF,初学者的福音,分享给大家
Head First Java.pdf,一本很好的学习java的书籍,让你在轻松自如的环境下学会java编程。
Head First Java 每章源码Head First Java 每章源码Head First Java 每章源码
Head First Java(中文第2版)源码(书内全部代码) 解压后可用迅雷直接下载
这是配套书籍《Head First Java》的代码,适合配合初涉Java的书籍《Head First Java》一起使用,希望有帮助。
Head First Java(第2版)中文版Head First Java(第2版)中文版Head First Java(第2版)中文版Head First Java(第2版)中文版Head First Java(第2版)中文版Head First Java(第2版)中文版Head First Java(第2版)中文版Head...
Head First Java.pdf 中文 Head First Java.pdf 中文 Head First Java.pdf 中文
《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会...
h head first java 很棒的书head first java 很棒的书head first java 很棒的书ead first java 很棒的书
Head First Java.第二版.中文完整高清版.pdf
java基础 Head First Java 及源码
HEAD FIRST JAVA全书的学习笔记