自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ArrayList底层数据结构+源码分析

数组与ArrayList首先我们要知道ArrayList的底层是一个数组,也可以说本质上ArrayList就是一个普通的类,对数组进行的封装,扩展其功能。对于数组,我们知道数组一旦确定就不能再被改变,而ArrayList可以实现自动扩容,ArrayList所谓的自动扩容其实也是新创建一个数组而已,所以我们首先了解一下数组拷贝,再来看看ArrayList是怎么扩容的。数组拷贝1. Arrays.copyof我们先看看代码,看如何使用它public static void main(String[]

2021-05-14 16:52:30 762

原创 MySQL索引为什么用B+树,而不用其他树?

首先我们要知道Mysql如何衡量查询效率呢?—— 磁盘IO次数一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。数据库为啥不用二分查找和二叉树查找?虽然这两种方法的查找效率提高了,但是各自对检索的数据都有要求:二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构。学过数据库的都应该知道MySQL有两种索引:HASH索引和B树索引(B树索引的底层数据结构就是我们的主角——B+

2021-05-07 15:32:10 549

原创 Spring IOC与DI、反射的理解 含小案例说明

阅览了很多篇博文,对于Spring IOC和DI看到很多人介绍的感觉都很含糊,读完之后还是觉得混淆的不行,也有的人认为DI是IOC的另一种说法…emm,可能个人理解不同吧,我的观点并不然。但这种东西,见仁见智吧~下面来谈一谈Spring IOC的实现原理,当然会提及到DI。学习过Spring的都知道,Spring的核心是IOC和AOP,在大半年前我学习Spring时,其实对这两个概念并没有理解到位,只是觉得框架就是比葫芦画瓢,觉得不重要,其实并不是,无论是为了更好的理解和使用这个框架还是对于出去面试,都有

2021-04-17 09:53:51 321 1

原创 Spring AOP实现原理,从代理说起

前言为了理解Spring AOP,我们先来了解一下Java的代理模式什么是代理?举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接联系明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子用图表示如下:代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象代理的类型静态代理动态代理动态代理又包括基于接口的动态代理基

2021-04-16 12:31:32 183

原创 HashMap的见解,含部分源码分析

HashMap是基于hash表的实现关于hash表,也可以康康我的另一篇文章嗷~简单理解hash表底层存储数据使用的是数组,其中数组中的每个元素有个特殊的叫法:Entry(jdk1.7及以前),1.8之后叫NodeHashMap的初始化大小HashMap map = new HashMap();就这样我们创建好了一个HashMap,接下来我们看看new之后发生了什么 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTO

2021-04-01 17:09:58 63

原创 简单理解哈希表

百度百科散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。哈希表可以根据一个key值来直接访问数据,因此查找速度快哈希表底层实现用了数组哈希表的实现,无论是哪一种,都离不开数组:数组+链表数组+二叉树哈希表和普通数组的区别:哈希表的数组存放的是键值对,而数组存放的就是单一数据散列函数

2021-03-30 20:28:52 186

原创 Ubuntu18.04远程访问MySQL的血泪史

事情是这样的,我想将本地的项目扔到Linux中,然后我就开始了数据库远程访问ubuntu18.04之旅进入Ubuntu18.04首先更新了阿里云的源,然后也进行了update。通过:sudo apt-get install mysql-server安装了MySQL5.7service mysql start能够正常启动因为我想远程连接MySQL,所以我先修改了MySQL的配置文件:MySQL允许远程访问,将bind-address注释掉use mysql数据库,然后查看user和host表

2021-03-13 19:00:14 349

原创 Mybatis-Plus逆向工程

逆向工程简单来说就是,我们先创建好了数据库,然后根据数据库使用Mybatis-Plus的生成器代码自动帮我们生成我们需要的类:controller、service、mapper等等,不需要我们自己再手动配置,省去了不少麻烦。首先添加Mybatis-Plus依赖和代码生成器依赖这两个依赖都可以在Mybatis-Plus官网中找到。https://mp.baomidou.com/1.快速入门——安装2.代码生成器——使用教程——添加依赖<!--1.MybatisPlus--><d

2021-03-08 20:50:03 5347 2

原创 MD5加密

在一次Springboot项目中看到了一个登录功能的MD5加密功能,故记录下来。在用户端输入密码到传入服务端,再传到数据库的过程中,进行了2次MD5加密。第一次加密:用户输入的密码是明文密码,如果不进行加密的话会在网络中直接进行传输,很有可能会被别人截获, 用户端对密码进行加密主要是为了防止用户密码在网络中进行明文传输。第二次加密:在服务端接到用户端对密码进行加密之后,存到数据库之前再进行一次加密为什么不直接传入数据库呢?为什么要用服务端这边再进行加密呢?因为MD5加密本身安全性不是特别高万

2021-03-08 16:05:34 154

原创 Java基础之静态方法和实例方法的区别

这是在看面试题的时候看到的一道题,怪自己基础不够扎实,觉得很疑惑,所以敲了一遍代码验证了一下。静态方法和实例方法的区别主要体现在两个方面:在外部调用静态方法的时候,可以用类名.方法名进行调用,不必新创建一个对象。当然也可以创建一个对象,通过对象名.方法名进行调用,不过这种方法并不推荐。而实例方法则必须创建一个对象,通过该对象进行调用静态方法在访问本类成员时,只允许访问静态成员(静态成员变量和静态方法)。而实例方法没有限制。public class Cat { public static

2021-03-05 19:14:46 1726 4

原创 String简介

前天晚上想干完饭补一补String的笔记,碍于学校渣网,加上笔记本没电,一拖拖到现在… 话不多说!String定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence {} 为什么设置为不可变类主要考虑到效率和安全效率:1.在早期的JVM实现版本中,被final修饰的方法会被转为内嵌调用以提升执行效率。而从Java SE5/6开始,就渐渐摈弃这种方式了

2021-03-05 15:43:01 117

原创 谈一谈String、StringBuffer、StringBuilder的区别

至于为什么会关注到这个问题,是因为之前做Leetcode的一道题:ZConvert,最后需要将一个个字符串拼接起来,代码大概如下StringBuilder sb = new StringBuilder();for (int i = 0; i < numRows; i++) { for (int j = 0; j < s.length(); j++) { if (res[i][j] != null) sb.append(res[i][j]);

2021-03-03 17:20:51 167 3

原创 equals和 == 的区别解析 + hashCode方法的小见解

equals和 == 的区别解析 + hashCode方法的小见解==既可以比较基本类型(比较值),也可以比较引用类型(比较引用地址)。来看看两段equals源码Object类下的equals方法public boolean equals(Object obj) { return (this == obj);}String类下的equals函数public boolean equals(Object anObject) { if (this == anObje

2021-03-03 14:48:09 109 2

空空如也

空空如也

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

TA关注的人

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