- 博客(15)
- 收藏
- 关注
原创 反射原理之源码
反射原理之源码本文基于 Java 11 源码进行讲解,不同版本可能会有些许区别方法一:forNameforName 方法有三个重载(一个是 Java 9 后再引入的,此处不讨论)forName(String)public static Class<?> forName(String className) throws ClassNotFoundException { ...
2019-07-20 21:11:21 216
原创 Effective Java – Item 18 复合优先于继承
item18 · 复合优先于继承此处继承不包括接口继承、包内部使用继承继承打破了封装性子类依赖于父类的实现,父类变化时子类会遭破坏public class InstrumentedHashSet<E> extends HashSet<E> { private int addCount = 0; public InstrumentedHashSet...
2019-07-20 21:10:47 139
原创 Effective Java – Item 17 最小化可变性
item17 · 最小化可变性不可变对象的优点不可变对象本质上是线程安全的,它们不要求同步可以共享不可变对象,甚至也可以共享它们的内部信息为其他对象提供了大量的构建(?)无代价地提供了失败的原子性缺点每个不同的值都需要一个单独的对象可以使用可变配套类解决如 String 的可变配套类是 StringBuilder不可变原则不要提供任何会修改对象状态的方法(se...
2019-07-20 21:10:16 148
原创 Effective Java – Item 13 谨慎地覆盖 clone
item13 · 谨慎地覆盖 cloneCloneable 接口的目的是作为对象的一个 mixin 接口,表明这样的对象允许克隆。但,它并没有成功地达到这个目的,它的主要缺陷在于缺少一个 clone 方法,而 Object 的 clone 方法是受保护的。Cloneable 作用决定了 Object 中受保护的 clone 方法实现的行为如果一个类实现了 Cloneable 接口,O...
2019-07-20 21:09:45 139
原创 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 107
原创 Effective Java – Item 9 try-with-resources 优先于 try-finally
item9 · try-with-resources 优先于 try-finallytry-with-resources 可以更好地解决资源关闭问题例子 static void copy(String src, String dst) throws IOException { try (InputStream in = new FileInputStream(src);...
2019-07-20 21:08:40 109
原创 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 134
原创 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 103
原创 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 121
原创 理解Java的hashCode和equals方法
最近参加工作室面试,一直被问到一些关于Object类的,赶紧恶补一下,本篇是关于从源码角度理解 Java 的 hashCode 和 equals 方法的。测试用例 这里新建一个很普通的测试类和一个测试方法。 我们在 HashTest 里面重写了 toString 方法,在输出对象的时候更容易区分。c...
2019-03-22 00:21:18 175
原创 图书馆管理系统
图书馆管理系统项目需求通过Java SE,在线下环境开发设计一个图书馆管理系统,在这个系统中可以实现图书馆中图书信息管理及图书馆工作人员管理等功能。项目 Github 地址https://github.com/AlbumenJ/libraryMySQL表结构book_category ---------- 书籍种类book_detail &...
2018-12-17 01:00:52 6034
原创 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 240
原创 TIJ学习笔记(二)——基本类型
这是Thinging in Java学习笔记的第二篇,主要是关于基本类型的。不足之处,欢迎斧正。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不少人(包括我自己)学到了变量之后会很奇怪Java不是面向对象语言吗,为什么有int这种极具C语言(面向过程语言)气息的变量?&nbsp;&nbsp;&
2018-10-07 12:26:49 365
原创 TIJ学习笔记(一)——OOP
这是Thinging in Java学习笔记的第一篇,主要是写了OOP是什么。第一次写肯定有许多不足的地方,欢迎斧正。Object 要了解什么是OOP(Object-oriented programming),首先需要了解什么是Object下面引用甲骨文官方文档对Object的解释Real-...
2018-10-06 21:39:25 325
原创 IMA人员管理
IMA人员管理IMA management项目需求1. 部员和部长都可以登陆系统,部长可以进行部员的增删查改等等操作,部员则只能进行查询操作2. 分为六个部门,除了增删查改操作外,还需要有部门变动的功能3. 部员要包含 姓名 学号 电话 qq等信息4. 加入日志功能,可以存储操作日志项目Github仓库https://github.com/AlbumenJ/IMA_managem...
2018-10-04 21:46:06 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人