自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 xpath

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

2019-10-15 19:16:09 212

原创 正则-匹配多个单词

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

2019-10-14 20:18:18 7667

原创 字符串操作

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

2019-10-14 16:50:09 97

原创 chrome xpath

$x(“your_xpath_selector”)

2019-10-14 16:47:52 119

原创 linux 字符处理

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

2019-10-10 16:05:11 181

原创 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 93

原创 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 253

原创 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 628

原创 原则

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

2019-10-07 23:40:08 121

原创 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 110

原创 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 163

原创 10 状态模式(State)

10 状态模式(State)

2019-10-07 23:29:09 255

原创 9 策略模式(Strategy)

9 策略模式(Strategy)

2019-10-07 23:28:31 159

原创 8 组合模式:

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

2019-10-07 23:28:08 85

原创 7 外观模式(Facade):

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

2019-10-07 23:25:21 133

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

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

2019-10-07 23:22:41 127

原创 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 79

原创 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 96

原创 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 199

原创 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 268

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

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

2019-10-07 20:52:26 109

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

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

2019-10-07 20:45:53 111

原创 3 工厂模式

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

2019-10-07 20:44:35 79

原创 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 397

原创 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 121

原创 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 149

原创 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 337

原创 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 311

原创 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 126

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

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

2019-10-07 19:45:46 120

原创 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 499

原创 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 501

原创 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 141

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

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

2019-10-07 19:28:36 81

原创 2.2.9 大型网站技术和java中间件-大型网站及其架构演进过程:初识消息中间件

2.2.9 大型网站技术和java中间件-大型网站及其架构演进过程:初识消息中间件MOM:Message-oriented middleware 消息中间件是在分布式系统中完成消息的发送和接收的基础软件优点: 异步+解耦 应用A和应用B都和消息中间件打交道,两个应用之间不直接联系 -> 完成了解耦 收发消息双方都不知道对方的存在,也不受影...

2019-10-07 14:25:53 147

原创 3.大型网站技术和java中间件-构建java中间件

3.大型网站技术和java中间件-构建java中间件

2019-10-07 14:25:43 392

原创 4. 大型网站技术和java中间件-服务框架

4. 大型网站技术和java中间件-服务框架

2019-10-07 14:25:33 183

原创 3.1 大型网站技术和java中间件-构建java中间件:java中间件的定义

3.1 大型网站技术和java中间件-构建java中间件:java中间件的定义定义:1.中间件为软件应用提供了操作系统提供的服务外的服务2.中间件不是操作系统的一部分,也不是应用的一部分;是能够让软件开发者方便的处理通信,输入和输出,能够专注在自己的应用的部分三种中间件:1.远程调用和对象访问中间件 主要解决分布式下应用的相互访问问题2.消息中间件 解决应...

2019-10-07 14:25:20 162

原创 4.1 大型网站技术和java中间件-服务框架 :网站功能丰富后的困境和应对

4.1 大型网站技术和java中间件-服务框架 :网站功能丰富后的困境和应对 场景: 当网站处于下面的结构时,随着网站的规模变大 ->每个应用的都变得复杂,臃肿(会有重复代码,冗余代码) (虽然可以使用共享库的方式,但是应用起来不方便) 优点: 1.实现的成本低,整体容易把控...

2019-10-07 14:25:10 102

原创 4.2 大型网站技术和java中间件-服务框架 : 服务框架的设计和实现

4.2 大型网站技术和java中间件-服务框架 : 服务框架的设计和实现WebApp和Service之间,通过服务框架解决通信问题

2019-10-07 14:24:58 191

demo-websocket-master.zip

java ws

2019-11-21

空空如也

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

TA关注的人

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