8 loophome

尚未进行身份认证

暂无相关描述

等级
TA的排名 5k+

Java多线程:Thread基础(一)

Java的多线程基于Thread,我们先看看Thread的继承关系publicclassThreadimplementsRunnable可以看到Thread基础了Runnable接口,Runnable接口仅仅有run方法,用于实现线程逻辑。启动线程-start方法启动线程需要调用start方法。备注,不要使用run方法,run方法仅仅是执行Runnable实例中的ru...

2019-08-02 18:17:06

Java并发编程 ReentrantLock可重入锁 - 防止缓存穿透

ReentrantLock是一个可重入且独占式的锁,它具有与使用synchronized监视器锁相同的基本行为和语义,但与synchronized关键字相比,它更灵活、更强大,增加了轮询、超时、中断等高级功能。参考:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html可...

2019-07-26 11:28:43

Java并发编程 Synchronized及其实现原理

Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个1)确保线程互斥的访问同步代码。即保证了一个代码块在同一时间仅有一个线程可以执行。2)保证共享变量的修改能够及时可见,保证了原子性3)有效解决重排序问题怎么使用Synchronized1)普通同步方法,锁是当前实例对象publics...

2019-07-25 20:35:52

spring boot ControllerAdvice注释对filter抛出的异常不生效的问题解决

之前做了一个简单的登录验证,使用了Filter实现,返回内容是直接写死在Filter里面。今天为了统一返回,想通过抛出异常方式,使用ControllerAdvice进行返回。结果是不行的,ControllerAdvice无法获取到Filter的异常。原因:请求进来会按照filter->interceptor->controllerAdvice->as...

2019-07-05 11:47:29

Java Eclipse Memory Analyzer(MAT)内存泄漏报告

JavaEclipseMemoryAnalyzer(MAT)内存泄漏报告一、通过jmap命令,获取目标程序的dump例子:jmap-dump:live,format=b,file=heap.bin<pid>二、打开EclipseMemoryAnalyzer,导入dump下来的文件点击"File"=>"Openheapdump"。导入完...

2019-07-03 14:33:42

spring-boot中配置hikari连接池属性

事件起因与一个简单应用经常发生YoungGC,甚至在没有请求量的情况下也经常发生GC(AllocationFailure),后来使用mat工具进行分析,发现mysql连接相关的class居然占了40%+堆内空间。才发现springboot的连接池大小没有配置,默认是10个连接,但实际上该应用不需要这么多。Theclass"com.mysql.cj.jdbc.AbandonedCo...

2019-07-02 17:18:17

Java Log4j和Log4j2的区别

JavaLog4j和Log4j2的区别一、核心JAR包log4j核心包:log4j:log4j:[version]而log4j2的核心包有2个:org.apache.logging.log4j:log4j-core:[version]org.apache.logging.log4j:log4j-api:[version]二、配置文件log4j:通过一个log4j....

2019-06-28 19:01:56

shadowJar:archive contains more than 65535 entries.问题解决

在打fat-jar包的时候,如果包的文件数量大于65535或者文件大小大于4G,会出现这个错误。这时,只需要添加zip64true就可以解决shadowJar{dependencies{}zip64true}参考链接:https://docs.gradle.org/5.0/dsl/org.gradle.api.tasks.bundling.Zip...

2019-06-28 17:00:15

eclipse 安装sonarLint-4.1插件

eclipse安装sonarLint-4.1插件一、安装插件Help->EclipseMarketplace->搜索sonar,安装sonarlint4.1二、使用sonarLint-4.1插件右键点击项目,选择“sonarlint”,点击“Analyze”,开始分析项目。三、分析结果一般情况下我们需要确保不出现次要(包括次要)以上级别的错...

2019-06-24 15:48:49

Java,csv格式字符串判断子串是否存在快速方法

问题:数据库中保存了一批用csv格式存储的数据,在使用的时候,需要判断str是否包含在csv中。这个问题有2个解决方案:一种是采用字符串包含判断,另一种是通过把csv数据拆分为String[]数组,再逐个判断实现的代码如下:packagecom.bytrees.utils;importorg.apache.commons.lang3.StringUtils;public...

