技术分享
杨愁心
这个作者很懒,什么都没留下…
展开
-
资深架构师成长路线 -- 设计思想解读开源框架
1、六大原则单一职责原则开闭原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则2、结构型模式桥接模式适配器模式装饰器模式代理模式组合模式3、创建型模式建造者模式单例模式抽象工厂模式工厂方法模式静态工厂模式4、行为型模式模版方法模式策略模式观察者模式责任链模式命令模式访问者模式5、Spring 5源码解读5分钟快速理解Spring核心流程熟练掌握Spring工作常用注解及陷阱后置处理器源码解读BeanFactoryPostProcessorBe原创 2020-06-11 14:23:47 · 186 阅读 · 0 评论 -
JAVA IO 体系学习总结
1.Java Io流的概念,分类,类图。1.1 Java Io流的概念 java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在j...转载 2020-05-29 15:48:53 · 109 阅读 · 0 评论 -
nginx 小功能
跨域问题问题:浏览器拒绝执行其他域名下的 ajax 请求由来:如果浏览器可以在某域名下访问其他域名的内容 来填充自己的页面,那么互联网秩序将混乱。为了防止这种混乱,W3C 组织制定了浏览器安全规范,即 html 页面发起的 ajax 请求仅 限于同域名后段范围,跨域 域名的 ajax 请求不得执行,此谓之 跨域问题。解决方法:Jsonpw3c 指定的规则不允许ajax跨域请求,...原创 2019-12-16 15:32:15 · 177 阅读 · 0 评论 -
nginx 配置文件
main { user nobody; worker_processes 1; # 指定nginx 要开启的进程数,一个进程一个线程 worker_rlimit_nofile 10000; # worker 进程的最大打开文件数限制 event { # 设定nginx 的工作模式 及 连接数上限 use epoll; # epoll 多路复用, nginx支持的工作模...原创 2019-12-16 11:51:26 · 72 阅读 · 0 评论 -
nginx 路由匹配规则
路由- location 的使用语法规则: location [=|~|~*|^~] /uri/ {...}首先匹配=(精确匹配),其次匹配^~(非正则),其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。注意:= 精准匹配命中时,停止location 动作,直接走 精准匹配;一般匹配(含非正则)命中时,先收集所有的普通匹配,...原创 2019-12-16 11:47:08 · 1894 阅读 · 0 评论 -
日志效率对比 -- log4j log42 logback
实例测试不同日志框架性能, 通过修改BaseLogInfo中的线程数和数据总数,可以测试不同量级情况下,性能的差距。依赖:<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> ...原创 2019-04-19 11:55:54 · 987 阅读 · 0 评论 -
Gson 深究
依赖添加<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId>...原创 2019-04-09 19:14:55 · 916 阅读 · 0 评论 -
从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节 --- 转载
最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用。先来试想一个场景,如果你想查找一个...转载 2019-04-08 14:53:28 · 96 阅读 · 0 评论 -
深入解析策略模式
在讲策略模式之前,我们先看一个日常生活中的小例子: 现实生活中我们到商场买东西的时候,卖场往往根据不同的客户制定不同的报价策略,比如针对新客户不打折扣,针对老客户打9折,针对VIP客户打8折... 现在我们要做一个报价管理的模块,简要点就是要针对不同的客户,提供不同的折扣报价。如果是有你来做,你会怎么做?我们很有可能写出下面的代码:package strate...转载 2019-03-27 18:06:59 · 141 阅读 · 0 评论 -
arrayList 线程不安全问题探究
源码分析:arraylist 类:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ /** * 列表元素集合数组 * 如果新建...原创 2019-03-29 16:05:45 · 135 阅读 · 0 评论 -
设计模式 --- 策略模式
Strategy --- 策略模式:模式动机:在软件开发中,常遇到类似问题,实现某一个功能的途径有很多,如查找,排序等,一种常用的方法是"硬编码"(Hard Coding)在一个类中,如果需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,用过if...else... 等条件判断语句来进行选择...原创 2019-03-22 14:59:28 · 179 阅读 · 0 评论 -
设计模式 -- 观察者模式
Observer --- 观察者模式 :定义了对象之间的一对多依赖, 当一个对象改变状态的时候,他所有的依赖都会收到通知并自动更新。观察者模式又叫:发布 - 订阅 (Publish/Subscribe)模式模型 - 视图 (Model - View)模式源 - 监听器 (Source - Listener)模式从属者(Dependents)模式使用原因:减少对象之间的耦合,利于...原创 2019-03-22 10:33:31 · 126 阅读 · 0 评论 -
设计模式 --- 桥接模式
Bridging -- 桥接模式: 将抽象部分与实现部分分离,使他们都可以独立的变化。// 创建桥接接口, 是抽象接口 和 不同实现方式之间的桥梁public interface DrawAPI {public void drawCircle(int x, int y);// 可以继续添加不同的行为// public void drawRedtangle(int x, in...原创 2019-03-22 10:31:23 · 103 阅读 · 0 评论 -
设计模式 -- 装饰器模式
Decorator -- 装饰器模式: 丰富原接口的功能,并且不改动原先的接口。// 创建Shape接口public interface Shape {void draw();}// 创建Shape接口的实体类public class Circle implements Shape {@Overridepublic void draw() { System.ou...原创 2019-03-22 10:30:00 · 82 阅读 · 0 评论 -
设计模式 --- 代理模式
Proxy -- 代理模式 : 为其他对象提供一种代理以控制对这个对象的控制 (静态代理)特点: 实现相同的接口// 公共接口 -- 代理角色public interface Subject{ void request();}// 真正实体 -- 真实角色public class RealSubject implements Subject{ private S...原创 2019-03-22 10:28:51 · 115 阅读 · 0 评论 -
设计模式 --- 适配器模式
Adapter -- 适配器模式: 将一个接口转换成客户希望的另一个接口, 使原本因为接口不兼容而不能在一起工作的两个类可以在一起工作。特点: 兼容代码上特点: 适配器与原来的类有不同的接口,并且实现了需要适配的类的实例举例:// 适配前接口public interface A { public void specificRequest(String ...原创 2019-03-22 10:26:55 · 92 阅读 · 0 评论 -
java简单算法--输出指定层级的菱形图案
输入层级,能打印出指定的菱形 package api;import java.util.Scanner;public class Suanfa { public static void main(String[] args) { Scanner scanner = null; while (true) { System.out.println("输入要打印的菱形的高度...原创 2018-12-09 10:32:39 · 711 阅读 · 0 评论 -
猴子选大王算法
猴子选大王游戏,或者报数游戏。给定人数,选择一个要报的数,报到这个数的人退出报数队列,最后计算出剩下的人,也就选择出的大王。两种方法:1、记录每次遍历报数人群中最后一个人报出的数,计算下次遍历时,偏移多少的人应该退出 (逻辑略复杂,其代码麻烦)2、记录每次的报数,报到指定数就退出队伍,然后从1开始继续报,报到最后一个人再从第一个开始报(逻辑清楚,代码简单) package...原创 2018-12-19 15:04:39 · 286 阅读 · 0 评论 -
javescript ECMAScript Node关系
ECMAScriptECMAScript 是一种脚本语言的标准。 最初制定的目标是给不同浏览器的脚本语言提供一种统一的标准。该语言与web浏览器没有依赖关系,web浏览器只是ECMAScript标准实现的一种宿主环境之一。其他的宿主环境还包括NODE 和 Adobe Flash。ECMAScript是脚本语言的基础,在此基础上可能构建出更完善的脚本语言。ECMAScript标准主要...原创 2018-11-23 15:39:13 · 207 阅读 · 0 评论