自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 源码中的设计模式--单例模式

一、模式入场单例模式在众多的设计模式中应该是最简单的一个,但是要掌握的点也不少。先看下《head first 设计模式》中给出的释义,单件模式确保一个类只有一个实例,并提供一个全局访问点。下面对这个释义进行逐字解释。单件可以称之为单例其实是一个意思。这个释义给出了单例模式中重要的两点,一个类只有一个实例; 提供一个全局的访问点;先说第一条,一个类只有一个实例,在一个系统中会有很多类,如下面的订单类Orderpublic class Order {private Stri..

2022-05-02 11:26:19 107

原创 java的Integer中也会有缓存

在上篇《java的自动拆箱会发生NPE》博客中接收了java中的Integer中的自动拆箱产生的NPE,其实对于所有的包装类来说都是一样的,都会产生这样的问题,大家需要举一反三,做学问学知识要懂得反思总结。一、前情回顾先回顾下上次的知识点,自动拆箱实际调用的是intValue()方法自动装箱实际调用的是valueOf(int i)方法其他的包装类,小伙伴们自己总结二、Integer的本地缓存好了话不多说,书接上回,开始这次的分享,上次说到在自动装箱的时候还大有玄机,这个玄..

2022-04-22 22:11:08 943 2

原创 java的自动拆箱会发生NPE

平时的小细节,总能在关键时刻酿成线上事故,最近在代码中使用了Integer的自动拆箱功能,结果NPE(NullPointException)了,悲剧啊。。。一、何为自动拆箱要说自动拆箱,就必须说自动装箱,当然这里拆箱和装箱不是平时的把一个东西放到纸箱子里进行包装的意思,这里的装箱也有包装的意思,但包装的东西却不是可以看的见的物件。学过java的都知道,java中的数据类型分为基本类型和引用类型,基本数据类型中有byte,short,int,long,char,folat,double,boole

2022-04-22 22:09:39 1234

原创 工作以后的持续学习

今天是端午节,想和大家分享下我对工作后持续学习的一些看法。欢迎关注gon主要想从以下几个方面来分享我的一些看法,1、何为学习经常听到“学习”这个词,在大多数人的脑海里,学习就是读书,就是在学校里学习的孩子们,这个观点是没有问题的,只不过人们把参与到学习活动中的对象给人为的缩小了,或者说犯了固定模式这样一个错误,其实学习不仅仅是对于孩子,对于我们每一个人都是适用的。之前总是听到这样一句话叫“现在是终身学习”,说的就是应该持续学习,直到老去,所以学习针对于我们所有人。而且对于工作之后的我们尤为重要,

2021-06-15 21:54:11 117

原创 java面试一日一题:mysql事务是如何实现的

大家好,我是北漂程序员,欢迎关注公众号问题:请讲下mysql的事务是如何实现的分析:该问题主要考察对事务的理解及实现方式;回答要点:主要从以下几点去考虑,1、对事务的概念的理解?2、事务的实现方式?讲到mysql的事务,很快可以想到事务的4大特性,那就是ACID,具体说来就是原子性、一致性、隔离性、持久性。也就是说事务就是围绕这4个特性来展开的。其中隔离性中又定义了隔离级别,有读未提交、读已提交、可重复度、可串行化这样4个级别。对于事务的4个特性,原子性、一致性、持久性.

2021-06-11 22:05:03 1144

原创 java面试一日一题:如何优化sql

大家好,我是北漂程序员,欢迎guan问题:请讲下在mysql下如何优化sql分析:该问题主要考察对mysql的优化,重点考虑对索引优化的掌握。回答要点:主要从以下几点去考虑,1、什么样的sql需要优化?2、怎么对sql进行优化?3、如何避免索引失效?要优化sql首先要判断哪些sql需要优化,然后是怎么优化,最后才是优化开启慢查询在mysql中慢查询是默认关闭的,在排查慢sql的时候建议开启慢查询,但在生产环境下不建议开启,因为会对性能造成影响;explain.

2021-06-11 22:02:47 89

原创 java面试一日一题:讲下mysql中的锁

问题:请讲下在mysql中的锁分析:该问题主要考察对中锁的掌握,主要考察的是读、写锁、行锁、间隙锁、next-key,其他还有表锁、意向锁回答要点:主要从以下几点去考虑,1、mysql中的锁有哪些?2、每种锁的使用场景?mysql中的锁主要有读写锁、行锁、间隙锁、next-key读锁读锁,又叫共享锁,简称S锁,用在读操作上,事务A对数据加上了S锁,那么事务A只能进行读操作,其他事务包括A不能再对数据加X锁,但是可以加S锁;例,select ... in share..

2021-06-11 22:00:10 1103

原创 java面试一日一题:讲对mysql的MVCC的理解

问题:请讲下对mysql中MVCC的理解分析:这个问题要回答的是对MVCC的理解,以及MVCC解决了什么问题这几个方面入手。回答要点:主要从以下几点去考虑,1、什么是MVCC?2、MVCC用来解决什么问题?3、MVCC是怎么实现的?所谓MVCC,在mysql中指的是multi version concurrency control,即多版本并发控制。多版本比较好理解就是有多个版本,那么是指的什么有多个版本,这里指的是数据行,mysql中的数据行有多个版本,再看后面的并发控制.

2021-06-10 22:26:07 1305

原创 java面试一日一题:mysql执行delete数据真的被删除了吗

大家好,我是北漂程序员,欢迎关注公众号:北漂程序员问题:请讲下mysql执行了delete操作,数据真的被删除了吗分析:这个问题考察对mysql底层存储的理解。回答要点:主要从以下几点去考虑,1、肯定没有真正删除?2、为什么这样设计?mysql执行delete操作后,存储在硬盘上的数据没有被删除,只不过在记录行上做了逻辑删除,即通过删除标识位实现。因为移除它们之后,很多其他的记录需要在磁盘上重新排列,这样会消耗大量的性能,比如如果是一张大表,存在索引,删除了其中一行,那.

2021-06-10 22:16:03 890

原创 java面试一日一题:mysql中的自增主键

问题:请讲下mysql中的自增主键分析:该问题主要考察对mysql中自增主键的掌握,使用场景及如何设置回答要点:主要从以下几点去考虑1、什么自增主键2、使用场景是什么;3、innodb_autoinc_lock_mode的设置;从学习mysql开始,我们就知道在建表时经常建的是自增主键,并且在mysql的优化中经常看到的一句就是,最好有自增主键,那么自增主键是做什么用的。自增主键的用法,CREATE TABLE t1 ( c1 INT(11) NOT N...

2021-06-09 12:18:49 203

原创 java面试一日一题:请讲下对mysql的理解

问题:请讲下对mysql的理解分析:该问题主要考察对mysql的理解,基本概念及sql的执行流程回答要点:主要从以下几点去考虑,1、mysql的整体架构?2、mysql中每一个组件的作用?3、对mysql的自己的见解?从网上拷贝一张图,来说明mysql的整体架构个人认为这张图画的很好,连接器一条sql经过网络传输到达mysql服务器,第一个要经过的就是连接器,负责连接的建立及权限的判定,例如经常看到的下面的错误,ERROR1045(28000):A...

2021-06-09 12:17:04 67

原创 java面试一日一题:mysql中常用的存储引擎有哪些?

大家好,我是问题:请讲下mysql中常用的引擎有哪些?分析:该问题主要考察对mysql存储引擎的理解,及区别是什么?回答要点:主要从以下几点去考虑,1、mysql的存储引擎的基本概念?2、mysql中常用的存储引擎有哪些及各自的区别是什么?从上篇《java面试一日一题:请讲下对mysql的理解》已经知道了mysql从整体架构上分为两部分,一部分是server层,另外一部分是存储引擎层。说的简单点存储引擎就是用来实际管理mysql中的数据,为了适用于不同的场景有了不同的存储引.

2021-06-09 12:15:13 99

原创 java面试一日一题:mysql的索引下推了解吗

大家好,我是bei'c问题:请问你了解索引下推吗分析:该问题主要考察对mysql优化方面的理解回答要点:主要从以下几点去考虑,1、mysql中索引的概念?2、索引下推的理解及意义?在面试过程中问到mysql,必然会问到索引,问到索引肯定会问索引失效有哪些情况,问到索引失效,必然会问到索引下推。如果可以抗住这样的连环追问,必然会给面试官留下深刻的影响。索引下推是在非主键索引,或者说二级索引/联合索引的情形下,索引的匹配规则遵循最左原则,最左原则会因为like或范围判断而后.

2021-06-09 12:13:33 185

原创 java面试一日一题:讲下mysql中的索引

问题:请讲下mysql中的索引分析:mysql中有很多索引,要对对这些索引有所掌握,还要弄清楚每种索引的本质?回答要点:主要从以下几点去考虑1、索引的本质是什么2、mysql的索引分类;3、每种分类的依据;mysql在日常的开发中使用非常广泛,经常会提到的一句是在进行优化的时候,要对索引进行优化,那么到达什么是索引那。索引其实是一种数据结构,建立索引的目的是为了提高查询效率。如果没有索引那么存储在磁盘中的数据(mysql中的数据归根结底是存储在磁盘中的),就...

2021-06-09 11:51:52 76

原创 java面试一日一题:binlog undolog redolog的区别

问题:请讲下mysql中binlog、undolog、redolog三种日志的区别分析:mysql中这三种日志很常见,也是面试中涉及比较多的方面,要理解清楚这三种日志的定位及区别;回答要点:主要从以下几点去考虑1、三种日志的作用分别是什么;2、三种日志解决的问题;3、三种日志分别是什么时间写入的;bin log、redo log、undo log三种日志属于不同级别的日志,按照mysql的划分可以分为服务层和引擎层两大层,bin log是在服务层实现的;redo lo...

2021-06-09 11:49:11 204

原创 java面试一日一题:讲下mysql中的undolog

问题:请讲下mysql中undo log的作用分析:mysql中有很多日志,例,bin log undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题;回答要点:主要从以下几点去考虑1、undo log产生的背景;2、undo log的作用;开发中经常使用到mysql数据库,用mysql数据库时在新建库或表的时候,最常使用的存储引擎是innodb,在innodb中经常提到事务,那么事务是怎么实现的,可参见:《java面试一日一题:m.

2021-06-09 11:42:22 162

原创 java面试一日一题:讲下mysql中的redo log

大家好,我是北漂程序员,欢迎关注:bei'p问题:请讲下redo log的作用分析:mysql中有很多日志,例,binlog undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题?回答要点:主要从以下几点去考虑1、redo log产生的背景;2、redo log的作用;3、为什么redo log比binlog要快;在mysql中,一个事务的提交需要将对数据的修改更新到磁盘上,目的是为了做到数据的持久化,防止数据丢失,比如,.

2021-06-09 11:40:24 131

原创 java面试一日一题:说下mysql中的binlog

问题:请讲下mysql中的binlog分析:该问题主要考察对mysql中binlog的理解及使用场景?回答要点:主要从以下几点去考虑,1、什么是binglog?2、binlog的使用场景是什么?在mysql中经常听到binlog,所谓binlog指的是二进制日志文件,用来记录mysql中的DDL、DML语句。该文件有三种记录的格式或者说工作模式,row 记录每一行数据被修改的情况,优点是清晰的记录每一行数据被修改的细节,缺点是binlog日志文件过大;st...

2021-06-09 11:38:30 116

原创 mysql面试汇总

最近一直在关注mysql方面的面试题目,并且从最近的面试情况来看,mysql在java后端的面试中,肯定是必问的题目,所以这里有必要对这块的内容进行总结,大家可以根据下面的导图进行重点复习,引擎1、常用的存储引擎及区别;事务1、事务的4大特性;2、事务的隔离级别;3、mysql默认的隔离级别;4、什么是脏读、不可重复读、幻读;5、mysql的可重复读隔离级别是如何解决幻读的;6、什么是表锁、行锁;7、什么是间隙锁、next-key;8、什么是MVCC;调优

2021-06-09 11:35:44 82

空空如也

空空如也

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

TA关注的人

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