自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乔志勇笔记

最简答精彩的 java技术 分享

  • 博客(51)
  • 资源 (11)
  • 收藏
  • 关注

转载 jpa多条件查询重写Specification的toPredicate方法

https://blog.csdn.net/han1196639488/article/details/54909100/Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor。Criteria 查询:是一种类型安全和更面向对象的查询 。这个接口基本是围绕着Specification接口来定义的, Specificatio...

2018-06-29 18:38:59 1588

转载 BeanUtils.copyProperties(A,B)字段复制

BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。 注意:属性复制,不同jar中的方法,用法不一样。1、package org.springframework.beans;中的    ...

2018-06-27 11:49:37 1314

转载 人这一生为什么要努力?

https://www.zhihu.com/question/22913650如果你的人生起点不高,不曾有人为你走过人生百步的任何一步,不打紧,你尽管努力,多出来的步数不会被浪费掉,总有你在乎的人用得着,而你迟早会遇到你在乎的人。我的一点努力,说不准就可以帮其他人改变了生活的轨迹。努力,不是为了去换取成功,不是为了去超越别人,是一种想去体验一个更大的世界的欲望。人这一生不是要努力,是要先努力,先努...

2018-06-25 16:38:07 699

转载 postgresql----数据库表约束----NOT NULL,DEFAULT,CHECK

数据库表有NOT NULL,DEFAULT,CHECK,UNIQUE,PRIMARY KEY,FOREIGN KEY六种约束。一、NOT NULL ---- 非空约束NULL表示没有数据,不表示具体的数值,所以在数据库中NULL是不等于NULL的。判断表中的一个单元格是不是NULL使用的是IS NULL或者IS NOT NULL,而不是=NULL或者!=NULL,当一个字段设置NOT NULL约束...

2018-06-21 13:58:51 3042

转载 SQL优化(六) MVCC PostgreSQL实现事务和多版本并发控制的精华

数据库事务隔离性可通过锁机制或者MVCC实现,PostgreSQL默认使用MVCC。本文结合实例介绍了PostgreSQL的MVCC实现机制,并介绍了PostgreSQL如何通过MVCC保证事务的原子性和隔离性,最后介绍了PostgreSQL如何通过VACUUM机制克服MVCC带来的副作用。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://w...

2018-06-21 13:47:04 365

转载 SQL优化(六) MVCC PostgreSQL实现事务和多版本并发控制的精华

数据库事务隔离性可通过锁机制或者MVCC实现,PostgreSQL默认使用MVCC。本文结合实例介绍了PostgreSQL的MVCC实现机制,并介绍了PostgreSQL如何通过MVCC保证事务的原子性和隔离性,最后介绍了PostgreSQL如何通过VACUUM机制克服MVCC带来的副作用。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://w...

2018-06-21 13:47:04 355

转载 任务的执行与线程池(上)

https://mp.weixin.qq.com/s/p3JZERyZXnF8jR_3KKIGJA写作本文时参考了《java并发编程实战》、《java并发编程的艺术》、java源码以及一些博客文章,力求把这个专题的知识讲的足够全面,最重要的是通俗易懂,如文中有错误请与我联系。为保证你把这些知识完全掌握,最好使用电脑观看,投机取巧是学不到东西的,对自己诚实一点哈。任务执行的几种方式我们先来看一个现实...

2018-06-21 11:15:21 1716

原创 Executors.newSingleThreadExecutor() 测试

