自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(216)
  • 资源 (1)
  • 收藏
  • 关注

原创 7.2 linux shell 管理 : 变量

2020-06-28 14:04:04 183

原创 2.2.4.2 大型网站技术和java中间件-大型网站及其架构演进过程:应用服务器警告高,如何让应用从服务器走向集群:解决Session的问题

2.2.4.2 大型网站技术和java中间件-大型网站及其架构演进过程:应用服务器警告高,如何让应用从服务器走向集群:解决Session的问题影响解决:解决应用服务器变为集群后的Session问题(使用负载均衡)问题:如下图,如果不做操作,-> Browser的请求第一次落到了左边的服务器创建了Session,第二次就可能落到第二个服务器 ...

2020-01-01 00:46:13 309

原创 2.2.5 大型网站技术和java中间件-大型网站及其架构演进过程:数据集读压力变大,读写分离吧

2.2.5 大型网站技术和java中间件-大型网站及其架构演进过程:数据集读压力变大,读写分离吧 场景: 随着业务的发展,数据量和访问量都在增长,很多的业务是读多写少的 ->采用读写分离的方式 带来的影响: 1.数据复制问题 1.1 需要解决数据复制延时问题 1.2 复制过程源和目...

2020-01-01 00:46:09 194

原创 2.2.6 大型网站技术和java中间件-大型网站及其架构演进过程:弥补分布式数据库的不足,引入分布式存储系统

2.2.6 大型网站技术和java中间件-大型网站及其架构演进过程:弥补分布式数据库的不足,引入分布式存储系统常见的分布式存储系统:1.分布式文件系统 1.1 在分布式环境中,由多个节点组成的与单机文件系统一样的文件系统 1.2 是弱格式的,内容需要使用者自己来组织2.分布式key-value系统 2.1 相对分布式文件系统会更加格式化一些3.分布式数据库...

2020-01-01 00:45:55 162

原创 2.2.7 大型网站技术和java中间件-大型网站及其架构演进过程:读写分离后的数据表分离

2.2.7 大型网站技术和java中间件-大型网站及其架构演进过程:读写分离后的数据表分离场景:1.通过读写分离及分布式系统可以降低主库的压力;随着网站的演进,数据库的压力还是在增加解决:数据水平分离+数据垂直分离 2.2.7.1 专库专用->数据垂直分离 垂直分离: 把数据库中的不同的表拆分到不同的数据库中。比如用户,商品,交...

2020-01-01 00:45:52 102

原创 2.2.8 大型网站技术和java中间件-大型网站及其架构演进过程:数据库问题后的应用拆分

2.2.8 大型网站技术和java中间件-大型网站及其架构演进过程:数据库问题后的应用拆分场景随着业务的发展,应用的功能越来越多,应用会越来越大。为了不让应用变大-> 需要把应用分开,把应用变成两个甚至多个 方法1: 根据业务的特性把应用拆开 比如当前应用主要包含3个业务:交易+商品+用户 -> 拆分为两个...

2020-01-01 00:45:41 107

原创 xpath

xpath 获取指定文字标签的父级标签//span[contains(text(), 'Authorized')]/parent::*

2019-10-15 19:16:09 182

原创 正则-匹配多个单词

匹配多个单词\b(State of Formation|Jurisdiction)\b:[\d\D]*?<strong>([\d\D]*?)</strong>

2019-10-14 20:18:18 7370

原创 字符串操作

字符正则"001".replaceAll(".{3}", "http://$0")

2019-10-14 16:50:09 88

原创 chrome xpath

$x(“your_xpath_selector”)

2019-10-14 16:47:52 103

原创 linux 字符处理

https://www.cnblogs.com/nkwy2012/p/6365714.html字符替换 sed -i "s/查找字段/替换字段/g" <file>

2019-10-10 16:05:11 167

原创 3.gradle 打包android

3.gradle 打包android1.生成my-release-key.keystore(根据名字改变)指令 - jdk/bin 下的$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000...

2019-10-08 00:20:55 79

原创 2.在服务器上使用 gradle 打包 android 源码

2.在服务器上使用 gradle 打包 android 源码https://segmentfault.com/a/1190000008395219安装 android-toolsmkdir ~/android && cd ~/androidwget https://dl.google.com/android/repository/tools_r25.2...

2019-10-08 00:12:38 238

原创 1.安装Android gradle

1.安装Android gradle问题:Caused by: com.android.builder.errors.EvalIssueException: Failed to install the following Android SDK packages as some licences have not been accepted. build-tools;28.0.3 And...

