最近在图书馆看书,偶然发现书架子上一本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》是一本非常受欢迎的Java编程学习书籍,其中文高清版为中国的Java初学者提供了方便的学习资源。这本书以其独特的教学方式,通过丰富的图像、幽默的插图和互动性的设计,帮助读者以轻松有趣的方式...
《Head First Java》第三版是一本广受好评的编程教材,特别适合初学者和有经验的程序员用以学习或复习Java语言。这本书以其独特的教学方式,将枯燥的编程知识转化为生动有趣的内容,使读者在轻松愉快的氛围中掌握...
- **Headfirst Java**:表明文档与《Head First Java》这本书有关。 - **习题**:文档包含书中的练习题。 - **解答**:文档提供这些练习题的解答。 #### 部分内容分析 ##### 第一部分:Sharpen Your Pencil-...
《Head First Java》英文版第二版是由Kathy Sierra与Bert Bates共同编写的一本Java编程语言学习书籍。这本书籍属于“Head First”系列图书的一部分,该系列以一种轻松、有趣的方式向读者传授编程知识和技能。Kathy ...
《Head First Java》PDF版本下载
《Head First Java.第二版.中文完整高清版.pdf》是一本广受Java学习者欢迎的教程书籍,它不仅提供了对Java语言的详细介绍,而且强调了学习方法,通过各种有趣的方式帮助读者更好地理解和记忆Java编程的核心概念。这...
《Head First Java 清晰版(3)》是学习Java编程的一款优秀教材,专注于第八到第十章的内容。这本书以其独特的视觉设计和易于理解的方式,帮助初学者深入掌握Java编程语言的核心概念。以下是对这三章内容的详细解读...
《Head First Java中文第2版》是一本专为初学者设计的Java编程教材,它以其独特的教学方式,通过丰富的图像、幽默的语言和实际案例,帮助读者深入浅出地理解Java编程概念。这本书不仅覆盖了Java语言的基础知识,还...
《Head First Java》是一本非常受欢迎的Java编程学习书籍,其中文高清版为中国的Java初学者提供了方便易懂的学习资源。这本书以其独特的教学方式,通过丰富的图表、幽默的插图和非传统的方式深入浅出地讲解Java编程...
《Head First Java》是“head first”系列中的一本,这个系列的书籍因其通俗易懂而著名,是很多初学者和自学者入门编程的首选教材。该系列书籍在内容设计上采用了大量图形、示例和问题解答的方式,让读者在轻松愉悦...
《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习指导。本书是根据学习理论所设计的,可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。而且不只是读死书,你...
"Head First Java", "Java核心技术", 和 "Java编程思想" 这三本书是Java学习者公认的经典教材,各自针对不同的学习阶段和需求。 "Head First Java" 是一本以独特、直观的方式讲解Java的书籍,它通过生动的故事和...
《Head First Java源代码 (中文第2版)》是一本为初学者设计的Java编程教材,书中通过生动、直观的方式讲解了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》是一本备受推崇的Java编程入门教材,无论是中文版还是英文原版,都因其独特的教学方式深受读者喜爱。这本书旨在帮助初学者快速理解Java编程语言的基础概念和核心特性,通过丰富的图像、幽默的...
### Head First Java, 2nd Edition — 关键知识点解析 #### 一、书籍概述 《Head First Java, 2nd Edition》是一本面向初学者的Java编程教程,它通过直观且易于理解的方式介绍Java编程的基本概念和技术。这本书...