Java编程思想

Java编程思想: 内部类

巧了我就是萌 提交于 2020-03-02 14:07:42
内部类的基础知识 内部类的定义 将一个类Inner的定义放在另一个类Outer的定义内部. 则Inner的具体类型为Outer.Inner 如果要引用Inner类型, 我们需要Outer.Inner, 即在类层次上, Inner是寄生于Outer的, 任何关于Inner的操作(如构造, 调用其方法)都需要通过Outer的实例对象生成一个Inner的对象(这样才能跟Outer.Inner类型关联起来)来进行操作 . public class Outer { public String s; Outer(String s) { this.s = s; } class Inner { public void show() { System.out.println(s); System.out.println("Inner show"); } } public Inner inner() { return new Inner(); } public static void main(String[] args) { Outer o = new Outer("???"); Outer.Inner i = o.inner(); i.show(); System.out.println(o.s); // ERROR // Outer.Inner i1 = new Outer.Inner();

Java编程思想: 类型信息

狂风中的少年 提交于 2019-12-25 09:30:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 为什么需要RTTI 面向对象编程的主要目的是: 让代码只操纵对基类的引用, 这样方便扩展. 在运行期间, 通过RTTI来确定具体的对象, 并通过多态来确定具体的方法调用. Class对象 Class对象: 包含一个类有关的信息的特殊对象. 对于类加载器来说, 它首先加载 原生类 , 如Java API. 其次, 如果一个类的静态成员被引用, 则进行动态加载(这从侧面说明构造函数实际上为static). class A { static { System.out.println("Loading A."); } } class B { static { System.out.println("Loading B."); } } public class Test { public static void main(String[] args) { new A(); try { Class.forName("B"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } 当我们执行: javac Test.java 时候, 会生成A.class, B.class, Test.class 但这里必须明确一点的是: 无论A,

Java编程思想: 持有对象

非 Y 不嫁゛ 提交于 2019-12-09 12:02:21
泛型和类型安全的容器 使用Java SE5之前存在的一个问题是: 编译器允许你向容器中插入不正确的类型. 考虑下例: import jdk.nashorn.internal.runtime.arrays.ArrayLikeIterator; import java.util.*; class Apple { private static long counter; private final long id = counter++; public long id() { return id; } } class Orange {} public class ApplesAndOrangesWithoutGenerics { @SuppressWarnings("unchecked") public static void main(String[] args) { ArrayList apples = new ArrayList(); for (int i = 0; i < 3; i++) { apples.add(new Apple()); } apples.add(new Orange()); for (int i = 0; i < apples.size(); i++) { System.out.println(((Apple)apples.get(i)).id()); }

Java编程思想: 访问权限控制

我怕爱的太早我们不能终老 提交于 2019-12-03 08:56:12
包: 库单元 包的工作原理: 使用package(如package access)创建一个命名空间(access), 此命名空间下所有的文件的互相访问权限, 可达到写在同一个文件内的效果(类似C++的友元类friend class). 使用import进行导入, 但如果想导入静态方法, 则需要import static. 权限访问 public: 任何对象均可以访问. protected: 继承的子类可访问. private: 类内部可访问. 所以, 我们可以通过public class Person{}来达到访问类的目的. 习题答案: https://github.com/leicj/books/tree/master/Java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3 来源: oschina 链接: https://my.oschina.net/u/1017135/blog/712652

《JAVA编程思想》第四版 PDF 下载 中文版和英文版 高清PDF扫描带书签

匿名 (未验证) 提交于 2019-12-02 21:35:18
转载自: https://www.cnblogs.com/buwuliao/p/8073211.html 一、链接: https://pan.baidu.com/s/1d07Kp4 https://pan.baidu.com/s/1boOSdAZ 文件截图: 二、注意: 实在要看,可以看对应的英文版本(文件658页,书籍636页),没什么难度。 三、代码引入: http://blog.csdn.net/sinat_36246371/article/details/53170166 四、思维导图: 感谢 @TryXD 提醒。有一个GitHub项目,是关于《Java编程思想》思维导图的。 [LjyYano](https://github.com/LjyYano)/ Thinking_in_Java_MindMapping 原项目中一共4张导图,分别是如下四本书: 《Java 编程思想》 《Linux 系统命令及 Shell 脚本》 《Maven 实战》 《深入理解 Java 虚拟机》 项目中为mmap格式思维导图源文件,需用专业思维导图软件打开,故导出为图片版本(图片中无note注释),便于观看。 如需要请自行打开并图片另存为;如需源文件请直接访问原项目。 《Java 编程思想》 https://raw.githubusercontent.com/SmallNum/MyPic