- 博客(18)
- 收藏
- 关注
原创 设计模式——动态代理模式
代理类和被代理类有一个共同的接口,被代理类实现了接口的抽象方法,代理类调用了被代理类的方法,并加入了自己的方法。在main函数中创建代理类对象并调用即可。缺点:请求速度变慢作用:进行访问控制、远程通信、日志、缓存场景:远程代理/*真实类:代理类调用的类。事先不知道这个,用动态代理 */public class RealSubject implements Subject { ...
2018-10-18 21:40:12 143
原创 设计模式——单例模式 双重检验
//饿汉式,等调用时再创建对象public class Single {//也可以写final private static Single instance = null;//这个和下面的方法必须是静态的,这样才能类名.方法来调用方法。用的时候才new对象。 static Object object = new Object(); //否则无法调用方法。 priv...
2018-10-18 21:33:30 281
原创 设计模式——观察者模式
被观察者变化了就把主动把信息告诉监听器,观察者就采取相应措施import java.util.Observable;import java.util.Observer;public class Earth extends Observable { private String weather = "晴朗"; public String getWeather() { ...
2018-10-18 21:31:14 116
原创 设计模式——装饰模式
先选择咖啡品种,再选择往咖啡里加的东西,最后计算出价格。public class Decorator implements Ingredient { private String description = "我只是装饰器,不知道具体的描述"; @Override public String getDescription() { return descr...
2018-10-18 21:28:43 191
原创 设计模式——桥接模式
实现不同人、不同画笔、不同颜料三个类别的桥接//把笔抽象出来abstract class Brush { protected Color c; protected Person p; //不同的笔和颜色有不同的实现方式,因此各自重写抽象方法。 public abstract void paint(); //颜色不需要抽象出来,它通过多态实现即可。 ...
2018-10-18 21:23:38 185
原创 设计模式——适配器模式 类适配器 对象适配器
一个小例子,便于理解,上代码~//这是我们造的。现在想用这个方法。public class Adaptee { public void specialRequest(){ System.out.println("called specificrequest()in Adaptee"); }}//类适配器。对我们想要的方法封装一下,Target就能像之前一样...
2018-10-18 21:19:48 207
原创 生产者消费者--BlockingQueue和wait、notify两种方式实现
阻塞队列BlockingQueue实现import java.util.concurrent.BlockingQueue;public class Consumer implements Runnable { /* BlockingQueue put(e) 和 take() 这两个方法是带阻塞的。 */ BlockingQueue<String...
2018-10-18 20:52:49 765
原创 计算机基础——常见排序算法
如何插入一段漂亮的代码片冒泡排序import java.util.Arrays;import org.junit.Before;import org.junit.Test;public class BubbleSort { private Integer[] integers; // 数组应该是递增的,当递减的时候交换, public static void bubbleSor...
2018-10-18 08:21:22 3436
原创 计算机基础——KMP
/*模式串和子串匹配问题 */public class KMP { public int[] buildNext(char[] s, int[] next) { int i = -1; int j = 0; int length = next.length; while (j < length) { ...
2018-10-17 13:07:32 183 1
原创 自动部署文档
自动部署文档项目的自动部署Jenkins 概念jenkins 是一个独立的、开放源码的自动化服务器,它可以用于自动化与构建、测试、交付 或部署软件相关的各种任务。jenkins 可以通过本地系统包、DOCKER 安装,甚至可以通过安 装 Java 运行时环境(JRE)的任何机器单独运行。Jenkins 目的持续、自动地构建/测试软件项目,实现自动化部署,自动化测试提高测试和软件的部署效 率,也可...
2018-10-17 13:03:11 198
原创 常见网络攻击
网络安全 - 幕布网络安全XSS当用户提交表单的时候输入了错误信息,那么服务端校验不通过,重定向回这个页面,服务端会在该页面后面加上一段脚本程序,只是为了弹出一个消息框。那么这个带了脚本的url进行URLEncode,用户以为是正常的推广链接,一点击,用户的计算机就会执行攻击者的页面。www.xxx.com/login.do?nick="/><script>a...
2018-10-17 12:47:56 757
原创 计算机基础——数据结构
数据结构 - 幕布数据结构栈中缀表达式求值:操作数栈和运算符栈(25+x)*(a*(a+b)+b)中转后:遇到数直接输出数字加空格……后缀表达式求值:25&nbsp; x&nbsp; +&nbsp; a&nbsp; a&nbsp; b&nbsp; +&nbsp; *&nbsp; b&nbsp; +&nbsp;
2018-10-17 12:46:56 245
原创 计算机基础——Linux命令
Linux - 幕布Linux文件权限:rwx,x表示能否进入当前目录,没有该权限也可以查询目录下的文件名列表。rwx对于目录:r代表能否使用ls命令(如果是./test/test1/test2,test1不需要r权限),w表示能否在目录创建文件,x表示能否进入该目录作为工作目录。rwx对于文件:r表示能否查看文件名,w修改文件,x比如执行某个命令(ls)需要x权限,但修改和读...
2018-10-17 12:46:31 127
原创 计算机基础——操作系统
操作系统 - 幕布操作系统线程的状态执行:只有活动就绪才能到执行这一步。就绪:活动阻塞、静止就绪、创建后能到活动就绪这一步。静止阻塞不能到。阻塞(执行到阻塞的原因)请求使用某一资源,比如打印机。启动某种操作,如需要IO输入输出数据。没有新数据,比如等待另一个进程提供数据比如发送进程,没有东西发送,没有工作可做,自我阻塞。挂起:挂起表示活动就绪--&gt;静止就绪,活动阻塞--&...
2018-10-17 12:45:55 245
原创 Java虚拟机
JVM - 幕布JVMHotSpot虚拟机对象的创建过程:1:new时先检查这个类是否已被加载、解析和初始化过。如果没有,要进行类加载过程。2:分配内存:指针碰撞或空闲列表。3:初始化为零值。4:设置对象头的信息:1:类型指针:这个对象是哪个类的实例2:运行时数据:哈希码、对象的GC分代年龄、锁状态标志、线程持有的锁……对象的内存布局:1:对象头:存储对象自身的运行时数据、类型...
2018-10-17 12:44:28 155
原创 Redis设计与实现笔记(第一部分)
redis设计与实现 - 幕布redis设计与实现redis服务器内的数据库redisServer{redisDb *db;:redis默认创建16个数据库,都存放在redisDb这个类型的数组里。dbnum;:数据库个数};redisClient{redisDb *db;:每个redis客户端都有自己的目标数据库作为它的操作对象。};redisDb{dict *dict;:这...
2018-10-17 12:42:37 312 1
原创 计算机基础——MySQL
MySQL - 幕布MySQL架构如果能在查询缓存中找到该查询,就不需要解析优化执行过程,直接返回查询缓存中的结果集。连接/线程处理管理:服务器为每个客户端创建一个线程,连接的查询在这个线程中单独进行。并不会为每个新建的连接创建或者销毁线程,因为服务器会负责缓存线程,因为可以利用线程池中少量的线程服务大量的连接。安全:认证客户端(应用)的用户名、原始主机信息、密码,可以使用安全...
2018-10-17 12:24:13 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人