自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 mybatis-spring日志问题

mybatis-spring 整合之后存在的日志问题mybatis-spring 整合之后,mybatis的日志不输出,这是由于 spring 默认采用 JUL作为日志工具,而mybatis的输出日志所需的日志等级非常低,而JUL日志输出等级高,因此,mybatis整合到spring无法输出日志/** * 如果要打印 mybatis 执行 sql 的 sql 语句, * 1.只需要在 ...

2020-03-26 15:35:54 567

原创 mybatis-spring 存在的问题

一级缓存和二级缓存/** * 1.一级缓存: * 1.1 一级缓存和线程(session:会话)有关,也就是 不同的线程进行访问同一 sql,他们的一级缓存是不共享的 * 1.2 mybatis 一级缓存失效原因, * 由于 mybatis 整合到 spring 中 * mybatis 的 session 交给 spring 管理 * spring 在执行 sql 时,...

2020-03-26 15:33:20 190

原创 Spring-IOC

IOC什么是IOC* 控制反转:具体实现有:依赖注入和依赖查找spring 编程风格* xml:schemal-based* java:java-based* java config:java config based注入的方式依赖spring* org.springframework spring-context:这个依赖可以完成sp...

2020-03-19 14:52:28 110

原创 代理,自己实现代理

Java实现代理的方式继承代理代理对象继承目标对象,聚合代理在代理对象中传入目标对象,目标对象和代理对象实现同一个接口,代理对象包含目标对象动态代理实现自己的动态代理,生成动态代理类并且返回代理类对象,这里 目标对象只能实现一个接口package test.utils;import javax.tools.JavaCompiler;import java...

2020-03-19 14:51:23 233

原创 Spring AOP

AOP概念术语* Aspect:切面,下面所有元素的集合,它是所有元素的载体,所有元组组成一个切面* Join point:连接点,所需要被增强的方法,例如 login(),这个方法当被AOP增强时,这个方法就叫做连接点* Advice:通知,增强方法相对于执行方法的执行时机(前?后?环绕?)* Pointcut:切入点,是切入点的集合,比如某个类中存在 logi...

2020-03-18 17:21:47 109

原创 Spring注解

Spring- 生命周期回调函数@PostConstruct@PreDestroy测试package test.service;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import o...

2020-03-18 11:36:52 116

原创 AQS

AQS多线程存在数据不一致性volatilesynchronizedJUC包锁分类悲观锁:用于 写多,读少,乐观锁:用于 读多,写少,<版本控制方式>CAS概念CompareAndSetCompareAndSwap:比较交换,一种无锁的原子算法,属于乐观锁基本思想给出一个期望值,与现有值比较,如果相等进行修改,如果不相等,那么就无法...

2020-03-17 11:54:31 141

原创 单例模式

单例模式问题由来:多个线程操作同一对象,要保证对象唯一性解决问题:只实例化一个对象解决思路:实例化过程只实例化一次提供返回实例的方法- 性能指标:线程安全性、性能、懒加载单例模式的分类:饿汉式public class HungerySingleton { // 安全,性能好,非懒加载 private static HungerySingleton i...

2020-03-17 09:14:55 144

原创 Volatile

Volatile 关键字语义分析volatile作用:让其他线程能够马上感知到某一线程多某个变量的修改(1)保证可见性对共享变量的修改,其他的线程马上能感知到不能保证原子性 读、写、(i++)(2)保证有序性重排序(编译阶段、指令优化阶段)输入程序的代码顺序并不是实际执行的顺序重排序后对单线程没有影响,对多线程有影响VolatileHappens-beforevolati...

2020-03-16 21:21:46 84

原创 Synchronized

Synchronized 加锁的方式对方法加锁public synchronized static void accessResource1(){ try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } }反编译 — 加锁方式 使用 ACC_SYNCH...

2020-03-16 17:50:45 96

原创 JMM

Java内存结构Native method stack , 线程私有PC,线程私有方法区,永久代,–(存放,类信息,常量,static,JIT)(信息共享,由于他需要被所有线程读取类信息等),OOMVM stack,线程私有,(当运行时栈内存超出设定的栈大小发生OOM)堆(信息共享,需要被所有线程访问变量)(OOM)Java内存模型 JMM用于指导java运行的规范硬件架构...

2020-03-16 15:04:47 152

原创 滑动窗口

两个指针,分别是 L 和 R当窗口进 数 的时候,R 进位,当窗口 出数的时候,L进位例如,数组内有 a b c,[a b c]按照下面的方式变化窗口首先 L=-1, R=-1R 往右滑动,R=R+1 = 0,R 往右滑动,R=R+1 = 1L 往左滑动,R 不动,L=L+1=0,现在的窗口变为 [b c]问题:得到每个窗口的最大值思路一:遍历窗口,代价是 O(n)思路二:设计一...

2019-04-29 15:14:59 761

原创 BFPRT

解决的问题:在一个无需数组中,找到第 k 个大,或者第 k 个小的数经典思路:类似于快排我们想要 第 200 小的数随机选一个数,假设我们选到的数是300,一次遍历,将小于这个数的放左边,等于放中间,大于放右边,得到 x1 和 x2 的位置,x1=300 x2=350那么 第200小的数 肯定在新数组的 左半部分,我们把左半部分拿出来,再进行这样的划分,最终得到想要的 第 200 小的值...

2019-04-29 15:14:24 902

原创 Manacher算法

问题原型:一个字符串找到最长回文字串例如 121 1221 是回文思路:暴力破解,需要解决奇回文和偶回文的问题奇回文,从第 i 个位置开始,以 i 为中心,向两边扩张,如果发现 i 左右相等,那么回文数量 +2例如 abcba从 i = 1 开始, 无法向左扩展,因此回文长度为 1从 i = 2 开始,向左右扩展,回文长度为 3从 i = 3 开始,向左右扩展,回文长度为 3,再次...

2019-04-29 15:13:35 108

原创 4.瞬时响应:网站高性能架构

网站性能指标:响应时间,吞吐量,TPS,HPS,QPS对于用户和开发人员,对网站性能的感受是不一样的网站性能测试用户视角性能一般是指网页打开速度优化手段优化HTML式样利用浏览器的并发和异步的特性调整浏览器缓存策略使用CDN反向代理让用户轻易地拿到热点,经常访问的内容开发人员视角性能程序本身和子系统的性能包括响应延迟系统吞吐量并发处理能力系统稳定性优化手段缓存...

2019-04-29 15:12:29 215

原创 3.大型网站的核心要素

架构:有关软件整体结构和组建的抽象描述,用于指导大型软件系统各个方面的设计要素:性能、可用性、伸缩性、安全性、扩展性性能:优化:浏览器端:使用浏览器缓存、页面压缩、合理布局页面、减少cooike传输使用CDN:部署一些静态资源到运行商附近应用服务器端:使用本地缓存和分布式缓存使用并发编程、改善内存管理使用消息队列,用户请求放到消息队列,当前请求直接返回给用户数据库端:使用索引、...

2019-04-29 15:11:37 117

原创 2.大型网站的架构模式

网站存在着,高并发,海量数据等问题,网站提出了很多解决方案,这些解决方案在被很多网站中重复使用(因为有效,实用)横向切割和纵向切割横向切割是:分层, 将系统分层:应用层、服务处、数据层总想切割是:分割, 将同一层的不同功能和服务切割出来,形成高内聚低耦合,提高并发能力和功能扩展能力分布式优点再好的计算机,也无法与性能一般,多个计算机相抗衡分布式意味着 更多计算机完成相同功能,...

2019-04-24 16:22:06 108

原创 1.大型网站架构的演化

大型互联网系统的特点高并发,发流量:面对大量并发用户高可用:7 * 24 小时不间断服务海量数据:需要存储,管理海量数据用户分布广泛,网络情况复杂:运营商通信可能困难,网络地域网络情况不同,国际网络延迟安全问题:被攻击,信息泄露渐进式发展:网站都是从无到有,从小到大发展起来的,不要刻意为了 大型网站架构而设计大型网站架构,所有的系统升级都是为了业务,业务一定,追求稳定,只有业务需要发生...

2019-04-24 16:21:18 150

原创 KMP算法

如果要解决问题:有两个字符串 str1,str2,求 str1 是否包含 str2 ,如果包含,求位置------ 一般方法 -------每次从 str2 的 0 位置开始,依次和 str1 匹配例如 aaab 匹配 ab先 从 ab 的 a 开始匹配,可以匹配到 aaab 的 a,但是匹配不到 aaab 的 b从 ab 的 a 开始匹配,匹配 aaab 的第二个 a 开始匹配,这...

2019-04-23 15:10:45 107

原创 牛再生问题(2019阿里笔试第一题)

分析第一年只有一头牛 A第二年:A B(未成熟)第三年:A B(未成熟)C(未成熟)第四年:A B(未成熟)C(未成熟)D(未成熟)第五年:A B C(未成熟) D(未成熟)E(未成熟)F(未成熟)第六年:A B C D(未成熟) E(未成熟) F(未成熟) G(未成熟) H(未成熟)I(未成熟)每年只数为:1 2 3 4 6 9……规律为 F(n) = F(n-1) + F(n-...

2019-04-22 12:58:34 286

原创 IPO问题,最高利润

代价数组 cost[]利润数组 profit[]最多做 k 个项目,且项目不能并行做,也即一次之能做一个项目。也不能重复做相同项目给出初始资金 w,求最后最大收益------- 步骤 -------初始化 所有项目, 项目里面包含 花费 cost 和利润 profit准备一个小根堆,按照花费来建立,花费低的来到小根堆的头部有初始资金 w,依次弹出小根堆的头部,但是要保证弹出的花费低于...

2019-04-21 19:57:16 149

原创 前缀树

建树,数据存储在路径上可以查询 是否包含前缀为 xx 的字符串例如 查询前缀是否包含 be 的字符串,可以查到但是无法查询确定的字符串,例如查询字符串是否含有 be,无法查询,那么需要改进也即,可以在节点位置上添加一条信息,这条信息保存了 有多少个字符串以当前字母结尾的例如 在插入 bef 字符串的时候,b路径的尾端节点置 0 ,因为没有任何一个字符串以 b 结尾同样,e 尾端节点也...

2019-04-21 17:03:12 143

原创 哈希表

时间复杂度:基本上是 O(1)因为可以进行很多优化:例如离线扩容使用时基本很少有扩容的现象特征:相同输入,相同输入不同输入,均匀分布哈希冲突的解决方法:链地址法:数组+链表开放地址法:当前位置被占,就往下移动一位,如果满,就扩容二次哈希:进行二次哈希值计算,用的是平方的一种形式问题:100T的一个文件,每行一个字符串,输出重复的字符串准备1000台机器,进行编号(0-999)...

2019-04-21 15:01:30 109

原创 布隆过滤器

布隆过滤器准备一个 M 长度的整形数组,下标 0 -> M-1准备 k 个独立哈希函数将 已有的 n个 数据依次进行k个哈希函数的计算,每个哈希函数计算的哈希值再 模 m,就能得到 这个这些数据应该在的位置,并将这个位置 涂黑经过 k 次涂黑之后,这个数组最多有 k 个位置被涂黑,最少有 1 个位置被涂黑在将 已有的 n个 已有数据 经过上面的步骤全都加入到数组里,布隆过滤器构建完...

2019-04-21 15:00:57 94

原创 一致性哈希

产生问题负载可能不均衡(加一台机器或者减一台机器)或者本来机器分的就不均匀解决方案:虚拟节点假设有3台机器,m-1,m-2,m-3将 这3台机器 分别划分 1000个节点m-1-1,m1-1-2,…,m-1-1000 m-2-1,m1-2-2,…,m-2-1000 m-3-1,m3-1-2,…,m-3-1000使用虚拟节点争夺环,每个虚拟节点抢占环的位置,争夺数据,争夺到数...

2019-04-21 15:00:21 96

原创 并查集

有 n = 5 个数据,将这5个数据 各自形成一个集合,可以用 list 存储,并且它往上的节点指回自己,指回的节点叫做集合的代表节点如果将 节点 2 挂在 节点1 底下,那么 2 所在集合的代表节点是 1如果 3 也挂在 1 下面,那么 3 所在的代表集合节点 是 1最终形成这样如果两个 节点 的代表节点一样,那么 这两个节点是 同一个集合,否则 不是同一个集合集合的合并过程本来是 ...

2019-04-21 14:58:47 79

原创 计算机网络面试问题

计算机网络面试问题1. 网络七层 和 TCP/IP 四层结构1.1 物理层:透明比特流传输,忽略不同设备之间的差异1.2 数据链路层:将物理层数据封装成帧1.3 网络层:路由操作,IP协议所在层1.4 传输层:TCP和UDP所在的一层1.5 会话层:建立设备之间的连接,https中SSL所在层1.6 表示层:将上面的数据表示为计算机可以理解的,包括数据的压缩解压等等1.7 应用层...

2019-04-07 21:34:24 398

空空如也

空空如也

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

TA关注的人

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