- 博客(18)
- 收藏
- 关注

原创 JavaWeb方向-面试汇总
JVM1. 垃圾回收算法标记-清除:标记已死对象,GC时直接清除。CMS回收器使用。 特点: 简单、速度快,但会留有内存空间碎片,空间碎片会导致后面的GC频率增加。 适合场景:只有小部分对象需要进行回收的,因为回收对象太多,其清除的时间就会越长。关注引用停顿时间,因为收集速度快,用户线程停顿的时间较短。标记-复制:将内存分为两块区域,标记已死对象,GC时将存活对象复制到另一块区域,清除已死对象。 特点:收集速度快,可以避免空间碎片,但是有空间浪费,存活对象较多的情况下会非常耗时,而
2020-11-28 22:15:18
314
原创 RabbitMQ总结
简介RabbitMQ是一个消息代理。它的工作就是接收和转发消息。你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处。在这个比喻中,RabbitMQ就扮演着邮箱、邮局以及邮递员的角色。RabbitMQ和邮局的主要区别在于,它处理纸张,而是接收、存储和发送消息(message)这种二进制数据。名词解释Produce:生产者,即消息的制造者Consume:消费者,即消息的使用者Queue:MQ中的队列,所以消息都会从队列中排队进出,先入先出Exchange:交换机,M
2020-11-11 17:31:52
152
原创 缓存之缓存击穿/穿透/雪崩
Redis高频面试题缓存穿透概念有一个查询接口,频繁接受到数据库中并不存在的查询条件,每次根据key查询缓存中都查不到,则这些查询请求纷纷落到数据库上,请求量大,造成数据库频繁IO最终宕机。例如接口是根据id获取用户,查询参数为-1、-2这种数据库根本没有的数据。解决方案1. 在Redis中缓存不存在的查询结果。每当接口被请求时,如果数据库返回为空,则依旧往Redis里根据查询的key写入缓存,这样下次再来同样的请求则可以直接走缓存取数据问题当频繁调用接口查数据这个操作是黑客在弄时,就会发现
2020-08-14 16:11:18
202
原创 HTTP1.0/1.1/2.0的区别
HTTP1.1与1.0的区别长连接1.0默认在HTTP请求响应结束后会关闭TCP通道,每个HTTP请求都要重复创建/销毁TCP通道的过程。1.1默认支持长连接,即创建一个TCP通道可以运输N个HTTP请求,通过request header 的Connection = keep alive来标识这是一个长连接,在响应回来后不销毁TCP通道,关Connection=close时,销毁通道。Host属性1.0的request header中并没有Host属性1.1后因为虚拟主机技术发达,一个IP可能
2020-08-11 19:17:01
187
原创 Mysql面试题总结
一. Mysql两种引擎的区别InnoDB支持行锁和表锁,默认为行锁行锁:在更新数据时锁住某条数据,性能差,并发效率高表锁:在更新数据时锁住整个表,性能好,并发效率低支持acid的事务操作,支持事务的四种隔离级别聚集索引,索引文件,主索引key存储主键值,value存储其它数据;辅索引key存储索引的值,value存储主键,使用索引查询数据时涉及到回表操作select count(*)会触发全表扫描操作MyIASM只支持表锁,写请求优先于读请求锁表不支持事务非聚集索引,索引存储数
2020-08-10 15:15:22
113
原创 大型网站的演进过程
大型网站系统与JAVA中间件实践笔记第二章——大型网站及其架构演进过程大型网站的定义怎么才算的上是一个大型网站呢?访问量与数据量缺一不可。大型网站的演进过程假设我们公司对企业提供Web服务,最初,我们的架构是这样的。应用与提供业务服务,应用与数据库部署在同一台服务器上。应用服务与数据库拆分将应用做集群使用两台服务器提供服务。那么两台服务器,用户要如何访问呢?这里有两种做法。一种...
2020-02-27 16:35:04
189
原创 分布式系统介绍
大型网站系统与JAVA中间件实践笔记第一章——分布式系统介绍分布式系统的定义组件分布在网站计算机上组件之间仅仅通过消息传递来进行通信并协调行动为什么要有分布式系统呢?分布式系统给我们带来了什么?升级单机处理能力的性价比越来越低单机处理能力存在瓶颈出于稳定性和可用性的考虑线程与进程的执行模式互不通信的多线程模式多个线程各自完成各自的工作,互不干涉基于共享容器协同的多线...
2020-02-26 14:04:33
273
原创 服务器CentOS系统安装
准备好写有系统的U盘(最重要的一步!)reboot,等待开机自检(自检很费时间,要耐心),在第二次显示开机界面的时候疯狂按Del进入BIOS找到Boot选项卡,按下图选择,里面会有U盘的选项,若不先选择这里的话上面的Boot Options里是没有U盘的选项的。(PS:有一次找了半天没有U盘的选项)再往后一个选项卡(忘记叫什么了,下次记上补充)选择后用刚刚选择的U盘设备重启...
2019-07-29 15:56:44
199
原创 GOF23之工厂方法模式
简介工厂方法模式属于创建型模式,他的作用与简单工厂类似,都是为调用者提供所需要的对象,但他们之间还是有很多的区别。工厂方法把对象的具体创建延迟到实现类完成,它比简单工厂更符合设计模式的理念,但是也有不足之处。实现下面是我们的产品接口和产品的实现类/** * 车接口 */public interface Car { //让车跑起来 void run();}/** * 比亚...
2019-07-29 15:16:20
135
原创 GOF23之简单工厂模式
介绍简单工厂模式属于创建型模式,是GOF23中较为容易上手的一种。在简单工厂中,工厂类会根据创建需求来创建不同的对象返回。示例以下是没有使用工厂模式的NoFactoryClient类/** * 没有使用工厂模式的Client */public class NoFactoryClient { public static void main(String[] args) { Aud...
2019-07-29 15:11:15
153
原创 GOF23之单例模式
介绍单例模式是GOF23中最简单的模式。单例的设计模式里的出场率很高,它简单但也有多种实现方式,也正是因为它的灵活性和重要性使唤其多次出现在面试笔试中,经常与工厂模式搭配使用。作用 保证一个类只能有一个实例。多次创建只会返回同一个实例。作用范围如word中的工具箱,任何时候只能有一个工具箱。(大话设计模式)window的任务管理器等等网站的计数器周围的单例:spring bea...
2019-07-29 15:03:10
182
原创 初级排序算法
简介排序就是将一组对象通过某种逻辑顺序重新排序的过程。排序在生活是随处可见的,那么如何在某种场景下选择出最适合且高效的算法就是我们应该考虑的。尽管现在第三方类库、工具都集成了排序,排序算法对普通程序员”不可见“,但是排序的思想所提供的一种程序化的思路是无论什么时代都应该去学习、去实践的。实现排序基类实现/** * @Description:排序练习基类 * @Auther: guope...
2019-07-29 14:44:02
120
原创 黑客帝国
在一个闲来无事的周末,我打开优酷看了第二遍黑客帝国。上次看黑客帝国还是小时候。那会就看个红火热闹,经典动作躲子弹,打斗场面等等,这次的回顾才发现之部剧从剧情角度来看也是一部神作。1. 真实世界 尼奥,表面是一家软件公司的程序员,暗地里是一名黑客。在一次机缘巧合听闻了一个概念,“矩阵”,强烈的好奇心驱使着尼奥弄明白“什么是矩阵”。在探索过程中尼奥遇到了改变他现有生活的人——墨菲斯。尼奥抛出...
2019-07-28 23:06:28
715
原创 Linux上跑使用Tesseract-OCR技术的Tess4j踩的坑
在Java通过Tess4j使用Tesseract-OCR技术时,须加载对应操作系统所使用的动态链接文件。在Linux下是.so文件,而在Win下是.dll文件。官方规定可以将这些文件以特定的命名及路径放置在项目的classpath路径下,例如这个样子这样, 系统在要加载Tesseract时会先把动态链接库加载到内存中以便使用,这种做法在Win上跑是没有问题的,项目启动Tess4j会自动去C...
2018-12-25 09:59:02
8807
5
原创 Spring-In-Action第一二章笔记
第一部分:Spring核心 一. 简述Spring Spring作为一个轻量级的企业级开发框架,他的出现终结了重量级框架的统治(如EJB,applet)。尽管EJB在Spring的出现后紧追不舍,也推出类似Spring核心的功能,但Spring也没有停止他的脚步,他开始涉足于移动开发、社交API集成、NoSql数据库、云计算以及大数据领域。 重...
2018-04-21 20:27:10
230
原创 GOF23之抽象工厂模式
一、简述抽象工厂模式比起简单工厂和工厂方法来说并不是量变,而是质变。抽象工厂引入了产品族的概念,那么什么是产品族呢?电脑的外设有键盘和鼠标,小马家里有钱,他使用的是游戏鼠标、机械键盘,属于奢侈设备。小郭家里没有钱,他使用的是联想自带的小鼠标,双飞燕的键盘,属于普通设备。这其中的奢侈设备和普通设备就是产品族。当然产品族也并不是一一对应的,也可以是游戏鼠标配双飞燕键盘,这没有限制。抽象工厂的定义就是对...
2018-04-12 20:47:35
214
原创 【非markdown】GOF23之工厂方法模式
一、简述工厂方法模式属于创建型模式,他的作用与简单工厂类似,都是为调用者提供所需要的对象,但他们之间还是有很多的区别。工厂方法把对象的具体创建延迟到实现类完成,它比简单工厂更符合设计模式的理念,但是也有不足之处。二、实现下面是我们的产品接口和产品的实现类/** * 车接口 */public interface Car { //让车跑起来 void run();}...
2018-03-21 21:51:42
179
原创 【非markdown】GOF23之简单工厂模式
一、简述简单工厂模式属于创建型模式,是GOF23中较为容易上手的一种。在简单工厂中,工厂类会根据创建需求来创建不同的对象返回。二、示例以下是没有使用工厂模式的NoFactoryClient类/** * 没有使用工厂模式的Client */public class NoFactoryClient { public static void main(String[] a...
2018-03-20 21:14:02
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人