public class Qiao3 { public static void main(String[] args) { Thread thread1 = new Thread(()->{ System.out.println("111"); try { Thread.sleep(500...

2018-06-21 10:52:39 1842

原创 IntelliJ中的main函数和System.out.println()快捷键

1、在IntelJ中和Eclipse中稍有不同,在Eclipse中,输入main再按Alt+/即可自动补全main函数,但是在IntellJ中则是输入psvm,选中即可2、在方法体内部有for循环,在IntellJ中是输入fori,然后会有一个提示,选中需要的for循环即可3、System.out.println();在IntellJ中是输入sout...

2018-06-21 10:42:26 335

转载 Executors的newSingleThreadExecutor()和newFixedThreadPool(1)有什么区别?

https://segmentfault.com/q/1010000011185322Executors的newSingleThreadExecutor()和newFixedThreadPool(1)有什么区别?参考了一些文章,都说newSingleThreadExecutor()主要有两个特性:能保证执行顺序,先提交的先执行。当线程执行中出现异常,去创建一个新的线程替换之。讲到和newFixed...

2018-06-21 10:19:15 2819 2

转载 SQL优化(三) PostgreSQL Table Partitioning (数据库分区表 ,数据库内路由分区)

原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/2015/12/13/SQL3_partition/典型使用场景  随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢。  加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等。这些方法都能将数据库的查...

2018-06-20 14:55:37 1099

转载 Java进阶(六)从ConcurrentHashMap的演进看Java多线程核心技术

本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为。同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1.8中ConcurrentHashMap的实现原理。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/c...

2018-06-20 13:13:16 256

原创 ConcurrentHashMap的特殊之处 (遍历的同时修改)

HashMap、arralist、linkedlist、vector不允许通过Iterator遍历的同时修改,而ConcurrentHashMap允许该行为,并且该更新对后续的遍历可见public class Qiao { public static class T1 extends Thread { private List<Integer> list...

2018-06-20 13:06:57 10260 1

转载 Java进阶(七)正确理解Thread Local的原理与适用场景

本文结合实例介绍了 Thread Local 的原理与实现方法,并分析了其适用场景。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder &gt...

2018-06-19 19:02:34 315

转载 Java进阶(六)从ConcurrentHashMap的演进看Java多线程核心技术

本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为。同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1.8中ConcurrentHashMap的实现原理。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/c...

2018-06-19 17:24:16 257

转载 Java进阶(四)线程间通信剖析

本文将介绍常用的线程间通信工具CountDownLatch、CyclicBarrier和Phaser的用法,并结合实例介绍它们各自的适用场景及相同点和不同点。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/thread_communication/CountDownLatchCountDownLat...

2018-06-19 16:59:17 312

转载 Java进阶(三)多线程开发关键技术

本文将介绍Java多线程开发必不可少的锁和同步机制,同时介绍sleep和wait等常用的暂停线程执行的方法,并详述synchronized的几种使用方式,以及Java中的重入锁(ReentrantLock)和读写锁(ReadWriteLock),之后结合实例分析了重入锁条件变量(Condition)的使用技巧,最后介绍了信号量(Semaphore)的适用场景和使用技巧。原创文章,转载请务必将下面这...

2018-06-19 16:58:12 437

转载 Java进阶(二)当我们说线程安全时,到底在说什么

多线程编程中的三个核心概念原子性这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。关于原子性,一个非常经典的例子就是银行转账问题:比如A和B同时向C转账10万元。如果转账操作不具有原子性,A在向C转账时,读取了C的余额为20万,然后加上转账的10万,计算出此时应该有30万,但还未来及将30万写回C的账户,此时B的转账请求...

2018-06-19 15:44:06 261

转载 Java进阶(一)Annotation(注解)

http://www.jasongj.com/2016/01/17/Java1_%E6%B3%A8%E8%A7%A3Annotation/概念Annotation是Java5开始引入的特性。它提供了一种安全的类似于注释和Java doc的机制。实事上,Annotation已经被广泛用于各种Java框架,如Spring,Jersey,JUnit,TestNG。注解相当于是一种嵌入在程序中的元数据,可...

2018-06-19 15:14:12 378

转载 mysql 用户及权限管理 小结

https://www.cnblogs.com/SQL888/p/5748824.htmlMySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户:1CREATE USER username IDENTIFIED BY '...

2018-06-19 14:23:49 769

转载 使用docker安装mysql服务

使用docker官方镜像安装mysql服务1 拉取mysql镜像,采用网易加速地址docker pull hub.c.163.com/library/mysql:5.72 重命名镜像名docker tag hub.c.163.com/library/mysql:5.7 mysql:5.73 创建用于挂载的目录sudo mkdir /my/mysql/datadir #用于挂载my...

2018-06-19 14:22:44 3587

转载 java中正则表达式基本用法

java中提供了两个类来支持正则表达式的操作分别是java.util.regex下的Pattern类和Matcher类使用Pattern类进行字符串的拆分,使用的方法是String[] split(CharSequence input)使用Matcher类进行字符串的验证和替换,匹配使用的方法是boolean matches()替换使用的方法是 String replaceAll(String r...

2018-06-19 11:58:34 332

转载 @Transactiona注解的使用

https://blog.csdn.net/yalishadaa/article/details/70261973当同一个应用程序或者不同应用程序中的多个事务在同一个数据集上并发执行时,可能会出现许多意外的问题并发事务所导致的问题可以分为下面三种类型:脏读: 对于两个事物T1,T2, T1  读取了已经被T2更新但还没有被提交的字段. 之后,若T2回滚,T1读取的内容就是临时且无效的.不可重复读:...

2018-06-19 10:38:44 7836 1

转载 Java常见的线程安全的类

通过synchronized 关键字给方法加上内置锁来实现线程安全 Timer,TimerTask,Vector,Stack,HashTable,StringBuffer原子类Atomicxxx—包装类的线程安全类 如AtomicLong,AtomicInteger等等 Atomicxxx 是通过Unsafe 类的native方法实现线程安全的BlockingQueue 和BlockingDequ...

2018-06-14 10:20:36 3886

转载 同步容器(如Vector)并不是所有操作都线程安全!

https://blog.csdn.net/z960339491/article/details/73293894那么这个问题的正解应该是什么呢?问:对于线程安全的集合类(例如Vector)的任何操作是不是都能保证线程安全?答:同步容器中的所有自带方法都是线程安全的,因为方法都使用synchronized关键字标注。但是,对这些集合类的复合操作无法保证其线程安全性。需要客户端通过主动加锁来保证如果...

2018-06-14 10:03:18 699

转载 ArrayList、Vector和Collections.synchronizedList()

ArrayList、Vector和Collections.synchronizedList()ArrayList和Vector前两天看了ArrayList的源码,然后想起Vector来,常常会将两者一起做对比。不过一想起Vector马上要被判死刑了,就懒得去看Vector的源码,于是网上查了一下两者的区别。ArrayList是线程不安全的,Vector是线程安全的。两者扩容方式不同。在底层数组容量...

2018-06-13 13:31:54 2519

转载 移位运算符

移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。  在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相...

2018-06-13 11:09:30 493

转载 SpringBoot使用validator校验

https://www.jianshu.com/p/ddce7d4adcfa在前台表单验证的时候,通常会校验一些数据的可行性,比如是否为空,长度,身份证,邮箱等等,那么这样是否是安全的呢,答案是否定的。因为也可以通过模拟前台请求等工具来直接提交到后台,比如postman这样的工具,那么遇到这样的问题怎么办呢,我们可以在后台也做相应的校验。新建项目,因为本文会使用postman模拟前端请求,所以本文...

2018-06-12 17:57:51 1991

转载 Hibernate-validator校验框架

https://blog.csdn.net/xgblog/article/details/525486591. 前言Validator开发者使用手册,适用后台校验功能的开发参考。1.1. 背景在我们日常后台的开发中,涉及到很多的字段验证,一般普通的验证框架就基本上可以满足日常的开发需求,但有一些情况,这些普通的验证框架无法达到要求,例如,我们必须对验证的属性进行分组,于是就产生了我们的Valida...

2018-06-12 17:56:00 5054

转载 日期时间JPA映射

http://www.mamicode.com/info-detail-1519347.html数据库日期时间类型以MySQL为例,Date类型存储日期,Time类型存储时间,DateTime存储日期时间。对应的,这三个MySQL数据库字段类型在实体类的类型分别是java.sql.Date,java.sql.Time,java.sql.Timestamp。Date类型数据库表在MySQL创建表st...

2018-06-11 18:32:58 4335 1

转载 @Component注解和@Configuration注解的之间的区别

直白的说Component包含了Configuration的所用注解:Configuration和Component都是注解在类上的,Configuration类中的方法成员变量是@Value注解,方法上的注解是@BeanComponent类中的方法和成员变量没有任何限制...

2018-06-08 11:04:51 1428

转载 @Component注解和@Configuration注解的之间的区别

直白的说Component包含了Configuration的所用注解:Configuration和Component都是注解在类上的,Configuration类中的方法成员变量是@Value注解,方法上的注解是@BeanComponent类中的方法和成员变量没有任何限制...

2018-06-08 11:04:51 1808

转载 Spring AOP:@Around 的 JavaConfig 写法

https://www.cnblogs.com/xxdsan/p/6405065.html前置通知(@Before)和后置通知(@After)有着一些非常明显的限制,比如不使用类的成员变量的话,这些通知之间想实现信息共享是非常的困难。而使用成员变量的话,又容易出线程安全的问题。所以就有环绕通知(@Around)。通过环绕通知,我们可以在一个方法内完成前置、后置、异常(@AfterThrowing)...

2018-06-08 10:54:26 1149

转载 Spring AOP(五)之Around增强处理

@Around注解用于修饰Around增强处理,Around增强处理是功能比较强大的增强处理,它近似于Before增强处理和AfterReturing增强处理的总结,Around增强处理既可在执行目标方法之前增强动作,也可在执行目标方法之后织入增强的执行。与Before增强处理、AfterReturning增强处理不同的是,Around增强处理可以决定目标方法在什么时候执行,如何执行,甚至可以完全...

2018-06-08 10:53:38 1686

转载 Servlet做Controller,实现一个类处理多个请求

https://my.oschina.net/Shawn1in/blog/759004Java EE        传统的Servlet都是一个请求对应一个Servlet。        例子如下:请求:http://localhost:8080/ServletTest/Loginweb.xml配置: <servlet> <servlet-name>Regist<...

2018-06-08 10:07:13 5390 1

转载 java实现列表的上下移动和置顶操作

https://my.oschina.net/Shawn1in/blog/759004一、上下移动 1、在数据库表中新添加一列名为sort,初始值与各条数据的id相同,初始list排序按照sort的值排序。 2、思路是向上移动的时候,查询出当前数据的上一条数据的sort值,两者交换sort值,同理向下移动的时候,查询出下一条数据的sort值,两者交换。 3、ssm框架中的sql及代码实现 1) s...

2018-06-08 10:05:56 9863 4

转载 十分钟搞懂Lombok使用与原理

https://www.jianshu.com/p/63038c7c515a1 简介Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它。Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省...

2018-06-07 16:15:19 39277 11

转载 spring data for jpa 实现多条件排序

例如需要实现一个形如下面的sql: select * from table where a='a' and b='b' order by c asc,d desc; 就是根据两个条件进行排序。 在spring data for jpa 中,存在一个pageable接口,是对查询分页的一个利器。pageable实现类的构造方法中有个Sort参数,可以按照列属性进行排序。通过查看Sort类的构造方法,...

2018-06-07 15:31:13 7303 6

转载 ELKStack日志平台——Kibana的部署安装与使用教程

http://www.linuxe.cn/post-310.htmlELKStack日志平台中的Kibana是为Elasticsearch提供的可视化平台,负责数据的美观展示。前两篇文章已经讲解到了Elasticsearch和Logstash的安装与简单使用:ELKStack日志平台——elasticsearch的安装与配置ELKStack日志平台——Logstash的安装与插件配置教程Elast...

2018-06-05 09:57:31 1874 1

转载 guava快速入门

https://blog.csdn.net/dgeek/article/details/76221746Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annot...

2018-06-04 18:30:04 272

eclispe插件svn

svn插件

2017-07-19

UniEAP RIA V3.4参考手册

UniEAP RIA V3.4参考手册

2017-07-18

java反编译工具

java反编译工具

2017-06-07

mybatis自动生成

mybatis自动生成工具,省去写xml的烦恼

2017-06-07

开发bash脚本

用于自动执行controller,放在linux中的bash脚本

2017-06-07

本地maven安装

本地maven安装,解压即用,不用配置

2017-06-07

本地redis安装

本地redis,解压即用,不用配置

2017-06-07

SQLYOG中文破解版

SQLYOG中文破解版

2017-06-07

TortoiseSVN

svn Windows客户端

2017-06-07

java中文api

java中文api,1.6,桌面客户端文档

2017-06-07

空空如也

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

TA关注的人

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