自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vertx创建http服务

vertx入门创建http服务

2022-08-29 12:36:17 296 1

原创 深拷贝与浅拷贝的区别?

深拷贝与浅拷贝在面试中也是较为高频的考点,而在Java设计模式中的原型模式就能很好的体现深拷贝以及浅拷贝的区别?浅拷贝概念:在对对象就行拷贝时,如果对象的属性时基本数据类型,而不是引用数据类型的话,那么会在栈内直接为其开辟内存空间,同时为其赋值,源对象的属性发生改变时,拷贝对象的属性并不会发生改变。但是如果过对象的属性时引用数据类型时,拷贝对象的引用数据类型会直接指向源对象的内存空间,如果源对象发生改变的话,拷贝对象会发生改变。有关图例如下:其中age为int类型,birtday是Date引用类型。

2021-07-19 18:40:48 108

原创 设计模式之单例模式

说到单例模式,这个也是面试中经常需要考察的一点,而单例模式最重要的一点就是构造器私有,在构造器私有的情况下,我们不能直接new 获得对象,而是应该通过它 提供的方法进行对象的获取。有时面试官还会让你手写单例模式考察你的编码能力。而关于单例模式的实现分为很多种方法,比如有饿汉式单例、懒汉式单例、静态内部类。以下分别写出这三种单例模式的实现方法。饿汉式单例概念:饿汉式,从这个饿字中我们可以看出,这个人十分的饿,在一进来就对对象进行初始化创建,而不是在需要使用的时候才对对象进行创建。代码如下:public

2021-07-19 10:04:18 89

原创 设计模式之工厂模式

提到设计模式,很多人都觉得老生常谈,这是一个非常有趣的领域,设计模式并不是属于多么高深的一种算法,而是属于一种代码结构,而设计模式中创建型的设计模式——工厂模式,是非常常见的一种。以下分别写出工厂模式中简单工厂模式、工厂方法模式、抽象工厂模式。简单工厂模式概念:对于简单工厂模式而言,大致概念就是说将所有的需要创建的对象放置到一个工厂中进行创建,比如对于Car 车这个类别来说,在进行获取对象的时候,根据传入的参数进行对象的创建。基本代码如下:首先需要一个接口,Car,所有的车的实体类需要实现这个接口。

2021-07-18 22:08:12 99

原创 缓存穿透与缓存击穿概念及基本解决方案

关于redis的一些知识现在在面试中几乎也是较为重要的一环。而对于redis中的一些解决方案才是最为珍贵的知识。关于缓存穿透以及缓存击穿也是较为重要的一环。缓存穿透:概念:我们都可以知道redis都是作为缓存中间件作为使用的,但是在这个缓存数据中很容易出现一些错误。比如用户通过查询一个数据,但是这个数据并没有存放在redis缓存中,所以这个查询会直接命中到我们的MySQL持久化数据库中。图示如下:在绕过redis缓存的请求太多的情况下,查询请求一下子到了持久化MySQL数据库中,如果在压力不能很好解

2021-07-17 21:40:35 527

原创 详解HashMap的put方法

关于HashMap,在面试中几乎是必问的考点,记得我第一次面试,面试官上来就是说一下HashMap的put方法。不过当时还好做好了准备,这些也是能够轻松回答出来。值得注意的是,从JDK1.7到JDK1.8HashMap做了大量的改进。如果在回答有关HashMap问题时,能够分别说出1.7和1.8的区别的话,那么能够为你面试加一点分的。put方法的流程如下:进入到put方法之后,首先会将你给定的key通过hash算法以及与运算的方法将其运算得出数组的下标如果数组的下标位置元素为空,则将对应的key v

2021-07-15 11:23:54 3857

原创 ArrayList和LinkedList的区别

关于List中的常用集合框架的具体实现类无非就是ArrayList以及LinkedList。而关于两者的区别也是在面试中较为高频的考点。区别如下:两者的底层数据结构不同,ArrayList的底层数据结构使用的是数组,而LinkedList的底层数据结构使用的是链表。LinkedList还实现了Deque接口,说明LinkedList还可以作为队列使用。需要注意的是。这个队列还是双端队列。public class LinkedList<E> extends AbstractSe

