- 博客(26)
- 资源 (3)
- 收藏
- 关注
原创 hashCode()与equals()的作用
equals()用于比较对象内容是否相等(重写后)hashCode()只在集合中用到将元素放入集合的流程图Created with Raphaël 2.2.0要放入集合中的对象遍历集合中的所有对象hashCode()是否相等equals()是否相等舍弃将对象插入集合yesnoyesnoJava编程思想 第四版 P496...
2019-03-31 17:50:56 173
转载 【23种设计模式之】4.建造者模式——概述及与工厂模式的比较
参考文章:https://www.cnblogs.com/kangsir/p/6653233.html , https://www.cnblogs.com/snailclimb/p/builderpattern.html练习源码:https://github.com/liaoooyx/Design-Patterns相似点:两者都将具体的、复杂的构建细节隐藏,并通过接口和抽象类实现解耦。不同...
2019-03-31 17:50:26 250
原创 HTTP协议概述及对比
Hyper Text Transfer Protocol,超文本传输协议,属于应用层的面向对象协议HTTP1.0的特点:支持客户/服务器模式。简单快速:请求服务时,只需要发送请求方法和路径。允许传输任意类型数据每次只处理1个请求,收到客户端应答后就断开连接(1.0的缺点)无状态:这次请求和上次无关(每次请求必须附上所有信息)http:// + host + [:port] + [...
2019-03-31 15:50:21 144
原创 OSI网络模型与TCP/IP网络模型
OSI TCP/IP 应用层应用层表示层会话层传输层传输层(TCP)网络层网络层(IP)数据链路层网络接口层物理层1 物理层:处理机械的、电气的过程和接口,以及物理层下的物理传输介质。2 数据链路层:加强物理层功能,使其对网络层显示为一条无错的线路。3 网络层(IP、ICMP、ARP、RARP):由源到目的端的路由选择,可从静态路由表或每一次会话中决定路由。4 传输层(T...
2019-03-31 15:11:27 981
原创 finally中返回值return的问题
try或catch中的return语句的返回值放入线程栈顶部;如果返回值是基本类型,则顶部存放的就是值,如果返回值是引用类型,则顶部存放的是该对象的地址finally中的语句可以修改引用类型的对象,但不能修改基本类型的值不管是基本类型还是引用类型,都可以被finally中返回的“具体值”覆盖return时复制了一个变量,然后返回该变量。所以之后如果在finally中操作的变量是基本类型,不...
2019-03-31 13:10:47 1702
原创 抽象类的4个特点
Java编程思想P171抽象类只能被继承抽象方法必须是public或protected抽象类不能用于创建对象子类必须实现父类的抽象方法,如果没实现,子类也是抽象类其他与普通类相同(可以由构造方法,但只能在子类中通过super()调用。)...
2019-03-31 13:01:34 254
原创 关于URI、URL、URN
URI: Uniform Resource Identifier,统一资源标识符URL:Uniform Resource Locator,统一资源定位器URN: Uniform Resource Name,统一资源命名URI是一种抽象的、高层次的概念,定义统一资源标识,而URL和URN是具体的资源标识方式,URL和URN都属于URI的一种。URI可以是相对的,也可以是绝对的;URL只能是...
2019-03-31 12:48:26 645
原创 instanceof关键字、isInstance()方法、isAssignableFrom()方法
左类是右类或者右类的派生类引用变量 instanceof 类型左类是右类或右类的超类Class类.isInstance(引用变量)Class类.isAssignableFrom(Class类)
2019-03-31 12:31:50 133
原创 关于=和.equals()
关于“=”:对于基本类型而言,“=”比较的是基本类型的值(内容)。对于对象而言,“=”比较的是对象本身(引用地址)。关于.equals().equals()不能直接用于基本类型的比较。对于包装类型,它们的.equals()方法已经被重写,比较的是对象的内容。对于普通类型,.equals()继承自Object类,未被重写时,默认比较对象的引用。以下来自 http://www....
2019-03-30 17:55:31 363
原创 关于引用和对象
对象:每个对象都是某个类(Class)的一个实例(instance)。引用:是用来操纵对象的标识符(标识符实际上是指向了一个对象的引用)Person person声明了一个Person类的引用。person = new Person("张三")使一个引用指向了一个“张三”对象(Person的一个实例)ps. 引用操纵的是对象,而不是直接操纵类,所以必须要让引用指向一个对象(运行时)...
2019-03-30 17:45:10 188
原创 数组有内建的协变类型,而泛型没有
List<Number> list = new List<Integer>是编译错误的;但Number[] array = {new Integer, new Double, new Float}是正确的。解释:两个泛型之间是没有关系的(所以自然没有继承关系)List<Integer>在类型上不等价于List<Number>真正的问题在于...
2019-03-30 17:37:55 182
原创 关于内部类获得外部类对象的引用
内部类调用外部类的非静态方法时,需要通过外部类对象的引用来调用:OuterClass.this.method()以上适用于内部类与外部类方法重名时使用。情况:内部类与外部类的方法重名(参数相同)时,直接调用外部类方法,运行时会出错(溢栈)内部类与外部类的方法重名(参数不同),直接使用方法名调用外部类,编译时会报错。内部类与外部类方法名不同时,内部类可直接调用外部类方法...
2019-03-30 17:32:03 1629
原创 关于多态、绑定、反射、RTTI、反射
多态:消除类型之间的耦合关系(向上转型)重写:运行时多态、引用类型的多态。重载:编译时多态,方法的多态。泛型多态:绑定:将一个方法调用与一个方法主体关联起来前期绑定后期绑定(运行时绑定):Java中所有方法都是通过后期绑定实现多态。RTTI(运行时类型识别,Run Time Type Identification):传统的RTTI通过继承和多态实现,在运行时通过调用超类方法来...
2019-03-30 17:23:30 255
原创 关于方法参数中的“可变长度参数列(Object...obj)”表与“数组(Obejct[] obj)”的区别
方法test(String...str),可以直接通过.test()调用,也可以通过.test("xxx")调用,或.test(new String[]{"a","b"})调用。test(String...str)可以与test()方法重载,当使用.test()调用时,优先调用后者。test(String...str)不能与test(String[] array)重载,会报错:出现重复方法。...
2019-03-30 17:06:05 532
原创 关于.replaceAll(regex.relacement)中“\”的问题
要把str="D:\test\test2\test3"中的\换成\\,str.replaceAll("\\\\","\\\\\\\\")。原因:\在java中式转义符,在正则表达式中也是转义符。该方法实际用的是正则表达式的规则进行匹配。先在java中将\\\\解释为\\,然后在正则表达式中将\\解释为\PS:使用str.replace("\\","\\\\")效果相同,因为repla...
2019-03-30 16:56:28 249
原创 【23种设计模式之】3.单例模式——概述及比较
参考文章:23种设计模式全解析,单例模式的八种写法比较1. 全局字段初始化```public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getInstance(...
2019-03-26 19:52:05 114
原创 【23种设计模式之】0.简单工厂模式,1.工厂方法模式,2、抽象工厂模式——概述及适用场景
参考网站:工厂模式的作用,为什么要用工厂模式?,23种设计模式全解析源码:工厂模式的好处:解耦:把对象的创建和使用的过程分开。工厂类专门负责创建各种产品类,用户只需要考虑使用哪种产品,并通过工厂类创建它。高效:如果创建产品的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码,通过工厂类统一创建可以避免代码重复问题。便于维护:由于创建过程都由工厂统一管理,所以...
2019-03-25 20:27:38 220
原创 Java的四大特性:封装、抽象、继承、多态
封装、抽象、继承、多态封装:封装体现在类上抽象:抽线体现在抽象类上,即将事物共同的行为和属性抽象在一起,封装在一个类中。继承:子类可以继承父类的一些行为和属性。多态:体现在父类可以引用不同的子类对象,从而表现出不同的行为多态还表现为重写、重载和泛型重写是运行时多态,属于引用类型的多态。重载是编译时多态,属于方法的多态。重写需要保持方法名、参数列表和返回类型(协变)一致。重载需要保...
2019-03-22 18:54:14 1172
原创 类的加载和初始化顺序
静态变量->静态块->非静态变量->非静态块->构造器对于继承关系中的类的初始化:父类静态变量->父类静态块->子类静态变量->子类静态块->父类非静态变量->父类非静态块->父类构造器->子类非静态变量->子类非静态块->子类构造器如果在静态块中调用静态方法,在加载时会先运行静态方法,再继续加载。所有...
2019-03-22 16:31:43 150
原创 学习笔记:匿名通信与暗网研究综述
本文仅为作者总结,内容源自论文本身以及相关网络搜索匿名通信与暗网匿名通信指采取一定的措施隐蔽通信流中的通信关系,使窃听者难以获取或推知通信双方的关系及内容。匿名通信的目的就是隐蔽通信双方的身份或通信关系,保护网络用户的个人通信隐私。——MBA智库百科匿名通信是一项技术,用于保护通信双方的隐私,使窃听者无法获取通信双方的关系及内容。匿名通信系统是提供匿名通信服务的一套完整网络,主要由提供加...
2019-03-21 18:42:48 5999 3
原创 Java9 module特性 初识
参考网站:The State of the Module System,Java9模块系统的说明(翻译),Java9 中的 Module, ModulePath 和 ClassPath每个java project中的根目录下都有一个module-info.javamodule [module name] { requires [module]; requires public [modul...
2019-03-21 17:51:31 2590 1
原创 eclipse常用快捷键
ctrl+shift+o 快速导删包ctrl+shift+c 注释ctrl+shift+f 格式化alt+shift+r 重命名ctrl+d 删除行shift+enter 下一行ctrl+shift+enter 上一行
2019-03-20 17:42:57 94
原创 匿名通信攻击技术:主动攻击、被动攻击、单端攻击、端到端攻击
匿名通信攻击技术匿名通信攻击可以分为针对网络流量的攻击:通常基于流量分析技术,即通过嗅探并分析网络通信流量的各自模式,以获取现有价值;针对节点的攻击:主要是匿名通信节点系统和协议存在漏洞的利用。网络流量攻击被动攻击和主动攻击:根据攻击者对通信行为的干涉程度进行划分。攻击者可以被动监听或主动操纵目标流量。单端攻击和端到端攻击:根据威胁模型的不同进行划分,攻击者通过监控或控制发送方或...
2019-03-18 14:57:33 5134 1
原创 macbook air,仅安装win7下开启触控板右键(安装bootcamp异常,或没有触控板选项)
如果通过网上的教程安装完bootcamp后发现选项卡里没有触控板,可以试试本文中记录的步骤
2019-03-07 18:55:00 13814 2
设计模式.xmind
2019-07-16
Headwords-of-the-Academic-Word-List.docx
2019-06-21
高性能网站建设进阶指南
2017-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人