java操作
文章平均质量分 68
半山惊竹
这个作者很懒,什么都没留下…
展开
-
浅谈ReentrantLock的公平锁和非公平锁的区别
最近在看java并发编程这本书,已经看了点ReentrantLock的源码,以及之前有面试官问,公平锁和非公平锁有啥区别,我就只是从源码层面说了一下区别,但在性能上也有区别,今天就来说道说道。原创 2022-12-21 13:08:08 · 816 阅读 · 0 评论 -
ConversionService转换服务使用
在最近分析和写的SpringBoot源码分析中,给自己留了一个使用ConversionService的作业,这就来补作业了~原创 2022-12-12 17:55:56 · 597 阅读 · 0 评论 -
M1多版本JDK的切换
由于今年9月之前最新的jdk版本是17,于是下载就进行了安装,但是当我启动我本地的tomcat之后,发现使用的是jdk17,但项目是jdk8,所以我需要切换为jdk8,那么就有了这篇文章诞生的理由了。原创 2022-10-10 10:41:37 · 495 阅读 · 0 评论 -
java线程池杂谈(线程池创建和运行)
继之前写过阿里编码规约对线程池的创建,关于线程池还想再写写自己的理解。1、为啥要有线程池2、线程池怎么创建3、线程池是怎么运行的4、Executors创建线程的弊端下面来一一说一下自己的理解(有说的不对的还请同学不吝赐教)原创 2022-09-28 23:52:27 · 1624 阅读 · 0 评论 -
不同JDK的String的结构和长度的变化,字节码指令分析字符串拼接效率
不同JDK版本的String的结构和长度的变化,字符串拼接效率通过字节码指令进行分析。原创 2022-09-28 11:07:08 · 652 阅读 · 0 评论 -
Stream流在集合中的使用demo
说实话,很久没更新博客了。主要是每天都在做需求中,可记录的时间少,可分享的内容也少了。这不把自己写的一个对stream流的使用记录一下。package com.fanhf.javastudy.streamMap;import com.alibaba.fastjson.JSON;import com.google.common.collect.Maps;import java.util.*;import java.util.stream.Collectors;/** * <pre&原创 2021-09-08 17:41:50 · 251 阅读 · 0 评论 -
POI操作EXCEl表格(包括对长整型数字和日期的处理)
POI操作EXCEl表格(包括对长整型数字和日期的处理)需求原因1、pom文件引入依赖3、读实现4、写实现需求原因很久没有输出了,深感惭愧!!!由于需要将xlsx格式的excel表格的数据写入到.sql文件,再直接执行.sql文件后将数据插入到表格里。表格里包含数字和文本,其中比较难处理的是较长的数值和日期,POI会将较长的数字转成科学计数法,日期也会转成数值,而我想要的结果都是维持原来的模样。最后实现了自己的需求,参考了下面两篇博客:1、POI导入数字变为科学计数和后面自动加.0解决方法2、原创 2021-06-24 19:00:26 · 659 阅读 · 0 评论 -
p6spy和HikariCP的黄金搭档
前言去年的时候,我用的还是Druid的数据源,偶然间一位大神告诉我,可以使用一下HikariCP,由于业务上没有这个需求,没有需求要对已经上线的项目的数据源进行修改,所以自己就私下玩玩,去年11月自己写了一个demostration来玩玩。结果确实没有问题,唯一的缺憾是执行的sql语句不像Druid一样直接就打印出来了,如果放到真实的线上环境,就不好追踪sql执行过程,排查问题就很麻烦。自己私下也尝试了很多种办法,都无果而终,放弃了一段时间,去忙了别的事情,直到今天想着赶紧解决吧,之前在查资料的时候查原创 2021-01-27 11:48:54 · 1024 阅读 · 0 评论 -
自定义java8通用Builder,不用再new对象了
前言java8是14年发布的,已经走过了6个多年头了,但是里面的一些宝贝还没被我挖掘出来并使用,前几天看了一篇博客,了解到:Java8内置了四大核心函数式接口:Consumer :消费型接口 void accept(T t);Supplier :供给型接口: T get();Function<T,R> :函数型接口: R apply(T t);Predicate :断言型接口: boolean test(T t);根据前两个接口可以衍生出一个通用的Builder,我是参考的博原创 2021-01-25 11:29:09 · 1682 阅读 · 0 评论 -
jdk8对日期的处理工具类
jdk8对日期的处理工具类前言工具类:DateUtils日期测试类:DateUtilsTest前言这两天整理了一下工作中以及平时学习jdk8对日期的处理,因此整理成了一个工具类,为了方便记录学习过程,还是老习惯,把代码粘贴出来。之前还写了一篇日期转换的博客:Java:String和Date、Timestamp转换以及Calendar对日期的处理以及jdk8对日期的处理以及昨天写的日期格式和时区的枚举类的博客:史上最全日期格式枚举类史上最全 时区枚举类同时我还参考了如下博客:1、Java中日原创 2021-01-14 14:59:50 · 320 阅读 · 0 评论 -
史上最全日期格式枚举类
废话不多说,直接上大餐package com.fanhf.javastudy.enumTest;import org.apache.commons.lang3.StringUtils;/** * @author fanhf * @Description 日期格式枚举类 * @date 2021-01-13 10:00 */public enum DateFomateEnum { DATE_FORMAT_RFC_1123_3_YEAR(11230, "EEE, dd.MM.yyyy,原创 2021-01-13 18:21:35 · 3751 阅读 · 1 评论 -
史上最全 时区枚举类
也直接上代码了!!package com.fanhf.javastudy.enumTest;import org.apache.commons.lang3.StringUtils;public enum ZoneEnum { ACT("ACT", "Australia/Darwin"), AET("AET", "Australia/Sydney"), AGT("AGT", "America/Argentina/Buenos_Aires"), ART("ART",原创 2021-01-13 11:41:39 · 1712 阅读 · 0 评论 -
阿里的镜像仓库配置
阿里的镜像仓库配置一、settings.xml里面配置二、pom.xml里面配置有两种方式配置:下面的两种方式选其一即可!一、settings.xml里面配置 <mirrors> <!-- 阿里的私服镜像--> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun<原创 2020-12-30 18:04:04 · 837 阅读 · 0 评论 -
提供枚举类的接口给前端
提供枚举类的接口前言枚举类统一枚举值结果集静态数据-枚举类接口Controller其中应该需要用到lombok的插件:前言其实这个接口也没有太多的内容,不过就是常规的接口,考虑到用的比较多,所以还是记录一下。枚举类package com.fanhf.javastudy.enumTest;import org.apache.commons.lang3.StringUtils;/** * @author fanhf * @Description 年龄枚举类 * @date 2020-12-原创 2020-12-29 09:21:30 · 955 阅读 · 2 评论 -
实现分页
这里写自定义目录标题分页查询的统一Bean:QueryPageForm自定义的UserBean 类单个结果集:ResultData封装包括分页的所有数据的结果集:ResultPageBeanUserControllerUserService分页查询的统一Bean:QueryPageFormpublic class QueryPageForm { private Integer page = 1; private Integer pagesize = 20; private St原创 2020-12-25 17:35:34 · 148 阅读 · 0 评论 -
redis命令和Spring 的RedisTemplate操作对应关系
前言有时候熟悉了redis命令,但是用到spring的RedisTemplte的时候就又糊涂了,命令和操作是谁对谁的,我就有点晕了,所以花了点时间整理了一下。首先,redis命令执行可以在本地环境启动redis后,再启动redis-cli的客户端来敲命令,如果不想或没有安装redis,那就可以用这个网站,可以直接执行redis命令。我就先在这个网站上执行redis命令了。说明在代码中,我是使用的spring的RedisTemplate来操作的,那么就得受spring管理。我是在一个maven项目原创 2020-12-08 15:36:01 · 1766 阅读 · 5 评论 -
使用RedisTemplate存储的key-value乱码解决办法
前言以前用Jedis操作redis,而目前手上的项目是用springboot写的,用的RedisTemplate,我就想学习一下,自己新建了一个项目复现一下,连了本地的redis,但是当我执行了存储后,发现了存进去的key和value都是乱码,而且我的key没有中文,不知道为啥乱码,value中有中文,也是乱码,网上找了一下,最后从这篇博客找到了解决办法,感谢感谢!引的包: <dependency> <groupId>org.springframewor原创 2020-11-26 11:31:19 · 4752 阅读 · 3 评论 -
null写前面和写后面的小试验
前言前几天看一个同事写代码的时候,将判断对象是否为null写在了后面,我建议他写前面,问我为啥的时候,我却一时间语塞,所以得空就赶紧实践一把,实验和结论都写在下面了,各位看官自取哈~~代码package com.fanhf.javastudy;import org.junit.Test;/** * @author fanhf * @Description null写前面和写后面 * @date 2020-11-19 10:43 */public class IfNullTest {原创 2020-11-19 11:11:41 · 449 阅读 · 1 评论 -
揭开原子性AtomicBoolean的真面目
事件偶然的机会看到有大神使用AtomicBoolean,我又孤陋寡闻了,见所未见闻所未闻赶紧去见它识,闻它一闻,确实有点香,所以也来给同学闻闻香。好菜双手呈上:AtomicBoolean是属于java.util.concurrent.atomic包下的,而这个包还有很多的成员:一共有12名成员,不多不少,一共一打,可以做一盘好菜了,再配上虾田稻米,这个香,堪称人间美味。不过呢,细品之下方知其他的兄弟姐妹的用法和AtomicBoolean的差不多,咱们今日就先扒开AtomicBoolean的真面目,原创 2020-11-06 13:41:55 · 292 阅读 · 0 评论 -
记一次小米在线编程面试
前言今年6月份换工作的时候,得到了小米的面试机会:面试是在这个平台上:https://www.showmebug.com感觉这个平台还是不错的,进去之后,面试官已经把要写的代码题放在了这个网站上,于是我就开始了自己的编码,面试官可以实时看到自己的编码过程,还可以在我编码的过程中,输入文字来交流。就相当于在自己背后盯着一样,糟糕,画风不对,有点脊背发凉~~~~~~题目以及我当时的解题结果如下// ## 请在下方描述你的面试题内容( 支持Markdown )import java.util.*p原创 2020-11-05 14:25:32 · 1366 阅读 · 3 评论 -
关于HTTP和TCP/IP的总结文章
看了之前自己收藏的博客,其中有三篇涉及到http,就一直留着,想着得空的时候看看,不过为了避免丢失,我还是打算先记录下来,等系统的学了之后,自己再输出文章链接1、HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)2、TCP/IP协议简述+常见面试题3、两张动图-彻底明白TCP的三次握手与四次挥手4、面试官,不要再问我三次握手和四次挥手...转载 2020-11-03 17:02:35 · 108 阅读 · 0 评论 -
为何阿里代码规约要求手动创建线程池,我的踩坑和升级
前言很久没有写点东西了,主要是工作不忙,所忙的工作也都是比较简单的,并未遇到我没有接触过的技术,之前一直有一个需求就是对字段加密,而需要加密的字段有311万多,最初都是用单线程去写的,一次查询2000条,然后加密后一条一条的更新,结果一算,311万得花费5.7个小时,太慢了,于是就看了同事之前写的多线程,拷贝过来发现我的阿里编码规约提示:手动创建线程池,效果会更好哦解决过程参考博客我之前通篇看过阿里编码规约,这块说到了我才有印象。晚上查了一下,参考了这几篇博客1、阿里不推荐使用Executors创原创 2020-10-29 15:04:35 · 2050 阅读 · 0 评论 -
java计算整型相除后小数再四舍五入得到整型数值
事件需要用两个Integer型的值,计算出百分比,然后四舍五入转成Integer型,下面是最终的实现方法。public class PercentCalculateUtils {private static final Integer HUNDRED = 100; public Integer getPercent(Integer num, Integer sum) { Integer percent = sum == 0 ? 0 : new BigDe原创 2020-09-16 15:36:50 · 2091 阅读 · 0 评论 -
Content-Type的几种常用数据编码格式
Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型。如果未指定 ContentType,默认为text/html。1.text/html文本方式的网页文件。2.text/plain窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。3.application/x-www-form-urlencoded默认地,表单数据会编码为 “application/x-转载 2020-08-07 10:07:45 · 802 阅读 · 0 评论 -
Java:String和Date、Timestamp转换以及Calendar对日期的处理以及jdk8对日期的处理
注意:当设置了时间参数后,其他相关的数值都会重新计算,例如当你把日期设为 11 号后,周几就会作对应变化。获得的月份加 1 才是实际月份。在 Calendar 类中,周日是 1,周一是 2,以此类推。原创 2020-08-05 11:39:26 · 843 阅读 · 0 评论 -
ava.sql.SQLException: sql injection violation, multi-statement not allow
mapper.xml中的sql:<update id="updateBatchCardNumber" parameterType="java.util.List"> <foreach collection="list" index="index" item="item" open="" separator=";" close=""> update apply_user <set>原创 2020-07-20 11:05:52 · 674 阅读 · 0 评论 -
关于成功在springboot的工具类中读取application.yml中自定义配置的问题
事件:由于在application-local.yml中定义了一个自定义的配置,需要在工具类中读取到这个值,但是在网上找了很多的文章,也都尝试了,最终无果,好在功夫不负有心人,在不断的试错过程中,终于获取到了,这个过程大概花了至少3个小时,差点崩溃。我这里列一下写的比较好,但我依旧获取不到配置的文章1、springboot读取application.yml自定义属性2、在utils类中获取配置文件application.properties中的属性3、SpringBoot项目中如何在静态工具类中调原创 2020-07-11 17:29:55 · 4983 阅读 · 2 评论 -
解决eclipse报错:错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)
事件:刚才在eclipse新建了一个类,然后执行了main方法,就报错了分析:1、我的class内容如下:2、于是查了一下,看了第一篇文章,尝试了一下解决了这个问题,原文链接解决:eclipse ->window->preference->run and debug->Lunching再次运行输出:感谢大神的锦囊妙计!!!...原创 2020-07-10 10:59:49 · 16906 阅读 · 10 评论 -
RedisCommandExecutionException: @user_script: 24: Lua redis() command arguments must be strings or i
序言在完成redis的测试后,之前看到了阿里巴巴的开发手册,今天又看了一下,于是对照了自己的代码,发现了一个地方需要修改过程就是我用了Arrays.asList()的方法,而且我里面放的不是数组,就是一个个的字符串 List<String> busilist = Arrays.asList(sNNameValue,increAmountValue,seq);于是想在既然如此,我直接把读取到的这三个值放大ArrayList里面就可以,但是lua脚本执行的时候却报错了[2020-0原创 2020-06-09 17:00:57 · 1935 阅读 · 0 评论 -
java去调用并执行shell脚本学习记录
java去调用并执行shell脚本事件:由于帮同事看一个程序,里面涉及到执行linux的命令,由于自己接触的系统中并未遇到这样的需求,所以修改完成后特此记录!ShellJob类脚本adf.sh说明事件:由于帮同事看一个程序,里面涉及到执行linux的命令,由于自己接触的系统中并未遇到这样的需求,所以修改完成后特此记录!参考博客1:https://blog.csdn.net/vcfriend/article/details/81226632参考博客2:https://blog.csdn.net/tte原创 2020-05-14 15:40:57 · 416 阅读 · 2 评论 -
Unable to process deployment descriptor for context 'null'分析和解决
事件:Myeclipse部署后tomcat中的webapp没有web.xml由于生产和测试的版本不一样,就把原来生产的版本的程序复制了一份还在原来的workspaces目录下,由于我们的这个项目分成了4个部门,就是说在一个工程里将完整的项目分成了4个部分,每个部分在自己的目录下,在打包的时候用ant来打包,倒也不冲突,其中第一部分是报文接收模块,之前在myeclipse里部署和发布都是正常的,可...原创 2020-04-14 18:06:01 · 465 阅读 · 0 评论 -
在win10使用Jmeter进行压测
因为想用jmeter对web应用做压测,所以想到了jmeter,这是我是去年8月份安装在我的win10系统的,就可以直接拿来用了,先简单说一下下载和安装一、下载和安装:1、下载的话可以使用这2个网址进行下载”历史版本官网:下载地址最新版本官网:下载地址要注意的是,最新的5.2.1需要java8的环境:我去年8月下载的是5.1.1,是那个时候的最新版本,5.21是去年11月更新的。2...原创 2020-04-11 17:28:59 · 1915 阅读 · 2 评论 -
IDEA中new之后无新建class/Interface等的解决
事件:在IDEA中新建的项目里,在某个目录下想创建class类,却没有class选项解决办法:1.File->Project Structure2.选择Modules–>右边Sources中选择所需目录 然后点击 Sources–>Apply–>OK3.再在左侧的的Project中在需要创建class文件的目录里面右击就出现了 new --> java c...原创 2020-04-11 13:30:45 · 2178 阅读 · 0 评论 -
分析和解决:ERR Error compiling script (new function): user_script:1: 'end' expected near '
事件:原本lua脚本读的还好好的,下午改了读取方式后就报错:Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException:ERR Error compiling script (new function): user_script:1: 'end' expected near '&l...原创 2020-04-08 21:54:14 · 13497 阅读 · 4 评论 -
log4j的升级版--log4j2
由一个错误而引发的问题,错误如下:log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.Standardlog4j:WARN Please initialize the log4j system properly.但是我并没有做改动,为啥忽然就罢工了呢,于是在网上...原创 2020-04-08 10:50:44 · 677 阅读 · 0 评论 -
JSON字符串转换为Map
嘿嘿,把大神的据为己有,博文转载于:原文链接转载 2020-04-03 21:03:51 · 129 阅读 · 0 评论 -
springboot log4j2 报错SLF4J: Class path contains multiple SLF4J bindings
写完的springboot后,添加日志配置,习惯用sl4j+log4j配置,网上找了几篇博文参考,配置依赖照写,启动结果报错: Class path contains multiple SLF4J bindingsSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/E:/ma...转载 2020-04-03 20:21:08 · 740 阅读 · 0 评论 -
Redis数据库设置密码和取消密码
我就不写了,直接抱回来大神的博客了(偷笑):原文链接转载 2020-04-03 20:06:39 · 3358 阅读 · 0 评论 -
springboo中修改Log4j输入日志颜色
我每次写日志都比较倾向于用log4j的日志框架,但是里面的配置我仔细分析过几次还是丈二的和尚摸不着头脑,今天猛然发现了一个写的很全面的log4j的介绍,特地抱过来。参见大神博客:原文链接今天在IDEA中的springboot项目里的log.properties中添加了:ImmediateFlush=trueTarget=System.err加上了这两句话,打印在控制台的日志颜色都换了新...原创 2020-04-03 20:02:20 · 1211 阅读 · 0 评论 -
Springboot修改内置tomcat启动端口
Springboot自带的tomcat默认使用的是8080端口,默认端口我们一般在自己本地运行的时候才用,但是到了生产测试环境就必须换端口,在Springboot中修改端口有2中方式:1、在application.xml中,添加如下代码:server: #端口号 port: 8085如下图:(配置放在yml文件中的前面或者后面都是可以的,但server前一定不要有空格)2、可...原创 2020-04-03 19:48:24 · 3765 阅读 · 2 评论