![](https://img-blog.csdnimg.cn/20190809165828640.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java系列
java常用技术分享
前方一片光明
作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【程序员高手之路】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊。 微信:shuhao-99999
展开
-
Java——如何评估Java代码的规范性和合理性?
如何评估Java代码的规范性和合理性?原创 2023-07-14 21:30:00 · 414 阅读 · 0 评论 -
Java——使用Map还是实体类?
Java编码时使用Map还是实体类?原创 2023-06-28 19:00:00 · 887 阅读 · 0 评论 -
Java——使用EasyExcel导出动态列的Excel
使用EasyExcel导出动态列的Excel原创 2023-04-21 21:45:00 · 5219 阅读 · 2 评论 -
Java——获取实体类默认值
获取实体类默认值原创 2023-02-10 17:59:58 · 1604 阅读 · 0 评论 -
Java——Native Query设置null参数
Native Query设置null参数原创 2022-10-26 20:15:00 · 812 阅读 · 0 评论 -
架构系列——分布式锁
系统一旦分布式了之后,通信、缓存、消息、事务、锁、配置、日志、监控、会话等等各种原来单块系统场景下很容易解决的问题,都会变得很复杂,需要引入大量外部的技术。原创 2021-07-15 19:56:49 · 1623 阅读 · 8 评论 -
成功解决Address localhost:1099 is already in use
前言本文所说的内容适用于java的端口被占用Tomcat端口被占用的情况,可以参考解决方式二!报错过程今天使用IDEA启动项目的时候,报了下列错误: Address localhost:1099 is already in use问题分析这是端口号被占用了,已经有其他应用正在使用这个端口号问题解决方式一:按快捷键 Ctrl+Shift+Esc打开任务管理器............原创 2018-04-26 18:49:19 · 165305 阅读 · 42 评论 -
Java——通过Java代码启动批处理文件(二)
前言兄弟篇:Java——通过Java代码启动批处理文件(一)第一篇是直接执行批处理文件,但是有两种情况不能处理:1.路径里面带有空格的情况,2.环境变量设置问题;本篇文章主要解决路径里面的空格问题,以及环境变量设置问题:The CATALINA_HOME environment variable is not defined correctly@Overridepublic void exeCmdInFolder(String folderPath, String batName).原创 2022-05-06 21:30:10 · 3370 阅读 · 0 评论 -
Java中的继承
1.在Java中,类不支持多继承,只能单继承,但是可以多实现;2.在Java中,接口之间支持多继承,接口可以继承多个继承;原创 2022-03-01 21:30:00 · 3873 阅读 · 0 评论 -
对List进行排序,值为null的排到最后
Collections.sort(result, Comparator.comparing(YkfxYkbaFygcVO::getCe, Comparator.nullsLast(BigDecimal::compareTo)));原创 2022-01-24 21:30:00 · 7673 阅读 · 2 评论 -
把list转为List<clazz>类型,并把字典项转为字典值
把list转为List类型,并且把字典项转为字典值原创 2022-01-04 21:30:00 · 4816 阅读 · 0 评论 -
Git分支与提交代码规范
Git分支与提交代码规范原创 2022-01-04 21:15:00 · 5466 阅读 · 0 评论 -
Java——将一组数据固定分组,每组n个元素
/** * 将一组数据固定分组,每组n个元素 * * @param source 要分组的数据源 * @param limit 每组n个元素 * @param <T> * @return */ public static <T> List<List<T>> fixedGroup(List<T> source, int limit) { if (.原创 2021-11-06 09:30:00 · 4295 阅读 · 0 评论 -
Generate POJOs.groovy
通过groovy创建实体类原创 2021-10-12 21:01:49 · 5709 阅读 · 1 评论 -
Java——下划线转驼峰
常常用于数据库字段转为java字段private static String changeColumn(String column) { String name = column; if (name.indexOf("_") > 0 && name.length() != name.indexOf("_") + 1) { int lengthPlace = name.indexOf("_"); name = name.replac.原创 2021-08-26 18:32:01 · 5261 阅读 · 0 评论 -
Java——把list转为List<clazz>类型
把list类型转为List<clazz> 类型,其中,值为null时转为空字符串public static <T> List<T> listFomart(List list, Class<T> clazz) { List<T> result = new ArrayList<>(); list.forEach(item -> { result.add(JSON.parseObject(JSON.原创 2021-07-15 20:01:16 · 6540 阅读 · 1 评论 -
Java——mybatis逆向工程生成实体类
前言有时候,我们创建实体类需要跟数据库表里面的字段对应起来。假如一张表有数百个字段,那么手动去写实体类的话就比较麻烦,而且容易出错。解决方案 其实解决这个问题的方式有很多,本文介绍其中一种解决方案,通过mybatis的逆向工程生成实体类。本文使用的数据库是Oracle,MySQL只需要修改jar包以及generator.properties配置即可。可以从公众号【程序员高手之路】回复“逆向工程”获取源码!Step1 修改p...原创 2021-06-29 19:43:22 · 7439 阅读 · 13 评论 -
springboot启动时执行sql文件
spring: datasource: url: jdbc:oracle:thin:@192.168.5.5:1521:orcl username: drg password: drg driver-class-name: oracle.jdbc.driver.OracleDriver initialization-mode: always schema: - classpath:schema.sql data: - .原创 2021-06-29 19:43:43 · 4777 阅读 · 1 评论 -
Java——成功解决java.awt.HeadlessException: null
前言代码中运用了JOptionPane,但是项目运行的时候,却出现了错误java.awt.HeadlessException: null解决原创 2021-06-06 11:26:38 · 13611 阅读 · 11 评论 -
Java——打的jar包如何引用外部配置application.properties
前言现在的项目越来越多的都是打包成jar运行尤其是springboot项目,这时候配置文件如果一直放在项目中,每次进行简单的修改时总会有些不方便,这里我们看下打包成jar之后,从外部配置文件中读取配置信息。...原创 2021-06-06 11:27:21 · 6790 阅读 · 1 评论 -
Java——通过Java代码启动批处理文件(一)
通过Java代码启动批处理文件原创 2021-06-06 11:21:48 · 4894 阅读 · 0 评论 -
Java——通过Java代码从ftp服务器下载文件
public void downloadFile(String ftpPath) { if (!localPath.endsWith("/")) { localPath = localPath + "/"; } FTPClient client = ftpClientManager.getClient(); File localFile = new File(localPath + fileName); try { client.ch.原创 2021-06-04 19:36:33 · 6614 阅读 · 2 评论 -
Java——通过Java代码连接ftp服务器
import org.apache.commons.net.ftp.FTPReply;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service;import org.apache.commons.net.ftp.FTPClient;...原创 2021-06-04 19:36:12 · 9413 阅读 · 5 评论 -
Java——list转树形结构
比如省、市、县、区结构就是树形结构,主要解决思想是递归public static List<Map> convertToTree(List<Map> list) { List<Map> all = list.stream().filter(t -> !t.containsKey("parentId") || t.get("parentId") == null || "".equals(t.get("parentId").toSt原创 2021-05-18 20:11:52 · 6230 阅读 · 0 评论 -
Java虚拟机相关知识点
一、Java内存区域划分1.Java内存区域到底划分了哪几个区?大体上有五个分区 ,分别是 堆,方法区,虚拟机栈,本地方法栈,程序计数器。其中堆区和方法区线程共享,其他区域线程私有。2.每个区具体放了什么?堆区:存放对象实例,GC 主要作用区域。方法区:存放虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。虚拟机栈:描述Java方法执行时的内存模型,为执行Java方法服务。栈帧中存放局部变量表、操作数栈、动态变量表、方法返回地址本地方法栈:描述本地方法Native执行..原创 2021-02-07 16:36:08 · 7184 阅读 · 9 评论 -
HashMap底层结构、扩容机制实战探索
1.存储结构从结构上,HashMap是由数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的。下图中,每一个黑色原点代表一个键值对(Node),table的默认长度是16;JDK1.8引入了红黑树,极大地优化了HashMap的性能2.获取hash数组索引位置实质上有3步:取key的hashcode值,高位运算、取模运算取模运算是JDK7里面的,JDK8没有这个运算方法:h & (length - 1)3.hash碰撞有时候,2个key会定位到相..原创 2021-02-07 17:17:24 · 6339 阅读 · 4 评论 -
Java——获取字符串编码格式
public static String getEncoding(String str) { String encode = "GB2312"; try { if (str.equals(new String(str.getBytes(encode), encode))) { // 判断是不是GB2312 String s = encode; return s; // 是的...原创 2020-08-27 09:20:52 · 16003 阅读 · 7 评论 -
Java——使用多线程模拟真实高并发业务并保证安全性(二)
使用100个线程把一个存放10000条数据的list数据删除,要求保证安全性,并正确记录数量。原创 2020-07-19 10:19:12 · 8715 阅读 · 1 评论 -
Java——使用多线程模拟真实高并发业务并保证安全性(一)
使用100个线程往list中添加10000条数据,要求保证安全性,并正确记录数量。原创 2020-07-19 10:18:07 · 8356 阅读 · 0 评论 -
自动化系列——如何通过selenium获取到弹窗里的按钮并模拟点击确定或取消?
弹窗里的按钮怎么获取到并模拟点击确定或取消?原创 2020-05-14 18:33:55 · 12173 阅读 · 0 评论 -
架构系列——分布式事务
系统一旦分布式了之后,通信、缓存、消息、事务、锁、配置、日志、监控、会话等等各种原来单块系统场景下很容易解决的问题,都会变得很复杂,需要引入大量外部的技术。原创 2020-05-06 16:11:55 · 2933 阅读 · 11 评论 -
使用webmagic爬取网页信息以及通过selenium进行页面元素操作
前言本篇文章主要讲解如何使用webmagic技术来实现网页的爬取,以及使用selenium操作页面元素,实现点击、输入事件所用技术1.webmagic添加需要爬取的urlSpider.create(new MyProcessor()).addUrl("https://www.cnblogs.com/").thread(5).run();在process里面抓取符合条件...原创 2020-04-26 15:04:14 · 30143 阅读 · 331 评论 -
自动化系列——做自动化必备工作以及hello world代码
网上的爬虫、自动化一般都是使用python来做的;身为java程序员,当然也要不甘示弱!所以就写了java爬虫、自动化系列文章,供众多java程序员参考!原创 2020-04-24 09:30:58 · 7402 阅读 · 0 评论 -
Java——jackson的注解@JsonProperty、@JsonIgnore、@JsonIgnoreProperties、@JsonFormat、@JSONField
前言本文所写注解位于com.fasterxml.jackson.annotation包中依赖:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> ...原创 2020-05-28 09:18:46 · 12821 阅读 · 3 评论 -
架构系列——java动态代理中的InvocationHandler和Proxy
前言先赞后看,此生必赚!Java中动态代理的实现,主要是InvocationHandler和Proxy的使用。可以通过以下步骤实现一个动态代理:一、创建正常的接口以及实现类这个挺简单吧,每个开发者都会的!1. 接口:public interface People { public void working();}2. 实现类:public class S...原创 2020-04-13 19:16:19 · 5299 阅读 · 1 评论 -
成功解决:ERROR StatusLogger No log4j2 configuration file found.
报错过程java文件中使用private static Logger logger = LogManager.getLogger(Test.class);创建了一个log对象,在运行代码的时候出现了下列错误:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: loggin......原创 2020-04-02 19:12:50 · 46538 阅读 · 1 评论 -
java——除了new,你还会用supplier创建对象吗?
官方给的接口使用FunctionalInterface接口,只有一个get方法@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}解析如下列代码所示:...原创 2020-04-01 19:26:15 · 9174 阅读 · 0 评论 -
java——获取项目根路径方式
1. this.getClass().getResource("/").getPath();如果不加“/” 获取当前类的目录2. file.getCanonicalPath().getPath();3. this.getClass().getClassLoader();4. System.getProperty("user.dir");5. System.getProperty("...原创 2020-04-02 19:10:31 · 6440 阅读 · 0 评论 -
Java——maven引用本地jar包的几种方式
方式一:buildpath右键jar包,Build Path--Add to Build Path方式二:通过systemPath引入<dependency> <groupId>com.vmware</groupId> <artifactId>sso.client</artifactId> <version...原创 2020-03-21 21:29:08 · 10404 阅读 · 0 评论 -
Java——如何将一个maven项目打出多个jar包
需求一个maven项目中有多个类有main方法,打出多个jar包使这些jar包有不同的主函数解决方式一:通过多个pom文件打包比如再写一个pom2.xml,使用命令 mvn install -f pom2.xml 指定pom文件进行打包方式二:通过maven-assembly-plugin案例:<plugin> <artifactId>mav...原创 2020-03-09 20:04:05 · 14220 阅读 · 2 评论