自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gson 解析int类型转换为double解决方案

Gson解析Int类型转换为double类型解决方案

2022-10-11 15:12:52 2453 2

原创 jvm总结

jvm知识点汇总

2022-09-23 16:53:07 306

原创 io,nio,aio总结

io,nio,aio总结

2022-08-16 17:18:18 1141 1

原创 并发编程-JUC核心之AQS

JUC核心之AQS1.1 重入锁ReentrantLock的初步认识什么是锁锁是用来解决多线程并发访问共享资源所带来的数据安全性问题的手段,对一个共享资源加锁后,如果有一个线程获得了锁,那么其他线程无法访问这个共享资源加锁前后的区别通过查看jdk源码目录rt.jar->java->util->concurrent->locks可以看到lock接口的很多子类和实现,我们先使用ReentrantLockpublic class ReenDemoTest { .

2021-04-26 22:49:53 194

原创 并发编程-发布与逃逸

1.发布与逃逸1.1 发布对象发布的意思是是一个对象能够被当前范围之外的代码所使用1.2 不安全发布1.3 对象溢出一种错误的发布,当一个对象还没有构造完成时,就使它被其他线程所见逃逸带来的问题2. 安全发布对象的4种方法2.1安全发布对象在静态初始化函数中初始化一个对象引用将对象的引用保存到volatile类型的域或者AtomicReference对象中(利用volatile happen-before规则)将对象的引用保存到某个正确构造对象的final类型域中(初

2021-04-26 22:16:54 224

原创 并发编程-线程安全性分析

如何理解线程安全当多个线程访问某个对象时候,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的1 线程安全问题的本质产生原因,cpu,内存,io的读写速率不同,cpu>内存>io计算机通过建立高速缓存区提高了效率优化成果:1.cpu增加了告诉缓存,均衡与内存的速度差异2.操作系统增加进程,线程,以及分时复用cpu,均衡cpu与i/o设备的差异3.编译程序优化指令的执行顺

2021-04-01 22:30:41 201

原创 并发编程-线程的基本操作和原理

触发线程声明周期发生变化的操作1.Thread.join的使用及原理Thread.join的作用是保证线程执行结果的可见性实例:public class ThreadJoinTest { public static int i = 0; public static int x = 0; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thr

2021-03-23 22:56:01 102

原创 并发编程-线程的基本介绍

线程的基本认识1.线程的基本介绍线程是操作系统能够进行运算调度的最小单位。它包含在进程之后,是进程中实际的运作单位为什么会有线程在多核cpu中利用多线程可以实现真正意义上的并行执行在一个应用进程中,会存在多个同时执行的任务,如果其中一个任务呗阻塞,将会引起不依赖该任务的任务也被阻塞,通过对不同任务创建不同的线程去处理,可以提升程序处理的实时性线程可以认为是轻量级的进程,所以线程的创建,销毁比进程快为什么要用多线程异步执行利用多cpu资源实现真正意义上的并行执行线程应用场景使用

2021-03-23 21:43:49 110

原创 java核心-注解

注解:注解的概念:说明程序的,给计算机看注解:也叫元数据,一种代码级别的说明,他是jdk1.5版本之后引入的一个特性他,与类,接口,枚举是一个层次,他可以声明在包,类,字段,方法,局部变量,方法参数等,对元素进行说明,注释注释:用文字描述程序,给程序员看的/**///注解作用分类:1.编写文档,通过java代码里标识的注解生成文档【生成doc文档】2.代码分析:通过代码里标识的注解对代码进行分【使用反射】3.编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查 override2

2021-03-22 22:31:01 128

原创 java核心-反射

反射反射即反向探知值在java程序运行的装填中1.对于给定的一个类class对象,可以获得这个类对象的所有属性和方法2.对于给定的一个对象,class都能够调用他的任意一个属性和方法这种动态获取类的内容的以及动态调用对象的方法和获取属性的机制。反射的优缺点:优点:增加程序灵活性,避免固有逻辑写死到程序中代码相对简洁,提高程序的复用性缺点:相比于直接调用,反射有比较大的性能消耗内部暴露和安全隐患优点实例新建一个ball借口,定义打球的方法public interface Ball {

2021-03-03 22:54:42 85 2

原创 java核心-泛型

泛型:本质上是一个参数化类型// 指定能够存放的数据类型,统一类型,防止出现类型转换异常 List<String> list = new ArrayList<>(); list.add("111");泛型的擦除:泛型只在编译阶段有效,在编译只有,jvm会采取去泛型化的措施,在运行阶段没有效果实例:public static void main(String[] args) throws Exception { // 指定能

2021-03-02 23:21:13 87

原创 java核心-集合

FallFast机制:快速失败的机制,java集合类为了应对并发访问,在集合迭代过程中防止内部结构发生变化的一种防护措施,这种错误检查机制有可能发生错误,通过抛出java.util.currentModificationExceptionlinedListlinkedList通过双向链表实现的,他的数据结构具有双向链表的优缺点,既然是双向链表,他的顺序访问效率高,随机访问效率低,包含重要的私有内部静态类:Nodeprivate static class Node<E> {

2021-03-02 22:22:44 77

原创 java核心-简单的数据结构

1.数据结构1.数组数组的三种定义方式,和数组容易出现的异常,空指针的数组下标越界特点:内存地址连续,使用之前必须要指定长度可以通过下标访问的方式访问资源,查询效率比较高,增删效率低,需要复制数组,源码可见public boolean add(E e) { ensureCapacityInternal(size + 1); elementData[size++] = e; return true;}可见,在增加操作的时候,会先对数组的大小扩容判断,

2020-12-02 22:13:31 212

转载 使用gitflow完成新分支的创建和代码的提交

1.首先安装gitflow作者本人电脑配置为windows环境,使用如下命令: wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash其他环境:linu...

2019-12-30 09:52:53 1480

原创 elasticSearch的使用

这里对于elasticSearch的下载安装和配置就不做详细的说明,具体说明下如何使用:1.创建索引和删除索引SpringBoot-data-elasticsearch提供了面向对象的方式操作elasticsearch业务:创建一个商品对象,有这些属性:id,title,category,brand,price,图片地址在SpringDataElasticSearch中,只需要操作对象,...

2019-12-23 11:11:35 132

原创 rabbitMQ的使用

安装和配置这里就不多说了,网上有很多的教程,这里说明如何使用rabbitMQ(这里简单说明点对点的模式,也有发布订阅等多种模式)1.需要创建两个maven工程,一个是任务的发送者另一个是任务的接受者有两个子项目一个消息发送(rabbitmq-send) 一个接收消息(rabbitmq-receive)2.在两个项目中添加配置如下:spring:rabbitmq:host: local...

2019-12-23 10:40:28 165

转载 RESTful风格

1.RESTful风格的定义:REST:Representational State Transfer(表象层状态转变),如果没听说过REST,你一定以为是rest这个单词,刚开始我也是这样认为的,后来发现是这三个单词的缩写,即使知道了这三个单词理解起来仍然非常晦涩难懂。如何理解RESTful架构,最好的办法就是深刻理解消化Representational State Transfer这三个单词...

2019-12-23 09:40:12 644

原创 基于mybatis-plus的多条件查询语句关联

AbstractWrapper:说明:QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为...

2019-11-22 10:06:00 12516

原创 docker学习推荐文章

https://blog.csdn.net/qq_43371556/article/details/102631158

2019-10-22 16:22:27 114

原创 作者第一次面试大公司的一些面试题和心得分享

因为近期一次大公司的招人的机会,作者有幸参加了一次大公司的面试,体验了一套完整的流程:大体面试过程是这样的:第一轮:机试:因为公司用的是自己的框架,所以对基础考究的比较深入:这里记录四道面试题,有兴趣可以想一想如何解决:第一题:写一种单例模式的实现方式(这里作者用的静态内部类的方式,因为随处都可以找到,这里就不附上代码了)第二题:判断一个数组a[] 和b[] 判断在a中但是不在b数组中...

2019-10-16 17:09:44 252

原创 记录删除数据库的重复数据问题

这里推荐两种方式:第一种方式:alter ignore table user add unique index(phone);//这里的user是表名,phone是唯一索引建立的字段如果不行,采用第二种方法,先查询重复数据出来,然后保留id最小的那条数据,然后删除,具体代码如下:delete from users where username in ( --根据用户名...

2019-10-12 18:06:31 96

原创 使用stream流去除对象中的部分元素的重复

工作中遇到返回个一个list集合中,存在重复数据的问题,这里使用stream流的衍生功能,去除一个对象中的部分元素的重复如下:ArrayList<ProductProcessDrawbackDto> collect = records1.stream().collect(Collectors.collectingAndThen( Col...

2019-09-18 15:59:40 22232 3

原创 mysql中常用的函数

原文链接https://blog.csdn.net/lucky_ly/article/details/79810382

2019-09-17 17:24:27 57

原创 基于springTask/Quartz的任务调度

1.springTask1.任务调用springTask ,在某一个节点自动执行的任务,间隔某一段时间自动完成的一个任务,任务调度框架,Quartz 和springTask2.Cron表达式:表达式格式:Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:(1)Seconds Minutes Hours DayofMon...

2019-09-17 17:18:28 109

原创 wait,notify,notifyAll,signal,signallAll的区别

wait()、notify()和notifyAll()一般是跟synchronized配合一起使用,这些方法都是Object类提供的。当线程重wait()状态下被唤醒,wait()在被唤醒后还需要重新去获取锁,此时它重新请求锁时并没有具备任何特殊的优先级,要与任何其他尝试进入同步代码块的线程一起去竞争获取锁,如果获取锁失败的话,会继续停留在当前的wait()方法状态下。所以wait方法继续执行时,...

2019-09-17 15:36:54 683

原创 死锁和如何解决

什么是死锁?  在两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。死锁是两个或多个进程被无限期地阻塞、相互等待的一种状态。发生死锁时,涉及的一组进程中,每个进程都占用了一定的资源但又都不能向前推进。在这种情况下,计算机虽然处于开机状态,但这一组进程却未做任何有用的工作。产生死锁的必要条...

2019-09-17 15:29:42 224

原创 lock锁和Synchronize的区别

在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方。我们先从最简单的入手,逐步分析这2种的区别。一、synchronized和lock的用法区别synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加...

2019-09-17 15:25:25 2672

原创 使用存储过程或者存储函数,防止flyway插件报错

在每次修改数据库的字段,新增或者删除的时候,总会出现执行的sql和数据库的历史记录冲突的问题,因为,每次在新增或者删除字段的时候,需要对字段进行判断,判断是否存在。1.存储过程存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中...

2019-09-10 14:59:09 1560 5

原创 java成神之路

转载博客,感谢分享https://blog.csdn.net/weixin_38405253/article/details/99027022

2019-09-06 09:09:13 129

原创 多条件批量查询语句

在工作中经常遇到这个问题,这里还是记录下好,具体难点主要在于sql中的数据怎么拼接的如下:<select id="selectByDeptAndJobAndName" parameterType="java.util.List" resultType="com.jwkj.api.web.entity.EmployeeDetail"> SELECT ...

2019-09-05 15:30:20 6566 1

原创 mysql计算当天过生日的人

首先需要建立一个定时的任务,定时检测当天过生日的人,如下:/** * 生日提醒,每天的9点钟提醒 * */ @Scheduled(cron = "0 0 9 ? * *") @Transactional(rollbackFor = {Exception.class}, propagation = Propagation.REQUIRED) public void birthdayR...

2019-08-27 10:16:45 912

原创 mysql中使用date_add()函数

date_add()常常用户在mysql的sql中实现对日期类型的操作,比如增加或者减少,但是不改变原来的数据,只是对查询的数据做处理,这里展示使用示例:DATE_ADD(date,INTERVAL expr unit) //说明;其中 date表示时间字段或者时间类型interval是固定标志,expr 表示数量,可以为正负,表示加减,unit表示日期类型 可以是yy,ww,dd等分别表...

2019-08-26 17:59:03 25220 5

原创 poi解决导入遇到的科学计数法问题

先将单元格样式设置成文本格式CellStyle cellStyle = workbook.createCellStyle(); DataFormat dataFormat = workbook.createDataFormat(); cellStyle.setDataFormat(dataFormat.getFormat("@")); ...

2019-08-26 17:53:56 2262

原创 Linux查看端口号被占用情况

工作中远程启动tomcat的时候,有时候会遇到启动异常,报错端口号被占用的情况,这里提供查看端口号是否被占用的命令:1.netstat -anp |grep 端口号具体使用如下:如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1图1中主要看监控...

2019-08-22 10:12:58 439

原创 spring boot配置跨域请求

现代浏览器出于安全的考虑, HTTP 请求时必须遵守同源策略,否则就是跨域的 HTTP 请求,默认情况下是被禁止的,IP(域名)不同、或者端口不同、协议不同(比如 HTTP、HTTPS)都会造成跨域问题。一般前端的解决方案有:使用 JSONP 来支持跨域的请求,JSONP 实现跨域请求的原理简单的说,就是动态创建@Componentpublic class CorsFilter implem...

2019-08-15 17:31:58 125

原创 数据库的三大范式和反三范式

这里转载一篇读到的容易理解的文章https://blog.csdn.net/devcloud/article/details/99317716总结下来就是:第一范式(1NF):数据库表的每一列都是不可分割的原子项第二范式(2NF):每个表必须有且仅有一个数据元素为主键(Primary key),其他属性需完全依赖于主键第二范式需建立在满足第一范式的基础之上第三范式(3NF):数据表中...

2019-08-15 17:03:55 2702

原创 replace into解决重复数据

在工作中总会遇到新增数据的时候,判断相同的数据不导入的问题。传统的解决方式是通过查询数据库的方式解决,但是十分的耗费性能,这里我们提供一种较为简便的方式,使用replace into方法:对于存在的重复数据,会替换掉,不存在的新增使用replace into 的前提是,数据库的字段需要添加唯一联合索引alter table t_car_oil_statistics add unique ...

2019-08-15 15:27:16 2112

原创 使用poi导出单元格设置样式为文本格式

这里记录在工作中遇到的一个问题:在使用poi导出表格的时候,生成的序号,员工编号等数据中包含009这种以0开的数据,在导入的时候需要保留0的方式作为数据,但是使用传统的格式会舍弃掉00,默认显示为9的形式,如何解决呢,这里提供相应的方法:第一种方式:cell.setCellType(Cell.CELL_TYPE_STRING);默认存储数据为字符串格式:第二种方式:设置单元格的样式为...

2019-08-14 16:41:55 19502 3

原创 使用mybatis自动生成代码

具体操作如下:(明天写)

2019-08-12 17:55:55 229

原创 mybatis-plus处理sql的crud操作

使用mybatis-plus,集成了mybatis和hibrate的操作实现数据的crud操作,可以不用创建多个mapper文件的方式,同时不同传统的dao的方式拼接sql语句的方式实现:mybatis plus是一款专门针对于传统MyBatis开发中sql需要手动进行映射配置繁琐缺点的一款框架技术,这款框架技术提供了十分丰富的api供开发者们使用,在 MyBatis 的基础上只做增强不做改变,...

2019-08-12 17:14:17 2153 1

空空如也

空空如也

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

TA关注的人

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