自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java--关于 ArrayList 初始容量和扩容

众所周知,ArrayList的底层是数组,那么ArrayList的数组容量到底是多少呢? 首先,先new一个ArrayList,然后向集合中添加11个元素,至于为什么是11个,下面再说。 然后我们debug一点一点来看: 我们看到,在执行ArrayList的空参构造的时候,执行了一段代码,那么这段代码表示什么什么含义呢? 可以看到在ArrayList类中定义了两个成员变量,通过注释我们可以知道elementData表示数组缓冲区,而DEFAULT...

2021-06-01 10:54:47 1706

转载 java-- Integer类的缓存机制

Integer类的缓存机制一、Integer类的缓存机制 二、其它具有缓存机制的类 三、测试题 试题1 试题2 试题3 总结一、Integer类的缓存机制我们查看Integer的源码,就会发现里面有个静态内部类。 public static Integer valueOf(int i) { assert IntegerCache.high >= 127; //当前值在缓存数组区间段,则直接返回该缓存值 .

2021-05-30 13:47:07 333

转载 java jar后台启动的三种方式

java jar启动linux中启动 java -jar 后台运行程序直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。以下方法可让jar运行后一直在后台运行。java -jar xxx.jar &说明: 在末尾加入 & 符号(1)执行java -jar xxx.jar后(2)ctrl+z 退出到控制台,执行 bg(3)exit完成以上3步,退出SHELL后,jar服务一直在后台运行。nohup java -jar xxxx.

2021-05-20 15:34:22 2767

原创 mysql--插入前判断数据是否重复

INSERT INTO stat_card_nopass (sz_employ_id, sz_name, ng_branch_id, ng_dev_id, sz_dev_name, sz_dev_place, ts_card, sz_photo_path, ts_create, memo, state, ng_user_id) SELECT employId,userName,branchId,devId,devName,devPlace, cardTime,p...

2021-05-14 17:27:38 1994 2

原创 CSS--z-index用法

定义和用法z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。注释:元素可拥有负的 z-index 属性值。注释:Z-index 仅能在定位元素上奏效(例如 position:absolute;)说明该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。参考:https://www.w3school.com.cn/cssref/pr_pos_z-index.asp..

2021-05-07 14:46:08 408

转载 ThreadLocal原理分析与使用场景

什么是ThreadLocal变量ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意:因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 命名的由来。 既然每个 Thread 有自己的实例副本,且其它 Thread 不可访问,那就不存在多线程间共享的问题。ThreadLocal 提供了线程本地的实例。它与普通变量的区别在于,每个使用该变量

2021-04-28 17:59:17 227

转载 线程终止的三种方式

文章目录0.准备演示Demo (1 和 2共用 Demo)1.线程终止方式--Stop()2.线程终止方式--interrupt()3.线程终止方式--标志位0.准备演示Demo (1 和 2共用 Demo)public class StopThread extends Thread { private int i = 0, j = 0; @Override public void run() { synchronized (this) { // 增加同步锁...

2021-04-28 15:13:19 1708

转载 SQL学习之insert into select语句

目录 参考源SQL insert into select 语句示例数据SQL insert into select 使用 参考源 简单教程 https://www.twle.cn/l/yufei/sql/sql-basic-insert-into-select.html 菜鸟教程 https://www.r...

2021-04-22 09:26:15 20324

转载 case when的使用方法

这篇文章在借鉴前人的基础上,进行了验证,感谢前人的分享一、case when的使用方法 Case具有两种格式。简单Case函数和Case搜索函数。 第一种 格式 : 简单Case函数 :格式说明        case 列名    when   条件值1   then  选项1    when   条件值2    then  选项2.......    else &n.

2021-04-21 17:45:52 54639 7

转载 mysql 子关联查询之 EXISTS 和 NOT EXISTS

MySQL EXISTS 和 NOT EXISTS 子查询语法如下: SELECT … FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(TRUE 或 FALSE)来决定主查询的数据结果是否得以保留。   范例一: 下面以实际的例子来理解 EXISTS 子查询。下面是原始的数据表: article 文章表: aidtitlecontentuid1文章1...

2021-04-21 16:51:15 733

转载 group by详解

group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。我们可以将Group By操作想象成如下的一个过程,首先系统根据SELECT 语句得到一个结果集,如最开始的那个水果、出产国家、单价的一个详细表。然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。这个时候剩下的那些不存在于Group By语句后面作为分组依据的字段就有可能出现多个值,但是目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这里就需要通过一定的处理将这些多值的列转化成单值,然.

2021-04-20 16:02:31 2256 1

转载 mybatis trim标签的使用

mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。 以下是trim标签中涉及到的属性: 属性描述prefix给sql语句拼接的前缀suffix给s...

2021-04-20 11:26:12 136

转载 Mybatis---动态查询(choose,when,otherwise)

有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。类似于Java 的 switch 语句,ch

2021-04-19 15:22:40 801

原创 antd table 单击一行选中当前行复选框

<Table rowSelection={rowSelection} columns={columns} {...empProps} bordered={false} rowKey={record => record.id} size="small" scroll={{ x: 960, y: 300 }} .

2021-03-26 17:36:24 1588

转载 Tomcat启动内存设置 

Tomcat启动内存设置Tomcat的启动分为startupo.bat启动和注册为windows服务的启动,下面一一说明。1.startup.bat启动在tomcat_home/bin目录下找到catalina.bat,用文本编辑器打开,加上下面一行:set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M解释一下各个参数:-Xms1024M:初始化堆..

2021-02-01 20:50:15 1339

原创 java--null值报空指针问题

任何含有null值的包装类在Java拆箱生成基本数据类型时候都会抛出一个空指针异常。一些程序员犯这样的错误,他们认为自动装箱会将null转换成各自基本类型的默认值,例如对于int转换成0,布尔类型转换成false,但是那是不正确的,如下面所示:String isWearMask = (tpm.getWearMask() == 1 ? "是" : "否");//此时tpm不为null,如果tpm里面的值wearMask为null,会报空指针异常;原因:程序会把 null值拆箱成基本数据类型与 1 比.

2021-01-05 11:15:07 1967

转载 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found

在执行程序出现这个问题有两种情况原因1:已经安装过高版本但未软连接解决方法:查找编译gcc时生成的最新动态库find / -name "libstdc++.so*"输出:cd /usr/lib64ll stdlibc++*以看到当前libstdc++so.6指向13的版本,接下来把刚刚的高版本的复制到这里并重建软链即可rm libstdc++.so.6ln -slibstdc++.so.6.0.21libstdc++.so.6现在再执行就ok了!...

2020-12-16 20:39:15 1571

转载 idea中使用本地jar包(以引入钉钉sdk为例)

一个maven项目中使用到了taobao-sdk-java-auto_1455552377940-20160422.jar包,项目是直接导入的jar包而没用用maven的形式导入,导致在idea编辑时无法识别本地jar包,最后我采用的是用maven方式导入下本地jar包,导入时有两种方式。一、通过mvn命令将jar包直接导入到本地仓库;二、依赖本地jar包。一、通过mvn命令将jar包直接导入到本地仓库如果mvn命令未安装,可参考maven安装与环境变量配置mvn install:instal

2020-10-22 16:27:51 5691

转载 Java-- 时间 转换/Date(1384171247000+0800)/

/Date(1384171247000+0800)/ 怎么转化成类似于2013-12-25的格式啊?下面就是转换的过程给定时间转换: publicstaticvoidmain(String[]args){ finalStringstr="1384171247000+0800"; finalStringtime=str.substring(0,str.length()-5); S...

2020-09-27 14:48:40 3119

原创 idea--实用快捷键

自动补全变量名称 : Ctrl + Alt + v跳到下一个错误的位置:Shift+F1 【eclipse风格快捷键】上一个/下一个光标所在位置:Alt+Left/Right

2020-09-23 10:10:33 117

原创 MySQL--防止重复插入数据

mysql在存在主键冲突或者唯一键冲突的情况下,根据插入策略不同,一般有以下三种避免方法。1、insert ignore2、replace into3、insert on duplicate key update4、insert … select … where not exist前面三种请移步:https://www.cnblogs.com/prayer21/p/6018864.html主要结合mybatis,说下第四种: <insert id="saveEmploye

2020-09-20 18:38:01 501

转载 MYSQL--表碎片整理

清除表碎片MyISAM表:optimize table 表名InnoDB表:alter table 表名 engine=InnoDB清除碎片操作会暂时锁表,数据量越大,耗费的时间越长一、MYSQL表碎片#!/bin/sh  mysql_user=root   mysql_pass=123123  time_log=/opt/time databa...

2020-09-09 09:27:56 2161

转载 mysql--强制使用索引(force index)

在公司后台某模块功能记录日志中有一个搜索功能,通过前段时间的产品使用时间区间进行搜索反馈有些卡顿,我发现这个搜索功能比较慢,要3秒左右才能出来,就决定对这里做一下优化。通过分析代码和SQL发现最核心的问题在于一个区间查询耗时太长,耗时2秒多,所以我决定看看这里能不能优化,其中核心SQL为SELECT * FROM XXX_log WHERE (`ctime` BETWEEN '2017-09-11 09:34:13' AND '2017-10-11 09:34:13')and id

2020-09-07 17:08:44 12230 6

转载 mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题

报错如下:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on columns...

2020-08-28 21:03:49 16102 1

转载 mysql--win10下安装两个MySQL数据库

记录win10下安装两个MySQL5.6.35数据库,具体如下环境:OS:window10DB:MYSQL5.6.35免安装版1.正常安装第一个MySQL(见我上一篇博客)2.在 管理–>服务和应用程序–>服务,停止第一个mysql服务3.将第一个数据库(我的安装目录是:C:\software\mysql-5.6.35-winx64)目录下的所有目录和文件copy到另外一个路径,我这里是copy到C:\software,并且文件重命名为MySQL33074.更改cop..

2020-08-22 00:00:13 814

转载 java--深拷贝和浅拷贝的区别

深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。假设B复制了A,修改A的时候,看B是否发生变化:如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,使用深拷贝的情况下,释放内存的时候不会因为出现浅..

2020-08-16 16:23:01 924 1

转载 Java -- Serializable 序列化和反序列化

遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题。在处理这个问题之前,你要先知道一个问题,这个比较重要。这个Serializable接口,以及相关的东西,全部都在 J

2020-08-15 10:40:58 245

转载 java--为什么重写equals方法,还必须要重写hashcode方法

为什么?是为了提高效率,采取重写hashcode方法,先进行hashcode比较,如果不同,那么就没必要在进行equals的比较了,这样就大大减少了equals比较的次数,这对比需要比较的数量很大的效率提高是很明显的,一个很好的例子就是在集合中的使用; 我们都知道java中的List集合是有序的,因此是可以重复的,而se...

2020-08-12 20:54:37 602

转载 ngrok--免费好用的外网映射工具

写在前面的话ngrok就不多说了,作为一款免费又好用的映射工具,绝对是你调试程序的有力助手,话不多说,下面我来分享一下自己的...

2020-08-06 11:28:36 3631 3

转载 mysql--Host XXX is not allowed to connect to this MySQL server

1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。2.在安装Mysql数据库的主机上登录root用户:mysql -u root -p3.依次执行如下命令:use mysql; select host from user w...

2020-07-25 12:04:44 188

转载 docker--进阶 之容器数据卷 DockerFile Docker网络 --- 狂神说

笔记整理自 B站UP 狂神说Java Docker https://www.bilibili.com/video/BV1og4...

2020-07-22 16:28:20 515

转载 docker--给docker内 容器(tomcat)安装vim

1.进入容器 docker exec -it 容器名称(容器ID) /bin/bash[root@localhost ~]# docker exec -it jax-tomcat2 /bin/bash2.更新 apt-get update[root@e77e903e08ef:/usr...

2020-07-22 16:25:36 357

原创 js--将文件转成Base64编码字符串

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=u.

2020-07-14 17:03:37 2973

转载 docker入门

笔记整理来源 B站UP主狂神说Javahttps://space.bilibili.com/95256449/<<三体>>: 弱小和无知...

2020-07-14 16:22:29 594

转载 JVM--内存结构

1. 前言Java 虚拟机是中、高级开发人员必须修炼的知识,有着较高的学习门槛,很多人都不情愿去接触它。可能是觉得学习成本较高又或者是感觉没什么实用性,所以干脆懒得“搭理”它了。其实这种想法是错误的。举个最简单的例子,JVM 基本上是每家招聘公司都会问到的问题,它们会这么无聊问这些不切实际的问题吗?很显然不是。由 JVM 引发的故障问题,无论在我们开发过程中还是生产环境下都是非常常见的。比如 OutOfMemoryError(OOM) 内存溢出问题,你应该遇到过 Tomcat 容器中加载项目过多导致的 O

2020-06-26 11:55:17 161

转载 JVM--垃圾回收器(终结篇)

Jvm垃圾回收目前就准备了这三篇博文进行整理,在写博文的过程中我也是边看边记载的,我觉得这种学习方式更容易让人记住,不会轻易忘记。以前的学习模式都是看PDF文档、看书等,但是有个缺点就是当时记住了过段时间就会忘记,因此想把学习过程中重要的部分做个笔记总结,以便于后期复习回顾(学习技巧仅个人观点)同时也希望lz的博客能帮助到广大园友一丢丢。在此立个Flag!以后我会坚持写博客的。哈哈--好了 接下来言归正传。知识回顾:第一篇《Jvm垃圾回收器(基础篇)》主要讲述了判断对象的生死?两种基础判断对象生死的

2020-06-25 16:32:02 185

转载 JVM--垃圾回收机制

1. 概述垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。2. 垃圾判断算法2.1 引用计数法给每个对象添加一个计数器,当有地方引用该对象时计数器加1,当引用失效时计数器减1。用对象计数器是否为0来判断对象是否可被回收。缺点:无法解决循环引用的问题。先创建一个字符串,String m = new String("jack");,这时候 "j.

2020-06-15 22:40:15 238

转载 JVM--对象什么情况会进入到老年代

1.大对象:所谓的大对象是指需要大量连续内存空间的java对象,最典型的大对象就是那种很长的字符串以及数组,大对象对虚拟机的内存分配就是坏消息,尤其是一些朝生夕灭的短命大对象,写程序时应避免。2.长期存活的对象:虚拟机给每个对象定义了一个对象年龄(Age)计数器,如果对象在Eden出生并经过第一次Minor GC后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,并且对象年龄设为1,。对象在Survivor区中每熬过一次Minor GC,年龄就增加1,当他的年龄增加到一.

2020-06-14 18:11:24 3277

原创 JVM--相关VM参数

2020-06-14 18:04:18 313

转载 JVM--垃圾回收算法

1.标记清除算法是JVM垃圾回收算法中最古老的一个,该算法共分成两个阶段,第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,清除未被标记的对象。该算法的缺点是需要暂停整个应用,并且在回收以后未使用的空间是不连续,即内存碎片,会影响到存储。速度较快2.标记整理算法此算法结合了标记-清楚算法和复制算法的优点,也分为两个阶段,第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,在回收不存活的对象占用的空间后,会将所有的存活对象往左端空闲空间移动,并更新对应的指针。

2020-06-14 18:03:27 185

空空如也

空空如也

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

TA关注的人

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