
Thinking in java
文章平均质量分 72
0TST0
whu-cs硕士在读
展开
-
Thinking in java-8 单继承和多态
单继承和多态原创 2017-06-15 22:26:25 · 319 阅读 · 0 评论 -
Thinking in java-32 Iterable & Iterator Inteface
1. java中的Iterable & Iterator?Q1: What are the difference between Iterator VS Iterable? A1: The “Iterable” was introduced to be able to use in the ‘foreach’ loop. A class implementing the Iterable inte原创 2017-06-27 11:32:04 · 410 阅读 · 0 评论 -
Thinking in java-31 容器-container
1. 容器引入容器: 一些简单的程序而言,有一些固定数量的对象、且这些对象有已知的生命周期就足够了。Java中有多种方式存储对象(或者换种说法,存储对象的引用)。数组array是编译器支持的数据类型,如果要存储一组基本数据类型对象,数组是一个极好的选择;对于存储一组对象而言数组也是很有效率的。 数组的局限性在于它是固定大小的,这个特点是致命的,因为绝大部分我们并不知道运行时需要有多少对象,所以容原创 2017-06-27 10:38:26 · 295 阅读 · 0 评论 -
Thinking in java-1 Initialization 初始化
初始化原创 2017-06-12 19:45:39 · 289 阅读 · 0 评论 -
Thinking in java-3 Java 堆和栈
java 内存模型原创 2017-06-13 11:37:48 · 218 阅读 · 0 评论 -
Thinking in java-2 Java内存模型
1.JVM Memory Model从上图可以看出,JVM内存被分为几个部分。在大的层面上,JVM Heap 内存被物理上分为了2个部分--年轻代和老年代。2. 内存管理之--年轻带Young GenerationYoung generation 是所有新对象创建的地方。当年轻带被填满后,垃圾回收GC开始工作。这种垃圾回收叫做Minor GC. Young Generation原创 2017-06-12 22:17:06 · 286 阅读 · 0 评论 -
Thinking in java-30 Closure and Callback闭包和回调
1. What is callback and closure is?Thinking in java 中的内部类章节中有关于‘闭包和回调’的内容,简单做一下整理。这里有关此问题的详细stackoverflow上Q&A, 及在thinking in java上的笔记内容。 闭包:闭包是一种从它被创建的作用范围内保留信息的可以调用的对象。从该定义可以看出,内部类是一种面向对象的闭包,因为它不仅包含外原创 2017-06-25 12:00:41 · 352 阅读 · 0 评论 -
Thinking in java-29 解耦合Decouple
耦合和内聚Couple & cohesionstackoverflow上有关于该问题的Q&A. Coupling-耦合:对于一个系统,如果改变一个单元时必须改变另一个单元的情形,我们称之为耦合。 Cohesion-内聚:测试一个单元是否时内聚的标准是,该单元是否完成一个独立的有意义的功能。 高内聚合低耦合是好的设计的标准。2. Decoupling解耦合继承方式:当修改时只需作用于原创 2017-06-22 10:43:17 · 616 阅读 · 0 评论 -
Thinking in java-28 Reflection 反射机制
1. Java反射机制是什么?点击查看stackoverflow相关详细问答。 反射是用来描述一种能审查其自身代码并能审查其他代码的一种机制。2. Reflection相关API点击这里查看详细PDF介绍。 - java.lang.reflect package - java.lang.Class 这里主要介绍java.lang.Class i). Class 实例代表着运行时的原创 2017-06-21 22:38:14 · 444 阅读 · 0 评论 -
Thinking in java-5 Java中对象存在的意义
对象简介原创 2017-06-14 21:22:56 · 526 阅读 · 0 评论 -
Thinking in java -6 隐藏的实现 Hidden implementation
Java 访问修饰符原创 2017-06-14 21:47:05 · 425 阅读 · 0 评论 -
Thinking in java-4 Java内存管理之垃圾回收Garbage Collection
JVM GC垃圾回收总结原创 2017-06-13 14:51:54 · 453 阅读 · 0 评论 -
Thinking in java-36 Regular expression正则表达式
1. 什么是正则表达式?部分内容整理自此,了解详细内容可以查看此处。 正则表达式定义了一种字符串查找的模式。 这种字符串search pattern可以是最简单的单字符、某个固定的字符串或者是某种特殊模式的复杂的表达式。 所以我们可以这样说:如果一个字符串符合了regular expression的模式,那么他就和我所要找的内容相匹配。(If a string has these things原创 2017-07-09 22:48:15 · 527 阅读 · 0 评论 -
Thinking in java-35 String 字符串
1. immutable不可改变特性String类对象都是不可修改的。如果我们去查阅JDK文档关于String类的信息,我们将发现所有看起来修改了String内容的方法其实是返回了一个全新的对象包含了这部分修改内容。原始的String字符串依然保持原封不动,未做过任何修改。这种设定保证了的代码很容易写,而且易于被人理解。 Objects of the String class are imm原创 2017-07-08 14:26:13 · 241 阅读 · 0 评论 -
Thinking in java-39 序列化 Serialization
1. 对象序列化的意义本文详细内容参考自java_T_point && tutorialspoint. Java语言中的序列化:将对象状态写入字节流中的机制。 对象可以用一组包含该对象数据和信息(包含对象的类型、存储在对象中的数据)的字节所表示。在序列化对象写入到文件之后,该对象可以从文件中读出,并进行反向的解序列化过程。也就是说,类型信息、代表该对象的字节信息及相关数据可以用来在内存中重建原创 2017-07-17 10:38:11 · 279 阅读 · 0 评论 -
Thinking in java-38 Java 泛型Generics in java
1. Generics 泛型引入泛型是在Java 5 之后引入到java 语言中的,其目的是为了提供编译时类型检查,减少ClassCastException异常风险。容器参数化能力是当初Generic引入的一个主要动力,它将运行时异常ClassCastException在编译时就强制检查,如果类型不匹配将抛出一个编译时错误。2. Generic Class泛型类我们可以定义泛型类。泛型类型是一种具原创 2017-07-16 21:52:26 · 380 阅读 · 0 评论 -
Thinking in java-37 类加载器与RTTI
RTTI ClassLoader Reflection原创 2017-07-16 12:12:32 · 217 阅读 · 0 评论 -
Thinking in java-33 Collection & Map
Collection & Map 图示图示中,虚线包围的是interface,实线所包围的是具体的容器类。Comparable:对应于给定类对应元素实现int comparaTo(Object obj)。Comparator:Comparator对应的是int comparable(Object obj1, Object obj2)在使用Collections.sort(Collecti原创 2017-06-28 09:54:32 · 229 阅读 · 0 评论 -
Thinking in java-7 代码重用
代码重用原创 2017-06-14 22:23:56 · 218 阅读 · 0 评论 -
Thinking in java-27 Runtime Type Identification运行时类型确定
1. RTTI这里有关于RTTI详细的pdf文件。 RTTI lets you find the exact type of an object when you only have a reference to the base type. RTTI is used to reveal the true types at run time. 运行时类型鉴定RTTI能使得在运行时确定对象的确原创 2017-06-21 21:29:13 · 223 阅读 · 0 评论 -
Thinking in java-26 构造函数多态
1. 代码package com.fqyuan.thinking;class Glyph { void draw() { System.out.println("Glyph.draw()"); } public Glyph() { System.out.println("Glyph before draw()"); draw();原创 2017-06-21 20:30:11 · 383 阅读 · 0 评论 -
Thinking in java-16 递归和迭代
递归和迭代异同Recursion & Iteration这里有关于此问题的Quora解答。 An algorithm is a procedure or formula for solving a problem.If you want to repeat some steps in procedure you can opt Iterative algorithm or Recursive原创 2017-06-18 10:27:38 · 238 阅读 · 0 评论 -
Thinking in java-15 传值机制&&关系问题
Passs by value–值传递原创 2017-06-17 13:30:48 · 197 阅读 · 0 评论 -
Thinking in java-14 static 关键字
static关键字意义原创 2017-06-17 11:09:29 · 284 阅读 · 0 评论 -
Thinking in java-13 类中的 Field和Method
1.数据域和方法class Test{ private int foo; public void bar(){ }}当我们定义一个类时,我们可以把2种类型元素放在类中。其一是数据域,有时称作数据成员。如果未被初始化,则将保证有相应默认值。而对于局部则不然,如果未被初始化则不会被默认初始化处理,因为它不是类的一部分。其二是方法域,有时也被称作成员函数。2.方法相关mod原创 2017-06-16 16:29:33 · 269 阅读 · 0 评论 -
Thinking in java-12 数据作用域问题
1.基本数据类型作用域作用域:scope决定了在给定范围内定义的变量名的可视性visibility以及该范围内对象的生命周期问题。 在C/C++/JAVA中,作用域是由{} 所决定的。{ int x=12; //Only x is avaiable { int y = 28; //Both x and y are available原创 2017-06-16 15:56:41 · 209 阅读 · 0 评论 -
Thinking in java-11 Everything is an object
1.Java以引用的方式操作对象“If we spoke a different language, we would perceive a somewhat different world!” –Ludwig Wittgenstein 在处理数据时可以直接对数据本身上进行操作,也可能通过一些间接的表现形式(如C 和C++中的指针操作)。 在Java语言中,我们把一切看作对象出来,我们所操作原创 2017-06-16 15:26:43 · 406 阅读 · 0 评论 -
Thinking in java-10 对象创建和生命周期
对象创建&生命周期原创 2017-06-16 14:11:31 · 450 阅读 · 0 评论 -
Thinking in java-9 参数化类型和容器
容器和泛型原创 2017-06-16 10:06:36 · 412 阅读 · 0 评论 -
Thinking in java-17 重载和重写Overload & Override
1. Overload && Override这里有相关的stackflow链接。 Method overloading deals with the notion of having two or more methods in the same class with the same name but different arguments.void foo(int a)void foo(i原创 2017-06-18 11:01:43 · 305 阅读 · 0 评论 -
Thinking in java-18 this 关键字
1. this产生一个调用该方法的当前对象的引用当我们在类中调用类中的另一个方法时,我们不需要显式使用this关键字的。我们只需直接调用方法,this关键字将自动作用于调用的方法。所以如下代码中pit()方法不需要在调用pick()时使用this.pick();public class Apricot{ void pick(){ //code here... }原创 2017-06-18 15:09:42 · 218 阅读 · 0 评论 -
Thinking in java 25 引用计数RefCounting
引用计数机制原创 2017-06-21 15:42:25 · 284 阅读 · 0 评论 -
Thinking in java-24 Polymorphism 多态
多态Polymorphism多态的初衷是为了让方法的适用性更强,即:当我们写了一个方法时,可以把基类作为参数,而可以将扩展类作为其参数传入;而不是将扩展类作为参数,此时该方法的适用度就没有前者高了。 Polymorphism is the ability of a class instance to behave as if it were an instance of another原创 2017-06-20 22:37:37 · 236 阅读 · 0 评论 -
Thinking in java-34 Exception异常处理
关于异常Exception引入异常处理的初衷:The basic philosophy of java is that ‘badly formed code will not be run! 在引入异常处理机制之前,我们一般是通过设置flag或者某些值的方式来判定某些组件是否有错的。 但是,许多年过去后,几乎所有程序猿都自命不凡,认为自己写的代码无可挑剔–“Yes, errors ma原创 2017-06-28 22:11:14 · 311 阅读 · 0 评论 -
Thinking in java-23 类的加载、链接和初始化
一个Java类从编辑的文本文件如: Test.java文件,需要经过编译器编译、加载-链接-初始化才能被使用。其中编译是java编译器将Test.java文件编译成Test.class字节码文件,这里主要是:load-link-initialization1.加载loadJava中类的加载是通过类加载器完成的。类加载器最终要完成的功能是定义一个java类,即把java字节码文件转换为JVM中java原创 2017-06-19 15:33:10 · 297 阅读 · 0 评论 -
Thinking in java-22 常量constant
1. 编译时常量stackoverflow和这里有相关详细Q&A.编译时常量(compile-time constant):是在编译时能被(而且确实在)计算出来的值。 如果多次运行同一个程序,那么编译时常量在每次程序运行的时候都有相同的值。2. 运行时常量运行时常量(runtime constant): 是只能在程序运行时才被计算出来的值。 如果多次运行同一个程序,那么运行时常量在每次运行时可能原创 2017-06-18 22:42:54 · 302 阅读 · 0 评论 -
Thinking in java-21 单例模式和委托模式
1.单例模式 Singleton Pattern对于class的修饰符只有2种,public和default。我们不能把class设置为private,但我们可以将一个类的构造函数设置为private。public class Singleton{ private Singleton(){ } private final static Singleton INSTANCE =原创 2017-06-18 17:07:17 · 282 阅读 · 0 评论 -
Thinking in java-20 Java 初始化
Java 语言不厌其烦地试图保证变量在使用之前被合适地进行过初始化。对于类中的变量,未被显式初始化的变量会被初始化为其默认值;而对于方法中的变量,如果没有主动初始化,则编译器会以报错的方式保证变量初始化。1.顺序初始化在类内部,变量初始化的顺序是由其在类中的位置定义的。变量定义可能分散在类中各处,但是变量总是在任何方法被调用之前被初始化–甚至是构造函数。package thinking.ini原创 2017-06-18 16:39:37 · 220 阅读 · 0 评论 -
Thinking in java-19 final、finally、finalize关键字
final finally finalize原创 2017-06-18 16:02:20 · 262 阅读 · 0 评论 -
Comparable接口和Comparator接口
1. 关于2个接口文档说明1). Comparable: 实现了该接口的类可以直接进行排序,在调用Collections静态方法进行排序时无需指定Comparator, 因为实现了该类的对象本身是可比较的。 需实现方法:public int compareTo(Object o){} This interface imposes a total ordering on the obj原创 2017-08-23 11:33:34 · 266 阅读 · 0 评论