自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池

线程池的简介线程池可以看成是线程的集合,之所以推荐使用线程池是因为当并发的线程数量很多的时候,没个线程执行一段时间之后,任务就结束了,这样频繁的创建线程会大大的降低系统的效率,因为频繁的创建线程和销毁销毁线程需要时间。线程池的APIjdk提供Excutor框架在使用线程池提供任务提交额任务执行分离开来的机制(解耦)线程池的总体API架构Executor接口ExecutorSer...

2020-03-01 12:44:22 134

转载 JVM

JVM主要流程图Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件编译时期-语法糖语法糖可以看做是编译器实现的一些“小把戏”,这些“小把戏”可能使得效率大大提升其中最值得说的就是泛型了,这个语法糖可以说被我们经常使用的泛型只会在Java源码中存在,编译过后会被替换为原来的原生类型(Row Type,也称为裸类型)。这个过程叫做...

2020-01-16 16:06:46 221

原创 Java中线程状态转换

Java中线程状态转换在现在得操作系统中,线程被视为一种轻量级得进程,所操作系统得线程状态其实和操作系统进程得状态时一致得![系统进程状态转换图.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTI0NjkxMC8xNTkzNzQ3OTAwMjIyLTZmMmQ2MDZlLTMwMzQtNDg2My05NzUwLTQzYTk1OGNjODk1Mi5wbmc?x-oss-pr

2020-07-03 17:18:12 271

原创 idea中Java版本切换

idea中Java版本切换有时候,我们可能需要在不同的Java版本中去测试或者查看源码,idea可以让我们修改Java的版本前提:你必须下载安装好对于的Java版本解决:javac: 无效的目标发行版: 1.8原因:项目的JDK版本不对Mac下快捷键cmd+;![iShot2020-05-29上午08.20.59.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTI0Njk

2020-05-29 08:35:14 3557

原创 Cron表达式

Cron表达式Cron表达式时一个字符串,字符串一般以5个或者6个字符串隔开,分成6个或者7个域域每个域代表一个含义,Cron有如下两种语法格式seconds minutes hours dayOfMonth month dayOfWeek yearseconds minutes hours dayOfMonth month dayOfWeek每个域可出现的字符如下:seconds:可出现,-/四个字符,有效范围为0-59的整数minutes:可出现,-/四个字符,有效范围为0-59的整数hou

2020-05-27 16:41:37 256

原创 Java程序在运行cmd命令mysqldump的时候失效的原因

在Java程序中执行cmd命令由于备份时的cmd失效程序并没有抛出什么异常,但是就是执行不成功,我把语句给打印出来,发现并没有什么问题,把打印出来的语句在cmd中执行,发现还是正常的执行语句:String string = mysqldump -hlocalhost -uroot -p123 kite > kite.sqlProcess process = Runtime.getRuntime().exec(string);在经过了大量资料查询和测试之后,发现在Java中的>无效S

2020-05-26 19:31:30 1265 5

原创 Java对象的四种引用

介绍从JDK1.2开始,设计人员把对象的引用细分成强引用,软引用,弱引用,虚引用四个级别,细分的准则体现在GC回收的优先级上:强引用>软引用>弱引用>虚引用从JDK1.2,CG垃圾回收器回收对象时,对象的有效性分析不仅仅是需要考虑对象可达性,还序号考虑对象的引用强度,从而使程序可以更加灵活地控制对象的生命周期,对象的有效性=可达性+引用类型强引用强引用表示一个对象处在有用和必须的状态,是使用最为普遍的引用。如果一个对象具有强引用,那么垃圾回收器绝不会回收他,就算内存不足的情况下,J

2020-05-22 15:51:08 165

原创 设计模式之模板方法分式

概念定义一个操作中的算法骨架,而将这些步骤延迟到子类中去,模板方法使得子类可以不改变一个孙发的结构即可重新定义该算法的某些特定的步骤具体的实现假设老师在黑板上出了一套题,让学生A和学生B将黑板上的题目抄下来做好了交上去给老师进行批改。但是学生很有可能因为一不小心将题目抄错了而将答案选错,这样就会让老师误以为这位同学没有掌握。并且,当老师改了黑板上的题目后,那么这两个同学也要跟着去修改,非常的麻烦。那么怎样解决这些问题呢?其实老师将题目出好制作一份试卷,然后将这个试卷打印多份发给学生,这样,学生拿到的

2020-05-22 13:51:21 212

原创 关于责任链模式的实践

责任链模式是干什么用的?避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。具体使用的场景多个对象可以同时处理同一个请求可动态指定一组对象处理请求优点降低耦合,将请求的发送者和接收者解耦简化了对象,使得对象不需要知道链的结构增强给对象指派责任的灵活性,可以通过改变链内的成员的调用顺序,允许动态的新增和删除责任增加新的请求处理列比较方便缺点多个对象可以同时处理同一个对象,具体那个对象处理该请求需要在

2020-05-21 16:42:02 186 1

原创 关于docker

基本概念imagecontainerrepository镜像(image)一个特殊的文件系统操作系统内部分为内核和用户空间对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持,而docker镜像,就相当于一个root文件系统docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(匿名类、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变docker在设计时,就充分利用

2020-05-17 20:00:40 144

转载 协同过滤算法

什么是协同过滤算法这是一个推荐算法,举个简单的例子就是你想去看电影了,但是你不知道该看什么,这个时候你就会去问你比较亲近的朋友最近什么电影好看,这就是协同过滤的核心思想协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你public class 协同算法 { public static void main(String[] args) { /* * 输入用户--

2020-05-16 22:47:09 503

原创 常用的几个JUC工具类

CountDownLatchCountDownLatch初始化的时候给定一个计数,每次调用countDown计数减一当计数未到达0之前调用await方法阻塞,直到计数减到0使用场景,多用于划分任务由多个线程执行,例如,我们要写一个爬虫,需要爬取每个电影的前五页短评,可以划分五个线程来处理数据,通过latch.swait保证全部完成在返回public class CountDownLatch { public void latch() throws InterruptedException {

2020-05-12 23:08:50 261

原创 面试官:谈谈对SpringBoot的理解吧

从Spring谈起Spring是对重量级企业开发框架EJB的代替品。Spring提供了一种简单的方法通过依赖注入和面向切面编程,使用简单的Java对象实现了EJB的功能但是虽然组件代码是轻量级的,但是配置确是重量级的,需要大量的xml,Spring2.5引入了基于注解的组件扫描,消除了大量针对程序自身组件的显式xml配置,Spring3.0引入基于Java的配置,这是一种类型安全的可重构配置方式,可以代替xml尽管如此,我们依然没能逃脱配置的魔爪,开启某些Spring的特性的时候,依然需要显式的配置,

2020-05-10 15:02:31 7973

原创 当你修改一个对象,想要同时修改与其相关的对象的时候,请记住有一种设计模式叫观察者模式

定义当对象间存在一对多关系时,使用观察者模式,比如当一个对象被修改时,则会自动通知他的依赖对象,观察者模式属于行为型模式意图定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都会得到通知并自动更新解决的问题一个对象状态改变给其他对象通知的问题,而且要考虑易用和低耦合,保证高度的协作优点观察者和被观察者是抽象耦合的建立一套触发机制缺点如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都会通知,会花费很多时间如果观察者和观察目标之间存在循环依

2020-05-08 20:56:51 1608

原创 几种分布式事务实现的方法

两阶段提交(2PC)两阶段提交(Two-phase Commit,1PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者要真正执行事务运行过程准备阶段协调者询问参与者是否执行成功,参与者发回事务执行结果提交阶段如果事务在每个参与者都执行成功,事务协调者发送通知让参与者提交事务,否则协调者通知参与者回滚事务需要注意的是,在准备阶段,参与者执行事务,...

2020-05-07 20:54:40 816

原创 不就是个贪心的算法吗?

贪心算法的步骤将优化问题转化成这样一个问题,即先做出选择,在解决剩下的一个子问题证明原问题总是有一个最优解是贪心算法选择得到的,从而说明贪心选择的安全说明在做出贪心选择中,剩下的子问题具有这样的一个特性:如果将子问题的最优解和我所做的贪心选择联合起来,可以得到一个更加负责的动态规划解剪绳子给你一个长度为n的绳子,请把绳子剪成m段(n,m都是整数,且大于1),每段绳子的长度即为k【0】...

2020-05-04 13:48:43 177

原创 单例模式?这个你都不了解,你面个*个试

介绍该模式涉及单一的类,该类负责创建自己的对象,同时保证只有单个对象被创建,这个类提供一种访问其唯一的对象的方式,不需要实例化该类的对象单例类只有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他的对象提供这个实例优点内存中只有一个实例,减少内存的开销,由其是频繁的创建和销毁实例避免对资源的多重占用缺点没用接口,没用继承,与单一责任原则冲突,一个类应该关心内部...

2020-04-30 20:38:53 227

原创 开启C#学习

介绍面向对象的语言,而且进一步支持面向组件的编程垃圾回收:自动回收未使用的对象占用的内存异常处理:提供一种结构化的可拓展的方法用于错误检测恢复类型安全设计:不可能从未初始化的变量中进行读取、将数组索引在其边界之外、执行未检查的类型转换统一类型系统,所有类型继承object版本控制:当引入新版依赖的时候,用这些语言编写的程序会出现不必要的中断现象,C#控制版本的方面Virtual和ov...

2020-04-29 20:16:21 114

转载 @Transactional失效的几种情况

可以作用的地方类:表示该类的所有public方法都会配置相同的事务属性信息方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务属性信息接口:不推荐使用,一旦注解在interface上并且配置了Spring AOP使用CGLib动态代理,将会导致@Transactional失效属性propagation代表事务的...

2020-04-24 21:38:08 2055

原创 第19天

信仰,是你对一个人、一个道理的崇拜和信任,它让你知道自己是谁,让你忘了自己的缺陷,看见自己的价值,知道自己值得活着,信仰让你有力量,让你永不放弃-----长安十二时辰·萧规愿我们的梦想都不会辜负我们...

2020-04-17 22:36:22 119

原创 17天

终于大致上完成了对于门禁机下发的任务,现在还需要暂存一下设备的信息,终于能下Java的代码了,这段时间我发现《长安十二时辰》还挺好看,看完学习,????????????...

2020-04-15 18:51:17 122

原创 第16天

没想到就这么一个新增一条消息居然能困我两天之久,哎,菜成狗,还是吃了没经验的锅。这两天都搞得我没什么时间了,以后还是应该更仔细一点。...

2020-04-14 19:04:59 75

原创 第十三天,怀念Java

最近转学C#了。哎,真实一言难尽啊,学了C#,我才真正的了解了Spring有多好,IOC,约定大于配置有多爽,C#伴随着大量的if-else和各种对象的创建组装,他也许并没有多么复杂的逻辑,但他就是能恶心你。以前我一直觉得Hikvision怎么说都是一个大厂吧,毕竟安防监控的老大吧,SDK配套的demo好歹能让人理解一点吧,也许只是因为我初学者真的比较菜,反正他的命名规范我是看不懂,变量字面的...

2020-04-11 13:41:04 85

原创 第23天,记录一下平时的SQL注意事项

MySQL单表记录数过大的时候,增删改查的性能都会急剧下降,下面记录一下优化的策略单表优化除非单表的数据未来会一直不断的上涨,否则不要一开始就考虑拆分,拆分会带来逻辑,部署,运维的各种复杂度,一般以整型为主的表在千万级一下,字符串在五百万以下是没有什么大问题的。而事实上很多时候MySQL的性能依然存在不少优化的空间,甚至能支撑千万级的数据量字段尽量使用TINYINT,SMALLINT...

2020-04-07 21:14:59 175

原创 第八天

学习AQS,查查资料,看看剧,美汁汁,明天复习一下多线程

2020-04-06 20:13:29 70

原创 了解一下AQS?

AQS是什么?首先我们得知道juc是什么:Java中的一个包的缩写(java.util.concurrent),这是一个用来处理并发问题的包我们可以发现在lock中有三个抽象类AbstractOwnableSynchronizerAbstractQueuedLongSynchronizerAbstractQueuedSynchronizer通常:AbstractQueuedLon...

2020-04-06 15:28:04 253

原创 想去阿里的的第7天

不知不觉已经过去7天,我差点忘了记录自己的学习,值得反省,今天巩固了一下关于联合索引的知识,明天看一下AQS的原理。

2020-04-05 23:27:02 81

原创 谈谈关于联合索引的见解

最左匹配讲到联合索引就一定会讲到最左匹配原则就是如果你的SQL用到了联合索引中最左边的索引,那么这条SQL语句就可以利用这个索引去进行匹配,当遇到范围查找的时候停止匹配例如我们对(a,b)字段建立索引,那么当你的的where后的条件为a=1或者a=1 and b=2就可以匹配索引。注意:b=2 and a= 1当你的sql是这样的情况下依然可以匹配索引,原因是MySQL有优化器会自动调...

2020-04-05 11:05:56 903

原创 第6天

我终于拼好了我的白虎了去营业厅办好了工资卡,又是充实的一天,明天开始学习

2020-04-04 20:30:46 64

原创 4.4的灰色

早上打开熟悉的新闻APP看看新闻,发现清一色变成了灰色看了一下报道才知道,今天要举行全国性的哀悼活动,为向在疫情中牺牲的烈士和逝世的同胞哀悼。最近看到了很多其他的国家疫情剧烈恶化的国家,对比之后才知道自己生活在是在一个多么美好的时代和国家。那些现实中的逆行者是多么的伟大,他们在最危险的时候都还想着怎么去解决困难,迎难而上。说实话,我做不到,我是一个精致的利己主义者,人不为己天诛地灭,但是看着...

2020-04-04 07:30:23 127

原创 第5天

今天我的白虎到了,之前的工作大概是了解了一下C#的demo,看了一下海康威视的sdk,接下来我可能会记一下关于AQS的笔记,但是在此之前我可能要先去把我的白虎拼好,...

2020-04-03 21:55:07 82

原创 volatile

volatile多用在并发的场景(乐观锁),防重排,实现线程之间的可见性。面试的时候面试官往往会问你volatile和synchronized这个多线程相关的关键词,让你谈谈他们的使用及其原理volatile的作用我们经常会遇到可见性,有序性和原子性的问题,一般情况下,我们会使用synchronized来解决这些问题,但如果了解synchronized的同学都知道这是一种比较重量级的锁,虽...

2020-04-02 21:50:53 163

原创 第4天

世界上最好的事情也许就是坚持吧,今天看了一下C#,也许以后会用到,做了一个累加器。今天是上班的第二天,公司还有食堂,这是我第一次去那吃饭,挺好的,物美价廉。我们小组的人一个都没在,是不是没到一个陌生的地方都会存在一段空窗期。今天记一点关于volatile的笔记吧...

2020-04-02 20:46:21 92

原创 人生第一次击败100%的用户,哈哈哈

leetcode 289 生命游戏太简单了,不想说思路,因为没有思路,直接上代码public class 生命游戏 { public static void main(String[] args) { int[][]a = { {0,1,0}, {0,0,1}, {1,1,1...

2020-04-02 15:50:38 334

原创 想去阿里的第3天

美好的一天以悲剧收尾,我脚烫伤了,????????????。心态崩了!!!刷题LeetCode压压惊。1111.有效括号的嵌套深度public class na1 { public static void main(String[] args) { String seq = "(()())"; int[]a = maxDepthAfterSplit(seq); ...

2020-04-01 21:12:24 92

原创 想去阿里的第2天

完成搬家,来到滨江,看看lpl比赛,熟悉熟悉新环境。看看各类mq之间的区别。

2020-03-31 18:14:50 97

原创 想去阿里的第1天

今天,进一步的去了解了一下我即将为此工作的公司,感觉还好。一家经历了11年还没倒闭的公司应该不至于在我到来之后不久就出现困难吧。我租好我的房子,杭州滨江区,离公司10分钟路程,1500,独卫,很干净。还算是发生一件不大不小的事情,其实我的学历就三本,但是hr和面试官好像都没有注意到,都以为我是一本的。但是,处于正直吧,我就一直男,真的不想隐瞒什么。然后就自曝了。然后hr又要去核实,去跟面试官确认。...

2020-03-30 20:09:05 118

原创 梦想的起点

2020年3月30日昨天又是无聊的一天,前天看了一下午的房子,想着找个机会放松一天。其实今年我感觉受疫情影响工作应该还都挺难找的,但是我还算幸运,总算还算找到了工作,应该也算专业对口,挺庆幸的。我其实昨天发呆了一天,感觉找到了工作就完事大吉了。这种感觉就像我去年找到了实习机会的感觉差不多,一丝丝的庆幸,感谢这个世界给了我这个机会吧,想着自己应该不会比那些还待在学校里忙着毕业设计或者还忙着找实...

2020-03-30 11:43:11 164

原创 Spring AOP

什么是AOP?即面向切面编程,相比OOP–面向对象编程,由于面向对象中最基本的单位是类,实例,很自然我们会想到AOP最基本的单位就是切面,在Spring中关于AOP的定义面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——...

2020-03-29 12:30:11 66

原创 解决哈希冲突的三种方法

拉链法HashMap是一个数组,数组中的每个元素是链表。put元素进去的时候,会通过计算key的hash值来获取到一个index,根据index找到数组中的位置,进行元素插入。当新来的元素映射到冲突的数组位置时,只需要插入到对应链表位置即可,新来的元素是插入到链表的头部。Java中HashMap是利用“拉链法”处理HashCode的碰撞问题。在调用HashMap的put方法或get方法时,...

2020-03-29 12:27:32 475

学习植树.xmind

本人学习之处的一些总结,其中包含了Java,Spring,Spring Boot,Spring Cloud,Redis,MySQL,MyBatis,MQ,还有一些我认为我之后应该了解的知识点

2020-04-30

空空如也

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

TA关注的人

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