
Java基础
文章平均质量分 69
Java基础
hanxiaozhang2018
当你的才华还撑不起你的野心时,那你就应该静下心来学习!
展开
-
JDK8的函数编程相关的类(下)
Supplier、Consumer、Function等JDK8函数编程原创 2023-01-08 13:30:00 · 412 阅读 · 0 评论 -
解决lockInterruptibly()出现java.lang.IllegalMonitorStateException异常
我们在使用ReentrantLock锁时,可能会用lockInterruptibly()方法来处理使用interrupt()方法的线程打断。但是,在当前线程没有获得到锁时,执行interrupt()方法,就有可能抛出java.lang.IllegalMonitorStateException异常。原因是:我们在学习Lock锁时,都深深地记忆着unlock()解锁操作一定要放在finally中,但当前线程没有获得到锁,就去执行解锁操作一定会出现java.lang.IllegalMonitorS...原创 2021-11-14 09:18:44 · 760 阅读 · 0 评论 -
Java命名规范
前言:优秀的程序员,代码格式一定非常优美。想生成一名优秀的程序员,代码一定要遵循一些规范。我参考的是《阿里巴巴开发手册》。具体规则如下:一、命名风格:代码命名均不能以下划线和美元符号开始或结尾; 代码命名严禁使用拼音与英文混合的方式; 类名使用首字母大写驼峰命名法; 方法名、参数名、成员变量、局部变量使用首字母小写驼峰命名法; 常量命名全部大写,单词用下划线隔开,<力求语义表达清楚,不嫌长>(重点注意<>中); 抽象类以Abst...原创 2021-10-30 14:24:27 · 365 阅读 · 0 评论 -
JDK8时间类的使用
前言:JDK8是java中具有里程碑意义的一个版本,在这个版本中增加Stream流,Lambda表达式和关于时间的LocalDate、LocalTime、LocalDateTime类。它们极大方便我们对java语言的运用,下面,我们就来介绍一下JDK8时间类的使用。正文:一、LocalDate类、LocalTime类、LocalDateTime类二、Duration类三、Period类四、ZoneId类* 五、Instant类 * 六、Date与LocalDat...原创 2020-09-06 08:36:39 · 452 阅读 · 0 评论 -
Windows下使用bat文件启动java项目(支持使用ini配置文件)
前言:最近,公司项目使用SpringCloud微服务架构进行开发,每次启动项目要开启很多个服务,其中包含了Eureka Server(服务注册中心)、Config Server(服务配置中心)、Admin Monitor(服务监控中心)等基础服务组件。这些基础服务组件几乎不会修改,在调试业务服务中的功能时,总感觉切换Idea控制台很麻烦。所以,我选择使用架包(.jar)在本地的启动,这样,我的Idea就可以少启动几个服务,调试起来也更舒服。但是,每次在cmd输入启动java项目的命令我也感觉很麻烦,我就原创 2020-07-18 17:54:49 · 3933 阅读 · 2 评论 -
LinkedList源码,你想了解一下不?
前言:上回咱们介绍了ArrayList源码,详情见《ArrayList源码,你想了解一下不?》文章,今天来介绍一下LinkedList源码,LinkedList源码也不是很难理解,它的底层用的双链表,如果你对常用的数据结构有所了解,你在学习理解LinkedList源码中关于链表的相关方法就很容易。LinkedList与ArrayList都实现了List接口,如果你原来看过ArrayList源码,你在学习理解LinkedList源码中关于List接口相关方法就很容易。听我这么半天忽悠,你是不是也想学...原创 2020-06-03 21:22:08 · 922 阅读 · 2 评论 -
ArrayList源码,你想了解一下不?
前言:作为一个名合格的程序员,不看看源码怎么行?ArrayList作为我们常用的一个集合类之一,它的源码不多并且不是很难,比较容易阅读理解。下面我就分析一下,我对ArrayList源码的理解。一、ArrayList数据结构:ArrayList的数据结构是一个数组(Object[] elementData),其中有size和capacity两个概念,size代表的数组中存储元素个数,capacity代表的是数组的长度。另外,ArrayList与Array的主要区别是:ArrayList是可变长度、原创 2020-05-23 14:40:58 · 377 阅读 · 0 评论 -
业务上第一次使用多个设计模式的组合(策略模式+缺省适配器模式+模板方法模式+简单工厂模式)
前言:从第一次系统地阅读《Java与模式》这本书已经过去一年多了,我一直没有有意的去使用设计模式,原因有两点:一是,对设计模式理解有些点不深入,使用起来比较吃力;二是,没有一个合适场景去使用设计模式。最近,我在负责一个新系统的对接钉钉流程中心,调用相关流程的开发工作,我在之前已经钉钉流程对接2次了,都这块业务理解比较准确和成熟。如果要是搬用原来的代码没有问题,但是原来的写法复用很差,每次新增一个流程,都有把原来的接口复制一遍,然后再对每一个方法中部分代码进行修改。基于以上背景,我觉得应该使用设计模式,对原创 2020-05-16 13:11:07 · 1793 阅读 · 1 评论 -
JDK8都发行5年多了,你还不会使用Stream流和Lambda表达式吗?
前言:第一次听说Stream流,还是在2018年刚工作的时候,我向一个同事请教某些问题,他跟我说JDK8出了Stream流的新特性,让我学习一下,但是当时我们公司根本没有人使用。我一次开始使用学习Stream流和Lambda表达式已经是2019年了,现在快一年了,Stream流和Lambda表达式的使用,确实方面我的开发,下面我分享一下一些常用的用法:...原创 2020-03-28 19:47:36 · 996 阅读 · 1 评论 -
一套超好用的“Excel导入导出+多线程处理导入数据+多线程事务回滚”的模板方法
Excel导入导出+多线程处理导入数据+多线程事务回滚的模板方法二、功能演示:1.Excel数据:数据说明:第一条数据完整,可以成功导入;第二条数据无姓名,业务逻辑姓名不允许为空,会导出到错误Excel中;第三条数据无姓名无类型,业务逻辑姓名类型不能为空,会导出错误Excel中。2.导入页面:选择相关Excel,点击导出测试按钮:3.正确数据入库:4.错误数据导出成Excel并有提示:...原创 2020-03-08 21:14:44 · 14611 阅读 · 14 评论 -
工具类用单例模式还是静态方法?
前言:最近,业余时间在整理Excel导入相关东西,整理了一个工具类,在工具类使用哪种方式调用时,产生了疑问,我们项目中的PDF、Word、水印等工具类使用的静态内部类方式的单例,String、File、Date等工具类使用的静态类。于是,我搜索了一些文章,有一篇感觉说的还不错,大家可参考一下:说静态类好的:1. 静态类不用引用就能调用,而单例需要有对象的引用,因此节约资源2.静态类...转载 2020-02-25 20:21:11 · 2618 阅读 · 3 评论 -
业务上第一次使用递归
前言:根据业务需求,我曾写过一个通过部门ID查询所有子部门的接口,当时由于开发时间紧张,使用了最笨的方法,多层嵌套查询子部门,并且只查询了三层。最近代码Review,我把该接口用递归的方式重写了一遍,代码简洁清了不少!下面简单介绍一下:原代码:public List<String> listDeptIdByDeptId(String deptId) { /...原创 2019-08-05 21:27:30 · 359 阅读 · 0 评论