自定义博客皮肤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)
  • 收藏
  • 关注

原创 LinkedList

前提先有节点、头结点和尾节点的概念插入头结点如果之前头结点是空的,那么该链表是空的 头结点和尾节点都会是他, 如果之前有头节点,那么新插入节点的下一个指向他插入尾节点如果之前尾结点是空的,那么该链表是空的 头结点和尾节点都会是他, 如果之前有尾节点,那么他的尾节点指向新插入节点add方法默认使用的插入尾节点IndexOutOfBoundsException异常不管是get/set/add这些方法都会使用checkElementIndex这个方法,他会去验证下标有没有超出

2021-10-31 22:50:30 135 1

原创 mysql 不等于 不包含null

今天写sql遇到个坑xxx字段默认值为0,只有0和1两个值使用关联查询时 可能会导致为null,也就是说有了0 、1、null 三种情况想获取为0或null的数据xxx!=1 这样写只出现了为0的数据,为null的并没有出现,这是什么情况呢?不带条件的情况有1条调数据 0、1、null都有带条件 !=1时 出现的却只有0的数据修改条件=0 or is null 结果就是正确的这是为什么呢?因为 NULL 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于1」这个条件。所以 m

2021-10-13 12:00:59 1446

原创 特殊字符过滤

手机端常常会遇到用户输入框,输入emoji,如果是数据库是UTF8,会遇到报错:SQLException: Incorrect string value: ‘\xF0\x9F\x98\x84’ for column ‘review’ at row 1原因是:UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。本次遇到emoji表情和一个特殊字符 ????,前后端都会进行过滤!js过滤 最好是写成共通调用function em

2021-10-09 15:31:21 1675

原创 Arrays.asList()

为什么Arrays.asList()得到的list不能增删操作?看了上面的图片,增加和删除都会抛异常UnsupportedOperationException,不支持这个功能!这是为什么呢?带着这个疑问继续看下去接口表示返回的是列表视图,只能支持查看方面的,这个也能说的过去,那他怎么实现的呢?还有一个重点就是new ArrayList<>(a);你以为他是用的ArrayList吗?使用的自己的静态内部类!这里我也把ArrayList也展示出来,注意看下区别没错,他们都是继承了A

2021-09-27 16:49:21 84

翻译 mysql覆盖索引与回表

创建表:create table user (id int primary key,name varchar(20),sex varchar(5),index(name))engine=innodb;sql查询select id,name where name=‘shenjian’select id,name,sex* where name=‘shenjian’*奇怪的问题:1.多查询了一个属性,为何检索过程完全不同?2.什么是回表查询?3.什么是索引覆盖?4.如何实现索引覆盖?

2021-09-14 18:15:00 72

原创 HashSet

,HashSet底层是Hashmap,加载因子和hashmap一样是0.75,创建时指定大小小于16的四分之三,那么使用hashmap最小的容量16,hashSet使用hashmap的key部分,add方法时value始终都是同一个,如果key值一样,那么他就会替换,不会出现重复的key,也实现了hashSet的不重复的。...

2021-04-15 19:25:48 54

原创 ArrayList

创建时没有指定大小,默认是10,如果是0则会创建空数组,最大长度是integer最大值-8。扩展因子是1,扩展大小是原来大小加上原来大小左移一位ArrayList底层是数组,所以每次添加都会判断大小是否足够,不够时会扩容,新的大小等于原来大小加上原来大小左移一位,通常说的是1.5倍是存在问题扩容的时候,会以新的容量建一个原数组的拷贝,修改原数组,指向这个新数组,原数组被抛弃,会被GC回收。System.arraycopy方法System中提供了一个native静态方法arraycopy(...

2021-04-15 19:01:54 111

原创 HashMap

HashMap1.默认初始长度是162.默认最大值是1>>303.扩展因子为0.754.长度超过8会转化成红黑树5.长度低于6转回链表初始初始化是会调用tableSizeFor,对传入的整数进行位移运算,经过该方法以后返回的结果都会是2的次幂这也是为什么容量会是2的次幂扩容阈值(threshold) = 负载因子(loadFactor) x 容量(capacity)当HashMap中table数组(也称为桶)长度 >= 阈值(threshold) 就会自动进行扩

2021-04-15 18:24:00 70

转载 centos8安装mysql5.7.24

Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。下面记录了我在Linux(Centos 7)环境下安装Mysql的完整过程,实操记录,绝非水文,如有错误或遗漏,欢迎指正。本文档讲解安装版本为mysql-5.7.24,对于5.7.24之后的版本,不适用此说明文档,主要原因在于之后版本

2020-11-27 21:19:46 186

原创 新手:window10使用redis并设置开机自启动

首先下载redis文件包、解压放到合适的位置运行我的是放在D盘,可以双击redis-server.exe,我的双击运行不行,所以采用命令窗方式启动的。运行方式如下:可以在这个文件夹内打开命令窗或者直接windows+R,然后输入cmd,进入命令窗输入的d:进入D盘,然后cd 文件夹名字 这样进入文件夹。输入redis-server redis.windows.conft启动服务。开机自启启动以后在服务里面并没有redis,需要手动添加打开一个命令窗进入文件夹内,输入redis

2020-11-27 21:02:32 10632 4

原创 新手:java8 排序

public class Test { private Integer Id; private String Name; public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public String getName() { return Name; } public vo

2020-11-25 19:24:17 249

原创 新手:lock和synchronized的死锁

synchronized死锁public class Test5 implements Runnable {//死锁 //这里用private封装,为了不让外面随便造锁,限制只能有A,B锁个一把,这样容易出现死锁 //即A同学和B同学想相互串门,可是没人只有一把自己房间的钥匙,而且各自都不愿意先给,于是死锁 public static final Object lockA =new Object(); public static final Object lockB =

2020-11-06 15:35:24 246 2

原创 新手:ReentrantLock和synchronized的小测试

package com.qiansi.szy.mqtt;import java.util.concurrent.locks.ReentrantLock;public class Test1 implements Runnable { private int tickets = 100; ReentrantLock lock=new ReentrantLock(false); @Override public void run() {//只能一个卖:synchron

2020-11-06 11:31:34 93 1

空空如也

空空如也

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

TA关注的人

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