![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 74
谢广坤后援队
这个作者很懒,什么都没留下…
展开
-
JVM整理
JVM原创 2022-08-18 13:30:22 · 369 阅读 · 0 评论 -
链路追踪Sleuth
Sleuth/zipkin原创 2022-02-25 14:44:46 · 436 阅读 · 0 评论 -
动态规划:给定一个字符串s和一个字符串t,计算在s的子序列中t出现的个数
动态规划:给定一个字符串s和一个字符串t,计算在s的子序列中t出现的个数原创 2022-02-21 18:27:17 · 2164 阅读 · 0 评论 -
常见排序算法
排序算法原创 2022-02-18 16:38:18 · 498 阅读 · 0 评论 -
spring解析假设
spring 实现原创 2022-02-17 22:54:31 · 71 阅读 · 0 评论 -
面试题锦--
1、MySql数据库三范式?第一范式:字段具有原子性、不可再分第二范式:每个实例或者行可以被唯一区分第三范式:一个数据库表中不包含已在其他表中已包含的非主键关键字MySql中ACID事务特性?A:原子性,要么成功要么失败,回滚数据-undologC:一致性,数据库中的完整性约束不能被破坏I:隔离性,多个事务对行数据的操作透明的,互不干扰(MVCC+锁)D:持久性,一旦事务提交,结果永久性(redolog+双写缓冲)MySql的事务隔离级别?读未提交=》脏读读已提交=》不可重原创 2021-10-14 13:51:30 · 321 阅读 · 0 评论 -
Nginx
1、Nginx与Tomcat区别?2、Nginx和Apache HTTP Server Project的区别?Nginx 是轻量级的Http服务器,和Apache HTTP Server 功能完全一样,都是用来处理和响应用户请求的,都是http server最大的区别:Nginx解决了并发的问题,支撑更高的并发量3、HTTP协议的特点简单快捷:不管是通过域名方式还是ip:port方式通信都是可以的灵活:可以发送和接受的数据类型特别丰富(文本、图片、js、json)无连接:http通信都是一次原创 2021-03-17 16:44:41 · 144 阅读 · 0 评论 -
kafka面试题-边学边总结
1、kafka是什么?可以用来做什么?kafka: 消息中间件(MQ类似功能)、消息引擎、分布式实时流处理平台可以用来:大数据领域(网站行为分析、日志聚合、应用监控、流式数据处理、在线和离线数据分析);数据集成(将消息导入MaxCompute、OOS、RDS、Hadoop、HBase等离线数据仓库);流计算集成(与StreamCompute、E-MapReduce、Spark、Storm等流计算引擎集成)2、为什么kafka安装需要依赖Zookeeper?集群管理、节点的管理、admin管理工具、配原创 2021-03-11 16:06:43 · 161 阅读 · 0 评论 -
分布式与高并发-可见性问题-volatile(一)
1、会出现可见性问题的案例1.1、引出可见性问题public class VolatileDemo { public static boolean stop=true; public static void main(String[] args) throws InterruptedException { new Thread(()->{ int i=0; while (stop){原创 2020-11-25 10:57:52 · 264 阅读 · 0 评论 -
分布式与高并发-线程的通信(wait/notify)
1、前言:对象监射器:每一个类里面都会有一个monitor,锁的获取过程->进入抢占锁的过程->如果开起了偏向锁,会走偏向锁的撤销进行重新偏向->如果重新偏向失败的话,进行锁升级进入轻量级锁->然后锁膨胀到重量级锁,然后进行monitor的实现2、场景:#mermaid-svg-pUP4VGFR9kFjOhD0 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-f原创 2020-11-25 09:21:26 · 348 阅读 · 0 评论 -
分布式与高并发-2-Synchronized
1、实例锁1.1、代码public class SynchronizedTest { synchronized void demo1(){ //等价于synchronized(this) 是对这个类的实例进行加锁 try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace();原创 2020-11-23 09:24:52 · 194 阅读 · 0 评论 -
分布式与高并发-1-并发题引
1、代码分析:public class SynTest { private static int count=0; public static void addCount(){ try { Thread.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } count++; } p原创 2020-11-23 08:41:10 · 61 阅读 · 0 评论 -
并行程序设计模式-Future模式
定义:Future模式类似商品订单,客户下单后,卖家在准备商品和物流配送过程需要很多时间,这段时间内客户可以先做其他事,收到订单后,再处理订单;案例:JDK内部实现的Future模式,FutureTask类代码实现:主业务(耗时较长):@Servicepublic class FutureService{ public String dealRealData(String key...原创 2020-04-01 16:31:32 · 130 阅读 · 0 评论 -
设计模式-观察者模式
定义:在单线程中,让一个对象及时得知自身所依赖的状态的变化,用于事件的监听、通知发布等场合,确保观察者在不使用轮询监控的情况下,及时收到相关消息和事件组成:角色作用主题接口被观察对象,当其状态发生改变或者某事件发生时,会将变化通知观察者,用来维护观察者所需依赖的状态...原创 2020-03-24 14:41:59 · 77 阅读 · 0 评论 -
设计模式-装饰者模式
介绍:通过委托机制,复用系统的各个组件,在运行时,将功能组件进行叠加,从而造成一个【超级对象】,使其拥有所有组件功能,可以有效地分离性能组件和功能组件,从而提升模块的可维护性并增加了模块的复用性拓展了解:继承:一种紧密耦合,任何父类的改动都会影响其子类,不利于系统维护委托:松散耦合,只要接口不变,委托类的改动不会影响其上层对象组成:角色作用组件接口装饰者和被装...原创 2020-03-23 17:35:23 · 79 阅读 · 0 评论 -
设计模式-享元模式
定义:在一个系统中存在多个相同的对象,则只需要共享一份对象的拷贝,而不必为每一次使用创建新对象,为提升系统性能而生的设计模式,它的主要作用是复用大对象(重量级对象),节省内存空间和对象创建时间组成:角色作用享元工厂具体享元类,用来维护相同的享元对象,判断某个对象是否已经存在,存在则直接返回该对象,不存在的话则创建该对象抽象享元定义需共享对象的业务接口,并定义需要...原创 2020-03-23 15:19:03 · 82 阅读 · 0 评论 -
设计模式-静态代理模式
定义:使用代理对象完成用户请求,屏蔽用户对真实对象的访问应用场景:因为安全原因,需要屏蔽客户端直接访问真实对象远程调用时,需要使用代理类处理远程方法调用的技术细节为了提升系统性能,对真实对象进行封装,从而达到延迟加载的目的结构:角色作用接口类定义代理类和真实业务类的公共对外方法真实业务类真正实现业务逻辑的类代理类用来代理和封装【真实业务类】...原创 2020-03-18 16:09:50 · 85 阅读 · 0 评论 -
设计模式-单例模式
一、定义它是一种对象创建模式,确保系统一个类只产生一个实例核心在于:通过一个接口返回唯一的对象实例二、模式详解其实大多数笔者会认为单例模式区分为饿汉式和懒汉式,但我这想细分为饿汉式、传统懒汉式、内部类懒汉式饿汉式:public class TestSingle { //饿汉式 //注意private 必须私有 private TestSingle(){ ...原创 2020-03-13 16:36:26 · 86 阅读 · 0 评论 -
JVM调优
一、JVM相关参数-Xmx:应用程序可以使用的最大堆的值;指新生代和老年代大小之和;当系统堆内存大于该值时,会抛出OutOfMemoryError错误-Xms:系统最小堆空间;JVM启动所占据操作系统内存大小,指系统启动时,就向操作系统申请的内存大小,当系统内存不断扩大,超过Xms时,JVM才会申请扩容;-Xmn:新生代大小;新生代越大,老年代大小越小,因为老年代可以理解为是新年代退休下来...原创 2020-03-12 16:30:57 · 124 阅读 · 0 评论 -
JVM调优常见栈异常-StackOverflowError
一、异常场景StackOverflowError:在栈深度大于可用的栈深度时,会抛出此异常,在虚拟机设置中-Xss参数是用来设置栈大小的,该问题常见于递归中,一旦递归深度过高或者函数中局部变量过多,则有可能会出现此问题二、影响因素局部变量 public static void testStackOverFlow(long a,long b,long c){ lon...原创 2020-03-10 10:08:35 · 764 阅读 · 0 评论 -
java 生成zip压缩文件
1、案例场景:springBoot、前后端分离项目,微服务docker部署2、要求:文件后端不落地,即不生成临时文件3、代码实现:(1):涉及主要包:java.util.zip.ZipOutputStream;(2):代码实现:生成ZipOutputStreamController:@PostMapping(value = "/beginExp") public void b...原创 2019-12-10 18:22:56 · 350 阅读 · 0 评论 -
List(笔记)
1.1:Vector和ArrayList性能上相差不多,但是Vector是线程安全的,二者都是内部数组操作;LinkedList:循环双向链表数据1.2:ArrayList的增删改,都会导致修改的位置后面的内容重新排序(会导致效率下降,修改的位置越靠前效率越低),而且如果超过初始值时,自动扩容会进行大量的数组复制(System.arraycopy());而LinkedList是双向循环的,add...原创 2019-12-10 17:08:35 · 75 阅读 · 0 评论 -
Map学习(笔记)
1、HashMap 底层数据结构使用的时Entry数组(key,value,next,hash),hash值映射到value的内存地址(数组的下标索引),由于底部是数组,所以原创 2019-11-15 09:46:57 · 146 阅读 · 0 评论 -
java学习 split与indexOf切割字符串时性能比较(学习笔记)
最近在看葛一鸣老师的书籍,文中指出在切割大字符串时indexOf和subString的综合使用效率要高于split,今天特意做了个实验,发现在连续一万次的高频调用下,indexOf和subString来切割字符串的确效率高于subString,但是如果使用不频繁的情况下还是觉得spilt更好一些,不过频繁调用subString要预防内存泄露的情况...原创 2019-11-14 09:20:43 · 2372 阅读 · 4 评论