自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql的聚簇索引、非聚簇索引、联合索引

索引如何找到数据比如现在有一张表有name、age、sex三个属性如果没有建立索引,我们查询name=‘张三’的人需要从表的第一行开始遍历到最后一行但是如果我们创建了索引在name字段上,根据name属性的首字母进行排序,我们找‘张三’,会直接到字母z开头的地方去寻找索引只存储了一列的值如何获取同一行中其他的值?索引不仅会保存当前列的值,还会存储一个指向同一行数据的引用,当我们找到这个字段的值,可以通过这个引用获取同一行的其他数据非聚簇索引非聚簇索引很明.

2021-07-25 18:01:26 470 1

原创 Mysql远程连接拒绝访问

出现远程连接被拒绝访问,无非两个问题,第一:你的服务器端口是否开放,一定要配置服务器安全组3306端口处于开放状态进入阿里云实例安全组配置,开放3306端口,再说一遍开放3306端口!!开放完端口,你的mysql访问主机是否修改?你可以通过配置文件或者改表的方式修改这里那改表的方式说一下,因为有些人可能找不到配置文件1.启动mysql:mysql -uroot -p2.选择mysql库use mysql3.修改user表update user set.

2021-07-05 17:29:59 2944 1

原创 ConcurrentHashmap的put()方法以及inintTable()方法浅析

这里使用源码加注释的方法进行分析,由于ConcurrentHashmap是线程安全的集合,所以与hashmap还是存在很多不同的,首先来看put()方法final V putVal(K key, V value, boolean onlyIfAbsent) { //Concurrenthashmap是不允许存放空值和空键的,先判断参数合法性 if (key == null || value == null) throw new NullPointerException();

2021-03-04 11:26:33 246 3

原创 Linux常用命令总结

Linux常用命令总结APT 软件工具 (Debian, Ubuntu 以及类似系统)apt-get install package_name 安装/更新一个 deb 包apt-cdrom install package_name 从光盘安装/更新一个 deb 包apt-get update 升级列表中的软件包apt-get upgrade 升级所有已安装的软件apt-get remove package_name 从系统删除一个deb包apt-get check 确认依赖...

2021-02-19 21:26:18 129

原创 Synchronized关键字底层原理

Synchronized关键字底层原理Synchronized关键字是在多线程环境下保证线程安全的一个非常重要的关键字,通常用来修饰方法和代码块。1.修饰方法 public synchronized void test(){ } public void test1(){ }这里有一个synchronized修饰的方法和普通方法,那么底层的区别是什么呢,通过javap的反汇编代码来看可以看到相对于普通方法,synchr...

2021-02-08 21:07:50 228

原创 java线程创建方式以及线程状态和常用方法

线程创建方式和常用方法小结线程创建方式1.继承Thread类,重写run()方法class Mythread extends Thread{ @Override public void run() { System.out.println("使用继承Thread创建线程"); }}public class TestDemo12 { public static void main(String[] args) {...

2021-02-08 00:40:44 202 1

原创 线程与进程的区别

线程和进程的区别进程:进程指的是一段正在运行的程序。线程:线程是CPU执行的最小单位区别:1.每个进程拥有自己独有的数据,但是线程是共享数据2.线程之间的通信相比于进程之间的通信更有效3.线程相比于进程创建或者销毁的开销更小4.多进程的程序更加健壮,而多线程程序只要有一个线程出现问题,对其共享资源的其他线程也会产生影响5.每个进程都有自己独立地址空间每启动一个进程,系统就会分配地址空间,但是线程是共享程序的内存空间,所以创建一个线程...

2021-02-07 22:49:10 115

原创 Volatile关键字以及单例模式双重检测锁

Volitale关键字和单例模式双重检测锁volatile:volatile关键字是在多线程环境下我们用来保证变量的可见性以及有序性用来修饰该变量的关键字先来看一段代码,这段代码中我们希望A线程能够第一时间读取到变量value的改变并且B线程能够去输出当前value的最新值public class TestDemo10 { public static int value=0; public static void main(String[] args) {

2021-02-06 16:47:04 282

原创 JAVA的单例模式

单例模式:顾名思义就是一个类只能去创建一个实例,实现这种方式就叫做单例模式为什么要使用到单例模式?节省资源、方便控制单例模式的实现逻辑:1.只能创建一个实例,我们就要保证构造函数私有化,不让你通过构造函数去创建当前类的实例2.通过静态方法返回实例,要通过类提供的方法让外界访问3.只对类进行一次初始化,之后访问都通过第一次初始化化的对象去访问单例模式的两种类型1.饿汉模式饿汉模式是先创建好实例,当需要使用的时候,调用方法去使用,但是这样就出现了如果创建好了实例但是没用到,就会出现浪费空间的

2021-02-06 15:17:02 149

原创 hashMap的put方法源码逻辑分析

Hashmap的put()方法源码浅析,只是为了大家能理清put()方法的逻辑这里直接拿源码来进行注释方便理解V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; //首先判断当前哈希表是否已经被初始化,没有的话使用resize()方法初始化

2021-01-17 00:09:37 371

原创 Java的快速失败机制与安全失败机制

在查看某些类的源码时,我们时常会看到下面这个变量 private void ensureExplicitCapacity(int minCapacity) { modCount++; // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); }也就是图中代码中出现的modcount...

2021-01-12 19:51:43 348 2

原创 圆圈中最后剩下的数字

题目描述:0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2首先拿到题目先考虑要把这n-1个数放到哪里操作比较方便,我这里考虑使用ArrayList集合,先把n个元...

2021-01-05 18:36:21 98

原创 顺序表和链表各自的优缺点

顺序表是将数据元素放到一块开辟的连续存储空间,相邻元素的逻辑地址也相邻(逻辑与物理统一)在上面的图片中可以看到顺序表是在堆中是一块连续的内存空间优点:1.空间利用率高(连续存放,命中率高)2.查询可以通过索引直接查找,非常便利(随机访问)缺点:1.插入和删除比较慢,每次插入都需要遍历元素来找到适当的位置进行插入和删除,2.插入时需要判断是否需要扩容,扩容时会有额外的空间需求3.存储的元素过多时要进行扩容,存储的元素过少时会造成额外的空间浪费,例如你的array.length=100,但是实

2020-12-10 23:12:11 2120

原创 理解性记忆抽象类和接口的区别

抽象类和接口的区别是面试和平时常见到的一个问题,这里主要可以从两个方面去看他们的区别,首先是在语法上的区别很多小白(包括我)在刚开始去看接口和抽象类时总是去死记硬背他们的区别,但是其实可以从另一个角度去看首先抽象类,无论如何,它也算是一个类,所以可以罗列以下几点1.既然是类,那么它就会有构造函数,而反观接口,则没有自己的构造函数,2.再从成员方法去看,一个类即可以有抽象方法和非抽象方法,但是接口只能有抽象方法,无论你是否写出方法的修饰符,接口中方法的修饰符默认都是public abstract,并

2020-11-20 19:09:30 143 1

空空如也

空空如也

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

TA关注的人

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