![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
★·········【JAVA】
文章平均质量分 57
Ryze丶
不积跬步无以至千里
展开
-
List.of的重载
重载(overloading)和变参(vararg)如果你进一步审视List接口,会发现List.of包含了多个重载的版本,包括:你可能想知道Java API为什么不提供一个使用可变参数的方法,像下面这样接受任意数目的元素:static <E> List<E> of(E... e)“知其然,更要知其所以然”,变参版本的函数需要额外分配一个数组,这个数组被封装于列表中。使用变参版本的方法,你就要负担分配数组、初始化以及最后对它进行垃圾回收的开销。使用定长(最多为10个)元素原创 2020-05-09 09:29:18 · 422 阅读 · 0 评论 -
yml文件中配置对称加密{cipher}无法识别
错误文件info: profile: dev from: config/dev secretValue: {cipher}9ae2d08f248ab77561cbea8fe88566b7665f8ad65527e7757dcf1cd3bffe1aae错误原因yml对格式要求比较严格,使用 {cipher}时需要加上 ‘’,否则无法识别解决方法方法一:yml文件修改为一下格式...原创 2020-02-27 08:58:04 · 1865 阅读 · 3 评论 -
使用JPA实现复杂case when
主要:https://stackoverflow.com/questions/9673341/jpa-query-with-case-when-in-the-where-clause-how-to-do更多:https://www.cnblogs.com/dslx/p/11474453.htmlhttps://blog.csdn.net/cmw1085215666/article/deta...转载 2020-02-20 17:43:08 · 2270 阅读 · 0 评论 -
@RequestBody中json转换成对象失败,对象包含list属性
开发中遇到了类似的问题,网上已经有人遇到并被解决,记录之简言之,使用@RequestBody注解接受对象A的json数据时,如果A内有一个list属性 C为另一对象:json:{"filedB":"filedBValue", "listC":[ {"filedD":"filedDValue1","filedE":"filedEValue1"}, {"filedD":"file...原创 2020-02-18 17:46:03 · 3205 阅读 · 1 评论 -
Selenium2(java)启动常用浏览器
Selenium2(java)启动常用浏览器默认启动firefox浏览器Webdriver driver = new FirefoxDriver();启动谷歌浏览器配置chromedriverWebDriver driver;System.setProperty("webdriver.chrome.driver", chromedriver_path);driver = new C...转载 2020-01-14 15:43:06 · 223 阅读 · 0 评论 -
jsoup的Element类
jsoup的Element类一、简介该类是Node的直接子类,同样实现了可克隆接口。类声明:public class Element extends Node它表示由一个标签名,多个属性和子节点组成的html元素。从这个元素中,你可以提取数据,可以遍历节点树,可以操纵html。二、构造方法1、public Element(Tag tag, String baseUri, Attribut...转载 2020-01-08 17:39:33 · 221 阅读 · 0 评论 -
SpringBoot注解大全
springBoot注解大全一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration 等同于spring...转载 2019-12-30 16:44:24 · 183 阅读 · 0 评论 -
Redis分布式锁的实现原理(Redisson)
一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就...转载 2019-12-26 22:04:48 · 912 阅读 · 0 评论 -
Redis分布式锁的正确实现方式(Java版)
本博客使用第三方开源组件Jedis实现Redis客户端,且只考虑Redis服务端单机部署的场景。前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详...转载 2019-12-26 14:27:03 · 174 阅读 · 0 评论 -
myBatis通过逗号分隔字符串,foreach
学习:https://www.wanpishe.top/detail?blogId=555f6b2a-cd80-4c55-8174-c96ac898ec9fhttps://blog.csdn.net/Satisfy_555/article/details/82759683https://www.cnblogs.com/sumlen/p/11130554.html原创 2019-12-17 17:56:09 · 567 阅读 · 0 评论 -
【spring boot】传递时间类型的字符串,报错:Failed to convert from type [java.lang.String] to type [java.util.Date]
spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [java.util.Date]而POST请求,传入时间类型字符串,后台是可以解析成Date类型的。出现这个错误,在需要接受Date类型的字符串参数的controller层中,加入:@InitBinde...转载 2019-12-12 13:46:26 · 857 阅读 · 0 评论 -
LRU算法实现
LRU算法实现以下是基于 双向链表 + HashMap 的 LRU 算法实现,对算法的解释如下:访问某个节点时,将其从原来的位置删除,并重新插入到链表头部。这样就能保证链表尾部存储的就是最近最久未使用的节点,当节点数量大于缓存最大空间时就淘汰链表尾部的节点。为了使删除操作时间复杂度为 O(1),就不能采用遍历的方式找到某个节点。HashMap 存储着 Key 到节点的映射,通过 Key 就能...转载 2019-12-04 13:48:33 · 272 阅读 · 0 评论 -
微服务架构下分布式事务解决方案——阿里GTS
微服务架构下分布式事务解决方案——阿里GTS开源地址:https://github.com/seata/seata1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。...转载 2019-12-04 13:25:35 · 417 阅读 · 0 评论 -
Oracle树查询及相关函数
Oracle树查询及相关函数Oracle树查询的最重要的就是select…start with… connect by …prior 语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的 与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。以我做过的一个项目中的表为例,表结构...转载 2019-11-14 14:09:37 · 271 阅读 · 0 评论 -
jackson循环引用导致序列化stackOverFlow的解决
https://stackoverflow.com/questions/37388613/jackson-serialize-entity-with-self-referencehttps://www.jianshu.com/p/7f8afb398326原创 2019-11-07 17:20:19 · 1381 阅读 · 0 评论 -
为什么String要设计成不可变的?
这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。字符串常量池的需要字符串常量池(String pool, String intern pool, Stri...转载 2018-10-24 17:24:16 · 148 阅读 · 0 评论 -
Java8中的foreach跳出循环break/return
java8中跳出循环不能使用break?通过测试发现:对于java8中的特殊写法lamada表达式中,不能使用break,会提示错误;java8中使用return,会跳出当前循环,继续下一次循环,作用类似continue;java8中使用foreach,但是不是lamada表达式写法,可以正常使用break或者return,可以直接跳出循环.public class TestForE...原创 2019-05-06 11:34:25 · 34130 阅读 · 5 评论 -
JAVA CAS原理深度分析
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到!参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference....转载 2019-04-14 10:40:06 · 122 阅读 · 0 评论 -
org.apache.log4j.Logger详解
转载自: https://www.cnblogs.com/liaojie970/p/7634838.html转载 2018-04-13 16:06:43 · 848 阅读 · 0 评论 -
Spring RestTemplate中几种常见的请求方式
转载自:https://blog.csdn.net/u012702547/article/details/77917939转载 2019-02-14 17:16:40 · 143 阅读 · 0 评论 -
Oracle:ORA-00911: 无效字符
Oracle库的sql在数据库管理工具中执行是没问题的,但是在java代码中执行的时候就会报异常:ORA-00911: 无效字符;根源在于mapper.xml文件结尾多了一个;记录之...原创 2018-12-14 14:08:01 · 1498 阅读 · 0 评论 -
设计模式-外观模式(facade)
基本概念外观模式的作用:松散耦合,外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。简单易用,外观模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。更好的划分访问层次-通过合理使用 Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的...转载 2018-11-08 11:19:47 · 271 阅读 · 0 评论 -
经典java集合面试题
常见集合相关面试题:主要内容:Arraylist 与 LinkedList 异同ArrayList 与 Vector 区别HashMap的底层实现HashMap 和 Hashtable 的区别HashMap 的长度为什么是2的幂次方HashMap 多线程操作导致死循环问题HashSet 和 HashMap 区别ConcurrentHashMap 和 Hashtable 的区别...转载 2018-10-27 20:50:26 · 299 阅读 · 0 评论 -
使用正则表达式找出不包含特定字符串的条目
概述做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式。例如枚举出日志文件中不包含某个特定字符串的条目,找出不以某个特定字符串打头的条目,等等。使用否定式前瞻正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为。需要注意一点,正则表达式中的前和后和我...转载 2019-05-29 13:43:50 · 390 阅读 · 0 评论 -
一道HashMap面试题
1、你看过那些源码吗?集合类2、那你能讲讲HashMap的实现原理吗?1.7 数组+链表;1.8 数组+链表+红黑树3、HashMap什么时候会进行rehash?当HashMap容量大于阈值时(阈值 = 初始数组长度+默认加载因子) 默认加载因子=0.754、HashMap什么时候会进行扩容?扩容的两个条件:1.容量大于阈值2.产生了hash碰撞5、那HashMa...原创 2019-06-20 10:25:20 · 406 阅读 · 0 评论 -
《java 编程思想》 读书笔记 (二)
第二章 1.如何用javadoc提取文档 注释第一行,用一个“:”作为特殊记号说明这是包含源文件名的注释(object代表本章); /*Output 标签表示输出的开始部分将由这个文件生成; 最后一行,“*///~”标志源代码清单的结束。package package1;// :object/HelloDate.javaimport java.util.Date;/** ...原创 2018-03-06 20:46:20 · 170 阅读 · 0 评论 -
RabbitMQ学习(一)
1.RabbitMQ工作模式RabbitMQ有以下几种工作模式 :1、Work queues2、Publish/Subscribe (fanout)3、Routing (direct)4、Topics (topics)5、Headers(headers)6、RPCwork queues与入门程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。应用场景:对于 任务过...原创 2019-08-29 16:20:21 · 217 阅读 · 0 评论 -
Maven多模块项目管理小结
题记最近刚完成一个用Maven构建的Web项目,看了一些Maven方面的书,比如《maven实战》,但还是对Maven多模块项目理解得不清晰,所以花了一点时间好好研究了下,现分享如下。问题下面是一个简略的项目结构图Parent`------ childA(BusinessLayer) `--- pom.xml`------ childB(WebLayer) ...转载 2019-08-28 15:39:20 · 176 阅读 · 0 评论 -
使用eclipse Ant将多个jar合并为一个
1.在eclipse中新建一个项目或者使用现有的项目,在项目路径下新建一个build.xml:<?xml version="1.0" encoding="UTF-8"?><project name="many2one" basedir="." default="many2oneJar"> <target name="many2oneJar" descriptio...原创 2019-08-27 15:54:45 · 326 阅读 · 0 评论 -
Idea中出现FileNotFoundException异常,Eclipse中却不会出现这个问题
问题描述:Idea中出现FileNotFoundException异常,Eclipse中却不会出现这个问题.解决办法:修改项目的工作目录为当前项目:参考:https://milk-36.iteye.com/blog/2215064...原创 2019-08-05 14:18:54 · 702 阅读 · 0 评论 -
IDEA+Gradle搭建Spring Boot项目
IDEA+Gradle搭建Spring Boot项目1. 环境准备:Jdk1.8+Intellij IDEAgradle2. 创建项目IDEA > File > New > Module(Project)…完成后,项目的目录下只有两个文件:build.gradle和settings.gradle,接下来我们需要做一些配置.3. 配置build.gra...原创 2019-07-22 16:19:01 · 4458 阅读 · 0 评论 -
@RequestParam,@PathParam,@PathVariable等注解区别
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充@RequestParam看下面一段代码:http://localhost:8080/springmvc/hello/101?param1=1...转载 2019-07-26 09:14:12 · 180 阅读 · 0 评论 -
MyBatis Generator 配置详解
MyBatis Generator 配置详解更多:https://blog.csdn.net/testcs_dn/article/details/79295065https://blog.csdn.net/tolcf/article/details/50835165配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTY...原创 2019-07-12 10:24:23 · 155 阅读 · 0 评论 -
JQueryValidate添加自定义方法校验密码
代码如下:原创 2019-07-04 14:53:54 · 472 阅读 · 0 评论 -
java多线程中的synchronized的byte[0]
byte[] lock1 = new byte[0]; synchronized (lock1) { }零长度的byte数组对象创建起来将比任何对象都经济――查看编译后的字节码:生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码。...转载 2019-06-12 11:16:33 · 905 阅读 · 0 评论 -
JVM原理讲解和调优
JVM原理讲解和调优一、什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入J...转载 2019-06-20 13:23:47 · 192 阅读 · 0 评论 -
SimpleDateFormat、FastDateFormat和Joda-Time的介绍
众所周知,SimpleDateFormat是线程不安全的,不能多个线程公用。而FastDateFormat和Joda-Time都是线程安全的,可以放心使用。SimpleDateFormat是JDK提供的,不需要依赖第三方jar包,而其他两种都得依赖第三方jar包。SimpleDateFormat和FastDateFormat主要都是对时间的格式化SimpleDateFormat在对时间进行格...转载 2019-07-17 14:07:44 · 890 阅读 · 0 评论 -
ThreadLocal缺陷以及处理
分析过ThreadLocal源码源码的人都知道,ThreadLocal的设计的确巧妙,但是它也有一个缺陷:可能会引起内存泄漏;ThreadLocalMap中key维护着一个weakReference,它在下次GC之前会被清理,如果Value仍然保持着外部的强引用,该ThreadLocal没有再进行set,get或者remove操作,时间长了就可能导致OutOfMemoryError .lucen...原创 2018-10-09 23:07:26 · 4097 阅读 · 0 评论 -
强制更新JsessionID的方法
登录前的请求一般都是http的,http是不安全的,假设用户登录前的JSESSIONID被人取得,如果登录后不变更JSESSIONID的话,即使登录请求是https的,该用户仍然会被他人冒充。/** * 重置sessionid,原session中的数据自动转存到新session中 * @param request */ public static void reGene转载 2018-01-30 17:59:48 · 1234 阅读 · 0 评论 -
Webshpere中数据库连接池中的连接没有正常释放
https://www.ibm.com/developerworks/websphere/library/techarticles/0506_johnsen/0506_johnsen.html翻译 2018-05-09 19:26:34 · 2962 阅读 · 0 评论