Java中class的初始化顺序

(static对象和static代码块,依据他们的顺序进行初始化)>成员变量>构造函数class的装载在讲class的初始化之前,我们来讲解下class的装载顺序。以下摘自《Thinking in Java 4》 由于Java 中的一切东西都是对象,所以许多活动 变得更加简单,这个问题便是其中的一例。正如下一章会讲到的那样,每个对象的代码都存在于独立的文件 中。 …… 阅读全文

Java程序员应该知道的10个面向对象理论

面向对象理论是面向对象编程的核心,但是我发现大部分Java程序员热衷于像单例模式、装饰者模式或观察者模式这样的设计模式,而并没有十分注意学习面向对象的分析和设计。学习面向编程的基础(如抽象,封装,多态,继承等)是非常重要的,而运用它们来设计干净的模块也同样重要。我也认识很多不同等级的程序员,他们没有听过这些面向对象理论,或者不知道某个设计理论有什么好处,或者如何在编码中使用这些设计理论。我们起码要设 …… 阅读全文

面向对象设计原则和创建SOLID应用的5个方法

最近我听到了很多关于函数式编程(FP),受之启发我觉得也应该关注面向对象编程(OOP)和面向对象设计(OOD),因为在设计系统时这些仍然非常重要。我们将以SOLID原则为起点开始我们的旅程。SOLID原则是类级别的,面向对象的设计理念,它们与测试工具一起帮你改进腐坏的代码。SOLID由程序员们最喜欢的大叔 Robert C. Martin(Bob大叔)提出,它其实是五个其他缩略词的组合——SRP, …… 阅读全文

使用双引号""创建Java字符串还是使用String构造函数?

在Java中,一个字符串可以使用下面这两种方式进行创建:String x = "abc";String y = new String("abc");这两种创建字符串的方式有什么不同呢?双引号 VS 构造函数这个问题可以用下面这两个简单的代码实例来回答。例子1:String a = "abcd";String b = "abcd";System.out.println(a == b); …… 阅读全文

Java中Scanner类和BufferReader类之间的区别

java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串。它本质上是使用正则表达式去读取不同的数据类型。Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本。下面是两个类的不同之处:当nextLine()被用在nextXXX()之后,用Scanner类有什么问题尝试去猜测下面代码的输出内容; …… 阅读全文

Myeclipse常用快捷键列表

我经常使用的快捷键 快捷键 功能 Ctrl+Shift+X 代码大写 代码小写 Ctrl+Shift+Y Alt+Shift+S “source”快捷键 alt+shift+A 多列编辑 Ctrl+D 删除当前行 Ctrl+1 快速修复 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Q 定位到最后编辑的地方 …… 阅读全文