java基础
null如也
心有猛虎,细嗅蔷薇
展开
-
try catch finally return执行顺序
结论:1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好...转载 2018-10-29 17:20:54 · 112 阅读 · 0 评论 -
Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
@Cacheable@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable 作用和配置方法@Cacheable(value=”accountCache”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 accountCache 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。...转载 2019-03-07 09:42:17 · 176 阅读 · 0 评论 -
List集合操作
首先讲一下Comparable接口和Comparator接口,以及他们之间的差异。有助于Collections.sort()方法的使用。请参考1.Comparable自然规则排序//在自定义类Student里面实现Comparable接口,并重写抽象方法compareTo(Student o);//Collections.sort(集合);先看一个简单的例子:public static ...原创 2019-02-22 16:40:33 · 520 阅读 · 0 评论 -
springboot 中配置freemarker
1.引入pom依赖 org.springframework.boot spring-boot-starter-freemarker 2.向yml格式配置文件添加内容spring: freemarker: request-context-attribute: req #req访问request suffix: ...原创 2019-02-22 11:38:06 · 510 阅读 · 0 评论 -
10分钟了解JSON Web令牌(JWT)
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。虫虫今天给大家介绍JWT的原理和用法。1.跨域身份验证Internet服务无法与用户身份验证分开。一般过程如下。1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回session_id,session信息都会写入到用户的Cookie。4.用...转载 2019-02-11 11:40:46 · 173 阅读 · 0 评论 -
理解JPA注解@GeneratedValue的使用方法
一、JPA通用策略生成器通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id,其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出.Target({METHOD,FIELD}) @...转载 2019-02-15 18:07:58 · 238 阅读 · 1 评论 -
Lists.transform的使用
Lists.transform:能够轻松的从一种类型的list转换为另一种类型的list。使用场景:1、把一个List<Map<String,String>> 中的 所有map对应某个key的value值取出来 返回一个新的listMap<String,String> map = Maps.newHashMap(); map.put("1...转载 2019-01-19 12:56:35 · 2390 阅读 · 0 评论 -
websocket导致spring boot 项目单元测试启动失败的问题解决
解决从spring-boot文档中找到解决方法,很简单,SpringBootTest增加webEnvironment 参数。@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)package com.hengyun.admin;import org.junit.Test;import org...原创 2018-12-30 13:00:28 · 261 阅读 · 0 评论 -
Enum枚举通过code获取到message三中方法
在开发中遇到Enum的code获取message的问题,于是各种百度,找一个3中方法第一种最low的方法,不推荐使用@Getterpublic enum PaymentTypeEnum { PAY_ONLINE(1, "在线支付"); private Integer code; private String message; PaymentTypeEnum...转载 2018-12-19 11:27:52 · 8638 阅读 · 4 评论 -
JDK和CGLIB动态代理区别
一 JDK和CGLIB动态代理原理1、JDK动态代理利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。2、CGLiB动态代理利用ASM开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。3、何时使用JDK还是CGLiB?1)如果目标对象实现了接口,默认...转载 2018-12-10 14:59:19 · 148 阅读 · 0 评论 -
java下的mysql数据库插入越插越慢的问题解决(百万数据量级别)
最近的项目需要导入大量的数据,插入的过程中还需要边查询边插入。插入的数据量在100w左右。一开始觉得100w的数据量不大,于是就插啊插,吃了个饭,回来一看,在插入了50多w条数据后,每秒就只能插10条了。。觉得很奇怪,为啥越插越慢呢? 于是就开始分析插入的时间损耗,想到了如下的解决方案:(mysql使用的INNODB引擎)1.分析是否是由主码,外码,索引造成的插入效率降低 主码:由于主...转载 2018-12-20 13:40:56 · 776 阅读 · 0 评论 -
jpa方法名命名规则
一、常用规则速查1 And 并且2 Or 或3 Is,Equals 等于4 Between 两者之间5 LessThan 小于6 LessThanEqual 小于等于7 GreaterThan 大于8 GreaterThanEqual 大于等于9 After 之后(时间) &g...转载 2018-12-20 10:17:04 · 580 阅读 · 0 评论 -
StringUtils.isEmpty和StringUtils.isBlank用法和区别
两个方法都是判断字符是否为空的。前者是要求没有任何字符,即str==null 或 str.length()==0;后者要求是空白字符,即无意义字符。其实isBlank判断的空字符是包括了isEmpty的。换句话说,isEmpty判断的范围更小,只是在没有字符的情况下。下面他们的具体用法:1. public static boolean isEmpty(String str) 判断某字符串是否...转载 2018-11-02 17:15:42 · 184 阅读 · 0 评论 -
Java跳出双层for循环
例1:跳出单层循环@Test public void test1() { for (int i = 0; i < 5; i++) { if (i == 2) { break; } else { System.out.println("i=" + i); } } }执行结果:i=0i=1例2:跳过单层当次循环@Test publi...转载 2019-03-07 20:15:47 · 6306 阅读 · 0 评论