
Java学习
文章平均质量分 72
Mr桃子
这个作者很懒,什么都没留下…
展开
-
Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权:自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。目录前言源文件基础源文件结构格式命名约定编程实践Javadoc后记前言这份文档是Goog转载 2015-11-09 14:23:55 · 726 阅读 · 0 评论 -
Thinking in Java 泛型
介绍原创 2014-03-23 23:47:44 · 1111 阅读 · 0 评论 -
Java内存区域和GC机制
Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(Java Virtual Machine)中的内存转载 2014-03-14 15:15:16 · 1251 阅读 · 0 评论 -
Thinking in Java RTTI和反射机制
意义编程思想中的解释:运行时类型信息使得你可以在程序运行时发现和使用类型信息。并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程),这就是RTTI(Runtime Type Information,运行时类型信息)。在Java中,在运行时识别对象和类的信息主要有两种方式:一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;原创 2014-03-14 00:16:14 · 1532 阅读 · 0 评论 -
Thinking in Java 类加载与初始化
在阅读Java编程思想类型信息Class.forName()方法时牵扯到Class类对象和类加载过程,这里作下记录类加载器类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类,就会产生一个Class对象(更恰当地说,是被保存在一个同名的.class文件中)。为了生成这个类的对象,运行这个程序的Java虚拟机(JVM)将使用被成为“类加载器“的子系统。原创 2014-03-13 15:03:20 · 1048 阅读 · 0 评论 -
[解惑] 领略内部类的内部
内部类有两种情况:(1) 在类中定义一个类(私有内部类,静态内部类)(2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中内部类的两个特点: (1) 在外部类的作用范围内可以任意创建内部类对象,即使内部类是私有的(私有内部类)。即内部类对包围它的外部类可见。Java代码转载 2014-03-05 16:01:12 · 755 阅读 · 0 评论 -
Thinking in Java 内部类
Java 内部类种类及使用解析内部类Inner Class 将相关的类组织在一起,从而降低了命名空间的混乱。 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。 Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner c转载 2014-03-05 15:46:55 · 1101 阅读 · 0 评论 -
Thinking in Java 接口
P1721. 抽象类:包含抽象方法的类。 如果类中含有抽象方法,则必须被定义为抽象类。 抽象类中可含0个,一个或多个抽象方法。 抽象方法中不能有具体实现。 抽象类中可以包含非抽象方法。 抽象类中可以包含成员变量。 不能创建抽象类的对象。2. 接口:被声明原创 2014-02-24 15:16:01 · 962 阅读 · 0 评论 -
Thinking in Java 构造器的调用顺序
//: polymorphism/Sandwich.java// Order of constructor calls.package polymorphism;import static net.mindview.util.Print.*;class Meal { Meal() { print("Meal()"); }}class Bread { Bread() { pr原创 2014-02-21 14:40:45 · 1085 阅读 · 0 评论 -
Thinking in Java 多态的缺陷:域与静态方法
P157一旦你了解了多态机制,可能就会开始认为所有事物都可以多态地发生。然而,只有普通的方法调用可以是多态的。例如,如果你直接访问某个域,这个访问就将在编译期进行解析,就像下面的示例所演示的://: polymorphism/FieldAccess.java// Direct field access is determined at compile time.class Sup原创 2014-02-20 16:48:38 · 1227 阅读 · 0 评论 -
Thinking in Java static
P171 5-4-2原创 2014-02-12 17:06:44 · 884 阅读 · 0 评论 -
Thinking in Java 内部类访问外部类
P349 上传图片 1、图片大小不能超过2M2、支持格式:.jpg .gif .png .bmp中间水印右下水印 无水印文章标签(添加Tag,你的内容能被更多人看到)我们为什么要打Tag?(最多添加5个标签,多个标签之间用“,”分隔)个人分类 [编辑分类](多原创 2014-02-11 17:37:20 · 1031 阅读 · 0 评论 -
Thinking in Java 前期绑定&动态绑定
P280方法调用绑定将一个方法调用同一个方法主体关联起来被称作绑定。若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。读者可能以前从来没有听说过这个术语,因为它是面向过程的语言中不需要选择默认的绑定方式。例如,C只有一种方法调用,那就是前期绑定。上述程序之所以令人迷惑,主要是因为前期绑定。因为,当编译器只有一个Instrument引用时,它无法知道究竟调用哪个方法原创 2013-12-12 17:47:05 · 931 阅读 · 1 评论 -
Thinking in Java 向上转型
p260由导出类转型成基类,在继承图上是向上移动的,因此一般称为向上转型。由于向上转型是从一个较专用类型向较通用类型转换,所以总是很安全的。也就是说,导出类是基类的一个超集。它可能比基类含有更多的方法,但它必须至少具备基类中所含有的方法。在向上转型的过程中,类接口中唯一可能发生的事情是丢失方法,而不是获取它们。这就是为什么编译器在“未曾明确表示转型”或“未曾指定特殊标记”的情况下,仍然允许向上原创 2013-12-11 16:40:32 · 969 阅读 · 0 评论 -
Thinking in Java final关键字
P262final关键字根据上下文环境,Java的关键字final的含义存在着细微的区别,但通常它指的是“这是无法改变的。”不想做改变可能出于两种理由:设计或效率。由于这两个原因相差很远,所以关键字final有可能被误用。以下几节谈论了可能使用到final的三种情况:数据,方法和类。final数据许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不变是很有原创 2013-12-11 14:13:52 · 962 阅读 · 0 评论 -
Thinking in Java:对象初始化顺序
P131初始化的顺序是先静态对象(如果它们尚未因前面的对象创建过程而被初始化),而后是“非静态”对象。从输出结果中可以观察到这一点。要执行main()(静态方法),必须加载StaticInitialization类,然后其静态域table和cupboard被初始化,这将导致它们对应的类也被加载,并且由于它们也都包含静态的Bowl对象,因此Bowl随后也被加载。这样,在这个特殊的程序中的所有类在原创 2013-12-04 17:30:52 · 905 阅读 · 0 评论