- 博客(15)
- 收藏
- 关注
原创 反射原理之源码
反射原理之源码 本文基于 Java 11 源码进行讲解,不同版本可能会有些许区别 方法一:forName forName 方法有三个重载(一个是 Java 9 后再引入的,此处不讨论) forName(String) public static Class<?> forName(String className) throws ClassNotFoundException { ...
2019-07-20 21:11:21
264
原创 Effective Java – Item 18 复合优先于继承
item18 · 复合优先于继承 此处继承不包括接口继承、包内部使用继承 继承打破了封装性 子类依赖于父类的实现,父类变化时子类会遭破坏 public class InstrumentedHashSet<E> extends HashSet<E> { private int addCount = 0; public InstrumentedHashSet...
2019-07-20 21:10:47
174
原创 Effective Java – Item 17 最小化可变性
item17 · 最小化可变性 不可变对象的优点 不可变对象本质上是线程安全的,它们不要求同步 可以共享不可变对象,甚至也可以共享它们的内部信息 为其他对象提供了大量的构建(?) 无代价地提供了失败的原子性 缺点 每个不同的值都需要一个单独的对象 可以使用可变配套类解决 如 String 的可变配套类是 StringBuilder 不可变原则 不要提供任何会修改对象状态的方法(se...
2019-07-20 21:10:16
189
原创 Effective Java – Item 13 谨慎地覆盖 clone
item13 · 谨慎地覆盖 clone Cloneable 接口的目的是作为对象的一个 mixin 接口,表明这样的对象允许克隆。但,它并没有成功地达到这个目的,它的主要缺陷在于缺少一个 clone 方法,而 Object 的 clone 方法是受保护的。 Cloneable 作用 决定了 Object 中受保护的 clone 方法实现的行为 如果一个类实现了 Cloneable 接口,O...
2019-07-20 21:09:45
180
原创 Effective Java – Item 12 始终要覆盖 toString
item12 · 始终要覆盖 toString 函数原型 /** * Returns a string representation of the object. In general, the * {@code toString} method returns a string that * "textually represents" this obje...
2019-07-20 21:09:16
145
原创 Effective Java – Item 9 try-with-resources 优先于 try-finally
item9 · try-with-resources 优先于 try-finally try-with-resources 可以更好地解决资源关闭问题 例子 static void copy(String src, String dst) throws IOException { try (InputStream in = new FileInputStream(src);...
2019-07-20 21:08:40
142
原创 Effective Java – Item 6 避免创建不必要的对象
item6 · 避免创建不必要的对象 例子 String s = new String("abcd"); // DON'T DO THIS! 上述语句每次被执行的时候都创建一个新的 String 示例,但是这些创建对象的动作全都是不必要的。传递给 String 构造器的参数 ("abcd") 本身就是一个 String 实例。 改进后的版本如下所示: String s = "abcd"...
2019-07-20 21:08:04
178
原创 Effective Java – Item 2 构建器
item2 · 构建器 多于4个初始化参数时考虑使用构建器 例子 public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private...
2019-07-20 21:07:24
135
原创 Effective Java – Item 1 静态工厂
item1 · 静态工厂 静态工厂不是设计模式中的工厂方法 例子 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 优点 静态工厂有名字 /** * Constructs a newly allocated {@code Integer} obj...
2019-07-20 21:06:15
148
原创 理解Java的hashCode和equals方法
最近参加工作室面试,一直被问到一些关于Object类的,赶紧恶补一下,本篇是关于从源码角度理解 Java 的 hashCode 和 equals 方法的。 测试用例 这里新建一个很普通的测试类和一个测试方法。 我们在 HashTest 里面重写了 toString 方法,在输出对象的时候更容易区分。 c...
2019-03-22 00:21:18
215
原创 图书馆管理系统
图书馆管理系统 项目需求 通过Java SE,在线下环境开发设计一个图书馆管理系统,在这个系统中可以实现图书馆中图书信息管理及图书馆工作人员管理等功能。 项目 Github 地址 https://github.com/AlbumenJ/library MySQL表结构 book_category ---------- 书籍种类 book_detail &...
2018-12-17 01:00:52
6125
原创 TIJ学习笔记(三)——零散笔记(1)
这是Thinging in Java学习笔记的第三篇,主要是一些零散的笔记。 不足之处,欢迎斧正。 索引 Java 操作符优先级问题 别名现象 方法调用中的别名问题 操作符提前停止(短路) 字符串连接耗时 goto语句 Java中的跳转 Java 操作符优先级问题 int a = 1; int b = 2; System.out.println(a + b +"结束"); int + int...
2018-10-07 16:55:38
282
原创 TIJ学习笔记(二)——基本类型
这是Thinging in Java学习笔记的第二篇,主要是关于基本类型的。 不足之处,欢迎斧正。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不少人(包括我自己)学到了变量之后会很奇怪Java不是面向对象语言吗,为什么有int这种极具C语言(面向过程语言)气息的变量? &nbsp;&nbsp;&
2018-10-07 12:26:49
428
原创 TIJ学习笔记(一)——OOP
这是Thinging in Java学习笔记的第一篇,主要是写了OOP是什么。 第一次写肯定有许多不足的地方,欢迎斧正。 Object 要了解什么是OOP(Object-oriented programming),首先需要了解什么是Object 下面引用甲骨文官方文档对Object的解释 Real-...
2018-10-06 21:39:25
369
原创 IMA人员管理
IMA人员管理 IMA management 项目需求 1. 部员和部长都可以登陆系统,部长可以进行部员的增删查改等等操作,部员则只能进行查询操作 2. 分为六个部门,除了增删查改操作外,还需要有部门变动的功能 3. 部员要包含 姓名 学号 电话 qq等信息 4. 加入日志功能,可以存储操作日志 项目Github仓库 https://github.com/AlbumenJ/IMA_managem...
2018-10-04 21:46:06
393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人