- 博客(11)
- 资源 (8)
- 收藏
- 关注
原创 《Effective Java》阅读笔记 18接口优于抽象类
接口和抽象类抽象类允许某些方法的实现,但是接口不允许(JDK 1.8 已经运行了)现有类必须成为抽象类的子类,但是只能单继承,接口可以多继承抽象类小优势抽象类并非一无是处,它的改变就比接口要简易的多,实际使用时也是体验很好的一种设计方法,不过抽象类的使用也要有所衡量,只有在确实是属于一个类别的类时才好去使用抽象类,否则就违背了我们的编程原则接口优点现有类可以很容易被更新,以实现新的接口只需要在接口中添加方法就可以了接口是定义 mixin (混合类型)的理想选择mixin:类除了
2021-05-21 19:34:26 327 2
原创 《Effective Java》阅读笔记 17要么为继承而设计,并提供文档,要么就禁止继承
面向对象编程,从一开始被洗脑难免在上手写代码时都会首先思考有没有公共方法啊,能不能把两个类抽象成一个父类再继承啊等,慎重使用继承,当要使用继承时一定要在文档注释中写明重写这个方法会给其他方法带来什么影响。书中给出建议如果类并不是为了继承而生,那么这个类应该用final修饰禁止子类化。1.继承的缺陷对于为了继承而设计的类,唯一的测试方法就是编写子类。为了继承,类还必须遵守其他一些约束。构造器绝不能调用可被覆盖的方法,无论是直接调用还是间接调用。无论是clone还是readObject,都不可以调用可
2021-05-21 18:01:05 169
原创 一篇让你熟练掌握Java常用工具包(全网最全)
Apache Commons类库在日常工作中,我们经常要使用到一些开源工具包,比如String,Date等等。有时候我们并不清楚有这些工具类的存在,造成在开发过程中重新实现导致时间浪费,且开发的代码质量不佳。而apache其实已经提供了系列的工具包给我们使用,只是大多数人,平时没有注意到。这个系列我将带领大家熟悉这些常用的工具包,让大家熟悉Apache都给我们提供了那些常用的工具类和方法……工具名称作用BeanUtils对Java Bean进行各种操作,复制对象,属性Code
2021-05-20 13:41:54 3703 4
原创 《Effective Java》阅读笔记 15使可变性最小化
1.不可变类的优势不可变类只是其实例不能被修改的类。不可变的类比可变类更加易于设计、实现和使用。它们不容易出错,且更加安全。Java 平台类库包含许多不可变的类,包括 String 类、基本类型包装类以及 BigInteger 类和 BigDecimal 类。 有很多很好的理由:不可变类比可变类更易于设计,实现和使用。 他们不容易出错,并且更安全。2.如何设计不可变类1.不要提供任何会修改对象状态的方法。2.保证类不会被扩展。3.使所有的域都是 final 的。4.使所有的域都是私有的。5.
2021-05-19 20:11:45 238 2
原创 《代码整洁之道》阅读笔记 13并发(编写整洁的并发代码建议)
“对象是过程的抽象,线程时调度的抽象。”——James O Coplien1.为什么要并发1.并发是一种解耦策略,它帮助我们把做什么(目的)和何时做(时机)分解开2.相对于单线程的目的和时机的紧密耦合,解耦目的与时机能明显地改进应用程序的吞吐量和结构3.单线程程序许多时间花在等待web套接字I/O结束上面,通过采用同时访问多个站点的多线程算法,就能改进性能4.同时也存在一些副作用并发总能改进性能:只在多个线程或处理器之间能分享大量等待时间的时候管用编写并发程序无需修改设计:可能与单线程系统
2021-05-10 17:38:53 269
原创 《代码整洁之道》阅读笔记 12迭进
系统的迭代式演进1.通过迭进设计达到整洁目的运行所有测试不可重复表达程序员的意图尽可能减少类和方法的数量以上规则按其重要程序排列2.简单设计原则1:运行所有测试设计必须制造出如预期一般工作的系统,这是首要因素全面测试并持续通过所有测试的系统,就是可测试的系统,不可验证的系统,绝不应该部署上线只要系统可测试,就会导向保持类短小且目的单一的设计方案紧耦合的代码难以编写测试遵循有关编写测试并持续运行测试的简单、明确的规则,系统就会更贴近OO低耦合度、高内聚度的目标,编写测试引致更好
2021-05-08 16:02:12 276
原创 N叉树的最大宽度
这里的思路是N叉树的层序遍历(递归法)/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _val; children = _children; }
2021-05-08 10:10:21 424 3
原创 计算器
题目描述给定一个字符串形式的计算表达式,其中只包含数字和加+、减-、乘*、除/四种运算符,乘除计算优先级高于加减。请对该计算表达式求值,并返回计算结果。如果在计算过程中遇到除零,则返回字符串error。解答要求时间限制: 1000ms, 内存限制: 64MB输入输出输入一个字符串形式的计算表达式,长度范围:[1,100]用例保证,输入数字和中间及最终计算结果的值都是整数,且在int型范围内。输出一个10进制整数; 或字符串error样例输入样例11+2*3-100/2输出样例1
2021-05-08 10:01:26 688
原创 手写内存块
题目描述请实现一个简易内存池,根据请求命令完成内存分配和释放。内存池支持两种操作命令,REQUEST和RELEASE,其格式为:REQUEST=请求的内存大小 表示请求分配指定大小内存,如果分配成功,返回分配到的内存首地址;如果内存不足,或指定的大小为0,则输出error。RELEASE=释放的内存首地址 表示释放掉之前分配的内存,释放成功无需输出,如果释放不存在的首地址则输出error。注意:1.内存池总大小为100字节。2.内存池地址分配必须是连续内存,并优先从低地址分配。3.内存释放后
2021-05-08 09:54:00 1303
原创 手写DHCP服务器(实现简单的DHCP服务器)
题目描述DHCP服务器的功能是为每一个MAC地址分配唯一的IP地址。现假设:分配的IP地址范围从 192.168.0.0 到 192.168.0.255 总共256个可用地址(以点分十进制表示)。请实现一个简易的DHCP服务器,功能如下:分配Request:根据输入的MAC地址分配IP地址池中的IP地址:如果对应的IP已分配并未释放,则为重复申请,直接返回对应已分配的IP地址。如果一个MAC地址已申请过并已释放,即:当前未分配IP地址,则为再申请,优先分配最近一次曾经为其分配过的IP地址,请返回此地
2021-05-08 09:50:50 2126
原创 《代码整洁之道》阅读笔记 11系统
“Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test.”(复杂要人命,它消磨开发者的生命,让产品难于规划、构建和测试)1.如何建造一个城市1.每个城市都有一组人管理不同的部分,有人负责全局,其他人负责细节2.深化出恰当的抽象等级和模块,好让个人和他们所管理的“组件”即便在不了解全局时也能有效地运转2.将系统的构造与使用分开
2021-05-06 16:35:10 370
jianli模板(简历大全).txt
2019-09-24
generatorSqlmapCustom.rar
2019-09-22
数据结构(20集)java版本附源码.txt
2019-09-15
git视频mianfei完整版.txt
2019-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人