2019-10-07 23:57:15 558

原创 原则

原则:DRY(don’t Repeat Yourself)每份知识在一个系统中必须是唯一的,明确的,权威的描述。 (包含逻辑,常量,标准,功能,服务等等)原则:Least Knowledge Principle(最少知道原则) | Law of Demeter(迪米特原则)只和你的朋友说话,不要和陌生人说话原则:OAOO(Only And Only One)要避免代码重复,代码...

2019-10-07 23:40:08 111

原创 11.2 观察者模式(Observer) :java标准库

11.2 观察者模式(Observer) :java标准库package demo.spring.boot.demospringboot.ObserverModel;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import java.util.Observable;import java.util.Observer;...

2019-10-07 23:31:30 104

原创 11.1 观察者模式(Observer) :自定义主题

11.1 观察者模式(Observer) :自定义主题I.定义了对象1:N的依赖关系,这样当一个对象的主题发生变化时,所有依赖于这个对象的相关对象都会被更新;II.被观察的对象叫做Subject(主题)III.实现方式有push和pull(push可能导致接口不能重用,pull是观察者主动查询信息,导致信息不及时)使用接口定义的主题import lombok.extern.slf4j...

2019-10-07 23:30:50 151

原创 10 状态模式(State)

10 状态模式(State)

2019-10-07 23:29:09 243

原创 9 策略模式(Strategy)

9 策略模式(Strategy)

2019-10-07 23:28:31 151

原创 8 组合模式:

8 组合模式:I.针对的是树形结构,为了统一叶子节点和分支节点II.将对象组合成树形结构来体现 部分-整体的层次关系,使用户一致的使用组合对象和单个对象分支节点:包含其他对象的为组对象,也叫组节点|分支节点;叶子节点:不包含其他对象的为终点对象,也叫叶子节点; 根节点 : 第一个节点...

2019-10-07 23:28:08 80

原创 7 外观模式(Facade):

7 外观模式(Facade):比较常用 - Controller,Service就是外观模式

2019-10-07 23:25:21 115

原创 6.3 适配器 :接口适配器模式

6.3 适配器 :接口适配器模式

2019-10-07 23:22:41 113

原创 6.2 适配器 :对象适配器模式

6.2 适配器 :对象适配器模式必要条件I.需要存在的Base类II.需要期望接口IDestIII.需要适配器,-> 实现期望接口import lombok.extern.slf4j.Slf4j;/** * 已经存在的类 */class BaseClass { public int out220() { return 220; }}...

2019-10-07 23:21:44 69

原创 6.1 适配器 :类适配器模式