2019-06-18 14:12:33

java gc日志内容分析-YoungGC-FullGC

环境版本,Java1.8,GC日志参数-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCApplicationConcurrentTime-XX:+PrintHeapAtGCYoungGC找到一条输出的日志:2335.667:Totaltime...

2019-06-15 23:15:55

tomcat9线程配置-server.xml

tomcat9线程配置-server.xml一、不使用线程池<Connectorport="8080"//监听的端口protocol="HTTP/1.1"redirectPort="8443"connectionTimeout="30000"//连接超时时间keepAliveTimeout="15000"//keepaliv...

2019-06-15 22:42:34

Java序列化和反序列化问题

Transient关键字transient修饰符仅适用于变量,不适用于方法和类。在序列化时,如果我们不想序列化特定变量以满足安全约束,那么我们应该将该变量声明为transient。执行序列化时,JVM会忽略transient变量的原始值并将默认值保存到文件中。因此,transient意味着不要序列化。Static静态变量不是对象状态的一部分,因此它不参与序列化。所以将静态变量声明为t...

2019-06-12 20:05:58

Spring中 javax.annotation.Resource注解用法

其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource需要导入。然而Spring也同时支持该种注解。@Resource默认按byName自动注入,由J2EE提供。@Resource有两个中重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的...

2019-06-10 14:34:03

大数据:hive安装部署手册

本文档介绍如何设置和配置单节点hive安装,以便使用hive快速执行简单操作。版本:3.1.1参考链接:https://cwiki.apache.org/confluence/display/Hive/GettingStarted安装前提,必须显安装和部署hadoop,并添加HADOOP_HOME环境变量1)解压hive的bin程序包,配置HIVE_HOME的环境变量,并把$...

2019-05-21 18:34:01

唯品会高性能负载均衡VGW揭秘

负载均衡基础简介负载均衡是指对后端服务进行流量分发的服务。通过负载均衡入口,后端服务可以水平扩展来提升对外服务能力,可以消除单点故障以提升应用系统可用性。我们以WebServer举例,如图1所示,WebServer可以在负载均衡后面透明伸缩,当其中一部分WebServer实例挂掉后,剩余实例仍然能够提供服务。图1:典型负载均衡使用示例负载均衡又分为四层和七层负载均衡,所谓四...

2019-05-16 20:17:57

大数据:hdfs操作命令手册

这里使用的hadoop版本是3.1.2一些概念使用hdfs和使用linux文件系统是相似的,这里列举出常用的几个命令。在使用hdfs之前,我们必须对namenode进行格式化,这个步骤在部署伪分布式的时候已经执行过了hdfsnamenode-format创建用户目录,进入hdfs时,默认目录就是/user/<username>,<username>...

2019-05-08 16:08:18

大数据:hadoop安装部署手册

本文档介绍如何设置和配置单节点Hadoop安装,以便使用HadoopMapReduce和Hadoop分布式文件系统(HDFS)快速执行简单操作。版本:3.1.2安装1)安装环境依赖Java™mustbeinstalled.RecommendedJavaversionsaredescribedatHadoopJavaVersions.sshmustbeins...

2019-05-07 11:10:49

vue快速入门速查手册

vue快速入门速查手册快速上手,各种语法糖查询内容 使用简单说明 声明式渲染 内容渲染: {{message}} 组件属性渲染: v-bind:attr="message"或者简写成:attr="message" 判断v-if <pv-if="seen">现在你看到我了</p&gt...

2019-04-03 17:49:00

spring-boot2.x使用redis

一、依赖引用并配置implementation'org.springframework.boot:spring-boot-starter-data-redis-reactive'implementation'org.apache.commons:commons-pool2'如果不使用连接池,则可以不引入org.apache.commons:commons-pool2依赖。sp...

2019-03-28 18:45:22

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。