
java基础
文章平均质量分 67
yyqhwr
这个作者很懒,什么都没留下…
展开
-
策略模式
简介策略模式就是把各个平等的具体实现进行抽象、封装成为独立的算法类,然后通过上下文和具体的算法类来进行交互。各个策略算法都是平等的,地位是一样的,正是由于各个算法的平等性,所以它们才是可以相互替换的。虽然我们可以动态的切换各个策略,但是同一时刻只能使用一个策略。角色策略接口/抽象类策略具体实现类策略上下文类使用策略的客户端(调用者)客户端可以选择具体的策略实现类传入策略上下文(上下文持有策略的引用,作为上下文的属性,以进行对具体策略的调用);客户端可以不选择具体的策略实现类由策略上下原创 2020-08-05 16:42:30 · 112 阅读 · 0 评论 -
深入理解java序列化和反序列化
目录1.定义2. 方法3.自定义的序列化和反序列化策略4. 为什么必须实现Serializable4.使用场景5. 总结1.定义Java序列化是指把Java对象转换为字节序列的过程;Java反序列化是指把字节序列恢复为Java对象的过程。对象序列化保存的是对象的”状态”,即它的成员变量。由此可知,对象序列化不会关注类中的静态变量。2. 方法序列化 //把对象user写入到tempFile文件中 ObjectOutputStream oos = null;原创 2020-06-25 17:32:30 · 231 阅读 · 0 评论 -
深入分析java对象克隆
1.什么是"克隆"?由一个现有对象A,复制生成一个新的对象B的过程(B的初始值是由A对象确定的)。拷贝对象返回的是一个新对象,而不是一个引用。拷贝对象与用 new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。2.浅克隆与深克隆浅拷贝的效果就是拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量和不可变引用变量(比如String类型属性))深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。3.实现克隆的方法实现Cloneable原创 2020-06-25 16:31:13 · 164 阅读 · 0 评论 -
@SuppressWarnings("serial")
比如有个类实现了java.io.Serialize接口:package com.onede4.test;public class TestSerial implements java.io.Serializable {}如果代码仅仅写上这样,放在eclipse里会给你提示一个黄色的警告,为啥呢,就是因为,你实现了Serializable 接口,但是没有给出private static f...原创 2019-03-21 15:08:40 · 346 阅读 · 0 评论 -
dto层与model层的区别
Model层是面向业务的,我们是通过业务来定义Model的。而DTO是面向界面UI的,是通过UI的需求来定义的。 通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model。如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。 需要了解的是,数据传输对象DTO本身并不是业务对象。数据传输对象是根据UI的需求进行设计的,而...原创 2018-10-26 16:50:30 · 4817 阅读 · 0 评论 -
Class的isAssignableFrom方法
https://www.cnblogs.com/hzhuxin/p/7536671.htmlClass类的isAssignableFrom是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下:public native boolean isAssignableFrom(Class<?> cls);由方法签名可...转载 2018-10-25 16:25:47 · 2044 阅读 · 0 评论 -
Java中getResourceAsStream的用法
https://www.cnblogs.com/macwhirr/p/8116583.html首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终...转载 2018-10-25 14:22:42 · 1042 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,...原创 2018-10-19 17:26:48 · 163 阅读 · 0 评论 -
java String ... valuese 什么意思
jdk1.5的新特性:变长变量。其实这种定义就类似一个数据的定义,可以不用给它的长度加以限制,可以传入任意多个参数。比用数据更灵活一些,不会出现一些数组越界等的异常。如:getType(String ...values);调用时,可以getType("a","b","c")等,参数个数没有限制,类型是前面规定的String类型。...原创 2018-10-19 16:43:19 · 830 阅读 · 0 评论 -
Collections.singleton
返回只包含特定对象的集合,集合size为1.String init[] = { "One", "Two", "Three", "One", "Two", "Three" }; List list1 = new ArrayList(Arrays.asList(init)); List list2 = new ArrayList(Arrays.a原创 2018-10-19 16:38:23 · 13474 阅读 · 0 评论 -
Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方。
https://blog.youkuaiyun.com/qq_27093465/article/details/65444622先说明一下好处有哪些:1,如果你想 new 一个空的 List ,而这个 List 以后也不会再添加元素(有大坑,看下面更新),那么就用 Collections.emptyList() 好了。new ArrayList() 或者 new LinkedList() 在创建的...转载 2018-10-19 16:18:42 · 280 阅读 · 0 评论 -
java序列化
http://www.cnblogs.com/szlbm/p/5504166.htmlJava对象表示方式1:序列化、反序列化和transient关键字的作用平时我们在Java内存中的对象,是无 法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即 存储对象中的状态。一个Java对象的表示有各种各样...转载 2018-10-19 15:46:25 · 111 阅读 · 0 评论