自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

游士的博客

学习是一种习惯!

  • 博客(16)
  • 收藏
  • 关注

原创 synchronized的主要特性和缺陷以及注意事项

synchronized的性质一、可重入性 官方解释:指的是同一线程的外层函数获得锁之后,内层函数可以直接再次获得该锁; 通俗解释:获得一次锁之后,如果调用其它同步方法,不需要重新获取锁,可以直接使用; 代码示例: public class SynchTest2 implements Runnable{ static S...

2019-08-29 17:20:12 2096 1

原创 synchronized七种场景应用总结

本篇博客是慕课网Java高并发之魂:synchronized深度解析的笔记一、两个线程同时访问一个对象的同步方法分析:首先是同一个对象,并且是同步方法,这属于对象锁中的普通同步方法锁,效果是线程顺序执行;public class SynchTest implements Runnable{ static SynchTest synchTest=new SynchTest(); ...

2019-08-29 15:48:09 1713

原创 synchronized实践应用

本篇博客是慕课网Java高并发之魂:synchronized深度解析的笔记在高并发环境中存在线程安全问题,大部分原因是多线程共同操作共享数据导致的,要解决这一问题就需要用到关键字synchronized,它可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。先看以下代码:publi...

2019-08-29 10:01:30 269

原创 mysql UNION的另类用法——一条SQL插入多条数据

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。需要注意的是:1、UNION 内部的 SELECT 语句必须拥有相同数量的列;2、列也必须拥有相同的数据类型;3、每条 SELECT 语句中的列的顺序必须相同;4、UNION 操作符默认选取不同的值。如果允许重复的值,请使用 UNION ALL;以上是UNION的语法要求;言归正传,怎样才能一条SQL插入...

2019-08-26 09:58:51 1991

原创 Java BigDecimal详解

先看一下这个测试案例:出现这种情况的根本原因是:计算机的二进制,浮点数没有办法是用二进制进行精确表示;CPU表示浮点数由两个部分组成:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算就会产生一定的误差;所以,大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算,有必要掌握这个类的常用方法及注意事项。构造方法1.public B...

2019-06-20 16:28:40 311

原创 MyBaties的SUM映射问题

当我们根据类别进行统计,返回的数据类型为HashMap<String,Object>,获取数值类型,容易报java.math.BigDecimal cannot be cast to java.lang.Integer场景如下:// Mapper层<select id="selectInfoByTest" resultType="map"> SELECT...

2019-06-20 14:59:31 4361

原创 StringUtils工具类常用方法

StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字符串时使用StringUtils相比使用原生的String会更加安全。一、判空StringUtils提供常用的判断空字符串有两个方法:isEmpty和isBlank,这两者的有何区别呢,直接看源码:// isEmptypublic static boolean isEmpty(String str) ...

2019-06-05 10:15:36 15029

原创 HttpClientUtil使用

注意事项:在系统之间进行交互,传递参数是个头疼问题,对方还必须容易解析,今天工作刚好遇到,就总结一下:传递参数,如果是一个或两个参数,直接用表单方式进行提交,对方直接用参数接收即可,不必运用实体或者json方式传递,因为对方不容易解析,并且不利于服务提供者接口开发;如果是多个参数,可以json传递,对方进行json解析返回值可以是字符串返回,也可以是JSONObject返回,...

2019-05-29 22:10:07 7629 1

原创 springboot事务处理总结

Spring boot是默认启动事务的,只需要在类或者方法上添加@Transactional注解即可,但有时候会发现事务不生效,具体原因可以从以下几个方面找寻:1、首先要看数据库引擎是否支持注解,mysql默认引擎INNODB是支持的,但MYISAM是不支持的;2、注解只能被应用到public方法上, 其它方法上不会报错,但不生效;3、默认情况下只会对运行期异常(java.lang.R...

2019-05-27 20:38:48 2818 2

原创 Tomcat解决中文乱码

今天遇到一个奇怪的问题,正常访问的网站添加证书后就出现乱码问题定位问题:首先检查了服务器编码格式设置,提交的代码,测试环境等都不存在问题;Tomcat升级为8.5版本,添加了证书相关的配置,应该就是配置文件的问题;查找具体原因:这个地方是最常见的,容易给漏掉编码格式,但也添加了,但是redirectPort 这个地方需要注意了redirectPort 的作用:当用户用...

2019-05-22 15:18:06 238

原创 mysql group by 组内排序方法

group by 基本语法不再赘述,能够快速实现分组统计,但在实际工作场景中,我们不仅仅用到分组统计,还会获取组内排序功能,比如评论表中所有用户的最后发言时间的统计,这就需要组内排序的功能;直接举例子来说明吧目标是要筛出不同用户最后一次评论的记录,从图中标红的就是要找的数据比较笨的方法:分步走,首先查询不通的user_id,然后根据用户ID再查询,这样写可以实现,并且保证数据绝对准...

2019-05-17 15:08:17 20621 1

原创 session失效相关设置总结

session失效默认是30分钟,如果需要修改,可以通过一下方式进行修改1、tomcat里进行设置------服务器端设置在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置: 1 2 3 <session-config> <session-timeout>30<...

2019-05-07 15:11:23 587

转载 权限管理设计总结

权限设置一定要根据具体情况进行设计,不要千篇一律,更不要化简为繁,像继承,多角色等,目前我们公司没有,一个用户只有一个角色,管理起来很方便;而数据权限又是完全独立一套设计,基本思路也大差不差的!

2019-04-26 10:54:11 4281

原创 base64原理解析及应用

一、概述 Base64就是一种基于64个可打印字符来表示二进制数据的方法,在网络上最常见的用于传输8Bit字节码的编码方式之一;网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就 不能通过邮件传送; 这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了;最好的方法就是在不改变传统协议的情 况下,做一...

2019-04-25 15:30:36 398

转载 HashMap实现原理及源码分析

推荐一篇详细讲解的HashMap源码的https://segmentfault.com/a/1190000012926722

2019-04-17 21:44:59 72

原创 Spring MVC数组接收测试

基本类型接收可以用数组,也可以用List,如下 // 基本类型数组方法一 @RequestMapping("list3") @ResponseBody public void TestListener4(@RequestParam(value = "ids[]") String[] ids){ System.out.println(ids.lengt...

2019-04-15 19:44:28 172

空空如也

空空如也

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

TA关注的人

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