6.1 适配器 :类适配器模式必要条件I.已经存在的基础类II.期望的接口III.适配器类继承继承类和期望的接口暴露了基础类的接口,增加使用成本import lombok.extern.slf4j.Slf4j;import org.junit.Test;/** * 已经存在的类 */class BaseClass { public int out220() {...

2019-10-07 21:09:17 84

原创 5.2 代理模式(InvocationHandler)

5.2 代理模式(InvocationHandler)InvocationHandler 接口(相当于重写方法)I.InvocationHandler对象集中控制所有代理的方法import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFa...

2019-10-07 21:06:23 182

原创 5.1 代理模式(Proxy)

5.1 代理模式(Proxy)1.proxy 提供了用于创建代理类和实例的静态方法;2.proxy 是所有动态代理类的父类创建代理类的static的方法1.返回代理的java.lang.Class的代理对象I.需要接收类加载器II.需要被代理的接口数组作为参数 public static Class<?> getProxyClass(ClassLoader load...

2019-10-07 21:05:06 249

原创 4. 装饰器模式(Decorator)

装饰器模式(Decorator)优点:比静态继承更加灵活;接口和被装饰的类保持一致,对Client无感 ;使用起来就像没有修饰易用性可以产生叠加效果; 可以重复修饰一个对象,也可以使用不同的装饰器修饰相同的对象,产生叠加效果可以作为AOP的简单实现,在调用被修饰对象之前可以调用其他功能缺点:1.产生许多的小对象2.对象的功能和修饰类相关,不易排错3.特别需要注意覆写...

2019-10-07 20:52:26 99

原创 3.1 工厂模式 : 简单工厂模式

3.1 工厂模式 : 简单工厂模式必要条件I.工厂接口 ->接口解耦:工厂类发送变化,不影响关联的类II.产品接口 ->接口解耦,同上

2019-10-07 20:45:53 96

原创 3 工厂模式

3 工厂模式定义:为创建对象定义一个接口,让子类决定实例化那个类。工厂方法让一个类的实例化延迟至子类。工作模式封装了实例化过程,Client无需关心实例化的细节。使用工厂模式的场景I.client不关心那个具体类,只关心实现的功能;II.创建过程比较复杂;eg.读取配置,初始化其他基础类III.接口有许多实现|抽象类有许多子类,需要为Client写一大床if/else来决定...

2019-10-07 20:44:35 68

原创 2.2.5 单例模式 : 突破多个类加载器

2.2.5 单例模式 : 突破多个类加载器暂未研究 - 这个方法应该可行private static Class getClass(String classname) throws ClassNotFoundException { ClassLoader classLoader = Thread.currentThread().getContextClassLoa...

2019-10-07 20:36:50 358

原创 2.2.4 单例模式 : 突破序列化破坏单例

2.2.4 单例模式 : 突破序列化破坏单例必要条件 //加上一个方法就行private Object readResolve() {//反序列化的时候,会执行这个方法,保障反序列化的唯一return singleton;}import java.io.Serializable;public class Singleton implements Serializable { ...

2019-10-07 20:33:36 109

原创 2.2.3 单例模式 : 懒加载的单例(线程安全):Init on demand holder(在内部类持有)

2.2.3 单例模式 : 懒加载的单例(线程安全):Init on demand holder(在内部类持有)必要条件I.JVM在加载类时,不会加载内部类 II.当代码运行到内部类时,才会加载内部类(懒加载)III.创建的类的逻辑只有static,有线程安全public class Singleton { private String value; public ...

2019-10-07 20:25:02 135

原创 2.2.2 单例模式 : 懒加载的单例(线程安全)one-checking | (双重校验锁)double-check locking

2.2.2 单例模式 : 懒加载的单例(线程安全)one-checking | (双重校验锁)double-check locking必要条件具体见2.2.1 懒加载(线程不安全)当并发时就是把获取唯一实例的接口上加上 synchronized/** * 对外暴露的访问唯一实例的接口 * 只能是static的,因为Client无法创建实例 * 现在是懒加载模式 -> ...

2019-10-07 20:22:56 311

原创 2.2.1 单例模式 : 懒加载的单例(懒汉)(线程不安全)

2.2.1 单例模式 : 懒加载的单例(懒汉)(线程不安全)必须条件和2.1中的简单单例模式基本一致 修改如下: I.成员静态变量将不会创建实例(去掉new Singleton())II.类的初始化由static{…} 迁移到public static Singleton {…} 中执行 III.在publicstatic Singleton {…} 进行判空操作,如果不为null,就新...

2019-10-07 20:08:57 298

原创 2.1 单例模式 : 最简单的单例(饿汉)(线程安全)

2.1 单例模式 : 最简单的单例(饿汉)(线程安全)I.需要构造方法private -> 防止Client创建实例II.内部提供static的变量 -> !static 的变量,Client由于private无法创建(可以采用public static … 来暴露唯一获取的接口)III.变量的初始化使用static {…} 来初始化举例:package demo.sp...

2019-10-07 19:48:41 97

原创 2 单例模式(五种写法)

2 单例模式(五种写法)I.保证系统中一个类只能有一个实例,需要单例模式e.g. 缓存池,数据连接池,应用实例饿汉(线程安全)懒汉 I.线程不安全 II.线程安全 双重校验锁 静态内部类 枚举...

2019-10-07 19:45:46 115

原创 1.3 模板方法:泛型模板+ 函数式编程(Function:去掉接口)

1.3 模板方法:泛型模板+ 函数式编程(Function:去掉接口)package demo.spring.boot.demospringboot;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.List;import java.util.functi...

2019-10-07 19:42:27 467

原创 1.2 模板方法:泛型模板

1.2 模板方法:泛型模板定义:定义一个操作中的算法框架,把一些步骤延迟到子类去实现,可以让子类不需要改变算法结构而重新定义算法举例:泛型模板模板import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.ArrayList;import java.util....

2019-10-07 19:38:20 466

原创 1.1 模板方法 : 传统模板

1.1 模板方法 : 传统模板package demo.spring.boot.demospringboot;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.ArrayList;import java.util.List;import java.ut...

2019-10-07 19:29:38 127

原创 1. 设计模式 - 模板方法

设计模式 - 模板方法定义:定义一个操作中的算法框架,把一些步骤延迟到子类去实现,可以让子类不需要改变算法结构而重新定义算法

2019-10-07 19:28:36 73

demo-websocket-master.zip

java ws

2019-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除