2021-07-15 10:51:46 81

原创 Java不同锁的基本原理

深入理解Java中的多种锁乐观锁与悲观锁独占锁与共享锁互斥锁与读写锁公平锁与非公平锁可重入锁自旋锁分段锁乐观锁与悲观锁悲观锁悲观锁顾名思义,对应的是十分悲观的东西,这个锁无论对任何东西进行操作,都会认为会有人进行插队,所以这个锁会进行上锁。那么其他人只能在对象等待池里进行等待,这种状态也就是阻塞了。进入到java代码世界中,也就是说只要有对象被悲观锁进行占有,那么其他想要对这个对象进行操作的锁都会在外面进行 等待那就只能阻塞了。在对应的java语言中对应的悲观锁即为关键字Sy

2021-07-14 18:19:39 152

原创 sleep和wait的区别?

面试对于每个人来说都是必不可少的一条路,而关于sleep和wait的一些区别我们也是有必要做深入研究的。今天写一遍文章简单说明一下sleep和wait的区别。1、方法所属的对象不同我们可以通过查看sleep和wait的源码可以看到两者的附属不同。sleep是属于Thread线程类的方法。而wait是Object类的方法2、可调用方法的位置不同sleep方法可以不在synchronized块的方法内进行调用,而wait必须在synchronized的块内方法调用。3、使用该方法之后对象的锁状

2021-06-14 01:27:23 190

原创 synchronized与Lock的区别

谈及juc编程中的重点,毫无疑问的是synchronized以及lock是非常常见且面试高频的问点。这两者都是可以解决并发问题中。但是这两者的区别在哪里呢?1、首先synchronized是一个关键字,而Lock是一个接口(类)。因为我们都使用他的实现类,所以可以说是一个类。2、synchronized会自动释放锁。而Lock需要手动加锁以及关闭锁。如果不手动可能死锁3、synchronized可重入锁、不可中断、非公平的,Lock可重入锁,可判断锁,可以自动设定锁的是否公平。4、synchroni

2021-06-10 21:28:48 326

原创 集合为什么要拥有迭代器Iterator

关于集合中的知识可能对于大部分人而言都耳熟能详了,但是对于一部分人而言,对于集合为什么又迭代器Iterator可能一时半会还说不出个所以然来。对于迭代器而言,它是一种设计模式,设计模式存在的意义就是为了简化代码以及提高效率。什么是迭代器?在jdk的定义中,Iterator是一个接口。他提供了如下方法:提供了一个boolean返回值的方法,该方法定义的是下一个值是否还有值,使用迭代器的基本方法就是通过该方法判断下个值是否还有值然后进行迭代获取值。提供了一个从集合中移除元素的方法,remove()。使

2021-06-10 17:03:00 959

原创 乐观锁CAS实现机制以及synchroized介绍

前言:关于并发编程中的问题,几乎是面试必问的知识点,而关于锁也是花样百出的在进行各种变换的提问。比如最基本的就是乐观锁CAS以及优化机制和synchroized在新版jdk中的优化在讲关于这些之前,我觉得有必要说一下乐观锁以及悲观锁的基本概念以及区别在哪里?悲观锁:悲观锁顾名思义,这个锁十分的悲观,当这个线程进入之后,总是认为会有其他线程会进入堆内存中拿到自己所操作的变量,造成并发问题的产生。所以每次都会都对对象进行上锁。但是这个上锁以及解锁的过程会耗费相当一部分资源以及时间。所以从性能上来说,在悲

2021-06-06 20:47:33 173

原创 String、StringBuffer、StringBuilder三者的区别

在日常的学习中,我们不可避免的需要接触字符串相关的知识,但是对于初学者而言可能接触的更多的是String类型,对于StringBuffer、StringBuilder的存在可能还不是很清楚,而在面试中,关于这三者的联系与区别也基本是必问的知识点。String 类型对于String的源码查看我们可以知道,这个类的底层实现原理就是一个final型的字符数组。 /** The value is used for character storage. */ private final char

2021-06-04 00:36:15 130 1

原创 Mysql的事务隔离级别

事务的隔离级别有哪些?对于事务主要体现在Mysql的原子性,原子性对于数据库而言是十分重要的,而事务本身又分为不同的级别,针对不同的业务逻辑可以选择不同的事务能够最大化的提升效率。第一级 READ-UNCOMMITTED(读取未提交)这个事务隔离级别是最低的隔离级别,同时也可以说是安全性最低的级别,顾名思义,可以读取未提交的数据,那么我们读取的数据很可能是脏数据,那么可能会造成脏读、幻读、以及不可重复读第二级READ-COMMITTED(读取已提交)对于第二级别而言的事务隔离级别,这个事务的定义就

2021-06-03 21:19:26 120

原创 equals与==的区别

对于初学者而言,一开始可能并不会接触到equals的使用,在之后的字符串以及引用类型的判断的阶段可能会接触到equals与==两者究竟有什么区别?对于==来说,如果是对于基本数据类型而言进行比较的话,它比较的是数据类型值是否相等。 int a=1,b=1; System.out.println(a==b);显然运行结果为true,类似的还有char 、float、double等八大基本数据类型的==都是判断值是否相等而==对于引用类型的话,这个就是判断引用类型的地址是否相同。因为字符串常量池的原

2021-06-02 23:41:53 99

原创 springboot使用thymeleaf模板时加载网页出现Failed to load resource: the server responded with a status of 404

解决方案出现这个问题一般是因为我们的static的静态资源导出的问题,对应的那些css js images 我们需要放在resources目录下的static目录下。还有就是值得注意的是因为使用了thymeleaf模板的原因,在对应的引用以及地址栏那里需要使用对应的语法才能导入static的资源。示例如下:关于thymeleaf语法的使用可以参考这篇文章。css前面的那个/一定要记得加,因为/就相当于static/这个目录,所以一定要记得加,我以前使用thymeleaf写网站时就出现过这种情况,

2021-06-02 14:24:00 1635

原创 HashMap负载因子为什么是0.75?

HashMap负载因子为什么是0.75?什么是负载因子?当负载因子为1时情况如何?当负载因子为0.5的时候情况如何?总结在看一些面试的经典考察题目中,我总结得出了,hasmmap几乎是面试必问的考点,而其中问的方式又是千奇百怪,前前段时间看到了关于hashmap中扩容时的负载因子为什么默认时0.75,后面对其进行了源码上的探索以及相关资料的查询得出了以下原因。什么是负载因子? /** * The load factor used when none specified in cons

2021-06-02 14:09:04 634

原创 蓝桥杯之单词分析

蓝桥杯之单词分析小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。【输入格式】输入一行包含一个单词,单词只由小写英文字母组成。【输出格式】输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最

2021-04-05 00:35:12 395

原创 蓝桥杯日期问题

蓝桥杯 日期问题题目描述2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 yyyymmdd 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回

2021-04-04 17:39:24 277

原创 JAVA实现蓝桥杯日期问题

蓝桥杯历届试题时间限制:1.0s 内存限制:256.0MB提交此题问题描述  小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个

2021-03-28 13:55:31 268

原创 jvm堆中的分区以及对应使用的GC算法

jvm堆中的分区以及对应使用的GC算法记录第一篇博客jvm堆的解释堆中的分区新生区中使用的GC算法-复制算法老年区中使用的GC算法-标记清除+标记压缩混合使用三种GC算法的效率对比记录第一篇博客jvm堆的解释我们在jvm中的分类有许多,其中包括有两个子系统(类装载器,执行引擎)和两个组件(运行时数据区、本地方法接口)。而堆属于运行时数据区中的其中一个组件。堆在jvm中的重要性不言而喻。它几乎存储了所有的引用对象的实际值,也就是引用对象的地址。他也是java虚拟机中内存最大的一块,所有的对象的内存分

2021-03-26 17:45:03 370

MySQL驱动包.zip

用于连接MySQL数据库进行操作。

2021-07-16

空空如也

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

TA关注的人

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