java
小诸葛的博客
毕业于广东石油化工学院,目前就职于金蝶国际软件集团,专注Java后端开发,个人微信公众号:小诸葛的博客。
展开
-
Java压缩、解压zip文件
Java压缩、解压zip文件原创 2022-09-30 11:42:06 · 2686 阅读 · 0 评论 -
java将一个有序数组按是否连续进行分组
java将一个有序数组按是否连续进行分组原创 2022-09-30 11:25:21 · 468 阅读 · 0 评论 -
mac idea大小写转换快捷键
mac idea大小写转换快捷键原创 2022-08-23 17:28:48 · 316 阅读 · 0 评论 -
java格式化date
java格式化date原创 2022-08-19 10:14:16 · 4089 阅读 · 0 评论 -
java连接mysql数据库(jdbc增删查改)
java连接mysql,java连接mysql的一个小demo,如有疑问请留言。原创 2017-08-06 11:09:28 · 1094 阅读 · 0 评论 -
Java AES加密ZeroPadding(CBC模式)
Java AES加密ZeroPadding(CBC模式)原创 2022-08-17 10:06:25 · 775 阅读 · 0 评论 -
spring项目在非Spring管理的类中注入Bean的方法
在非Spring管理的类中注入Bean的方法转载 2022-06-20 15:49:08 · 1118 阅读 · 0 评论 -
Java8 stream处理List,Map总结
Java8 stream处理List,Map总结转载 2022-06-17 14:28:23 · 466 阅读 · 0 评论 -
java如何将一个对象属性值拷贝到另一个对象相同字段上
使用spring的BeanUtils工具类原创 2022-06-16 15:57:03 · 1670 阅读 · 1 评论 -
Springboot根据配置文件动态注入接口实现类
Springboot根据配置文件动态注入接口实现类原创 2022-06-08 11:11:26 · 2115 阅读 · 0 评论 -
mysql连接失败The last packet sent successfully to the server was 0 milliseconds ago. The driver has not
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is c原创 2022-05-23 17:30:29 · 1363 阅读 · 2 评论 -
启动springboot项目时指定配置文件和参数(java -jar指定配置文件)
javav -jar -Xmx1024m -Xms1024m -Dspring.config.location=/cfg/application.yml xx.jar原创 2022-05-20 18:01:19 · 1080 阅读 · 0 评论 -
从mysql读取、写入图片或文件
1、写入图片到mysqlimport java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;public class SaveFileToDatabase { public static void main(St原创 2022-05-19 10:47:58 · 753 阅读 · 0 评论 -
命令行执行Java命令时指定类库(jar包)
执行Java命令时指定jar包路径。java cp jar包绝对路径 类名javacp xxx.jar: Demo原创 2022-04-12 07:34:51 · 982 阅读 · 0 评论 -
java如何new一个空的List
Collections.emptyList();原创 2022-03-31 20:59:42 · 5058 阅读 · 0 评论 -
java对string进行排序
public class TestDemo { public static void main(String[] args) { List<User> users = new ArrayList<>(); User u1 = new User("li"); User u2 = new User("zhou"); users.add(u1); users.add(u2); u...原创 2022-03-29 14:58:56 · 3808 阅读 · 0 评论 -
SpringBoot上传文件案例
1、Controller代码 @PostMapping("/uploadFile") public BaseResult quickAdd(@RequestParam("adminConf") MultipartFile adminConf,@RequestParam("name") String name) { String filePath = uploadPath + "/" + adminConf.getName(); try {原创 2021-11-24 11:25:28 · 361 阅读 · 0 评论 -
Java合并json对象
1、引入依赖<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version></dependency>原创 2021-11-23 15:04:33 · 2368 阅读 · 0 评论 -
Java将yaml文件解析为json对象和字符串对象
1、引入依赖snakeyaml:<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml --><dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.29</version></depende原创 2021-11-23 14:52:28 · 2564 阅读 · 0 评论 -
mybatis打印sql日志(mybatis-plus)
在application.yml中添加配置mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl原创 2021-05-23 19:44:07 · 167 阅读 · 0 评论 -
Spring Boot Aop结合Swagger记录用户操作日志
1、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId原创 2021-07-14 16:38:07 · 1121 阅读 · 0 评论 -
centos7搭建nfs
参考:https://www.qikqiak.com/post/kubernetes-persistent-volume1/注意:服务名称 nfs 要改成 nfs-server原创 2021-04-21 11:13:31 · 127 阅读 · 0 评论 -
springboot配置RestTemplete
@Configurationpublic class RestTemplateConfig { @Value("${prometheus.api.connect.timeout:5000}") private int connectTimeout; @Value("${prometheus.api.read.timeout:10000}") private int readTimeout; @Bean public RestTemplate re...原创 2021-04-20 11:46:13 · 609 阅读 · 0 评论 -
JVM的钩子函数简单实践
1、简介通过调用Runtime.getRuntime().addShutdownHook() 可以注册一个虚拟机关闭钩子。虚拟机在两种事件发生时会关闭:第一种:程序正常退出,当应用的最后一个非守护线程结束时或者System.exit()方法被调用时(应用程序发生错误导致虚拟机停止也属于程序正常退出)。第二种:用户主动中断程序,或者用户注销了操作系统。2、实践案例import java.util.ArrayList;import java.util.List;public c.原创 2021-01-21 15:34:57 · 248 阅读 · 0 评论 -
Java:详解Java中的异常(Error与Exception)
在这篇Java异常教程中,我们会学到Java中的异常(Exception)是什么、checked异常和unchecked的区别是什么,并且还会学到关于Java中处理checked异常的一些很好的实践。1. Java中的异常(Exception)是什么?异常就是在程序执行期间发生的打断指令正常执行流程的一个不期望出现的事件。在Java中,所有的错误和异常都继承自Throwable类。当一个方法内发生错误时,方法会创建一个对象(该对象是Throwable的子类),并把它传递给运行时系统。这个对象就被原创 2020-11-23 09:26:58 · 622 阅读 · 0 评论 -
详解Java面向对象编程
面向对象(OOP)指的是一种基于对象的编程方法论,而不仅仅是方法和函数编程。对象包含数据和方法(也叫行为)。在面向对象编程(OOP)概念中,我们会学到四种主要的法则——抽象、封装、继承、多态。这四条准则也就是众所周知的面向对象编程范式的四大支柱。抽象是对实体本质细节的揭露、同时忽略无关紧要的细节、从而降低开发人员开发的复杂度的过程; 封装是将数据和操作和实体对象绑定在一起的过程; 继承用于根据一个已有的类型派生出一个新类型,同时在它们之间建立了一个父子的关系; 多态使得实体在不同的上下文中可以翻译 2020-11-18 16:09:32 · 762 阅读 · 2 评论 -
Java8判断年份是否是闰年
利用Java8中的 isLeapYear() 方法可以非常容易判断某个年份是否是闰年,具体用法如下:import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Year;import java.time.ZonedDateTime;import java.time.format.DateTimeFormatter;public class Main{ public static void m原创 2020-11-17 15:43:02 · 2493 阅读 · 0 评论 -
Java获取两个日期之间的所有日期列表
以下演示的是获取日期之间的所有日期列表,如果要获取两个时间之间的时间列表,只需要将LocalDate换成LocalTime或者LocalDateTime,相应的方法也改为基于小时或分钟进行加减即可,对于获取两个日期之间的所有日期,Java8、9提供了不同的方法,具体代码实现如下:Java9 LocalDate startDate = LocalDate.now(); LocalDate endDate = startDate.plusMonths(2);原创 2020-11-17 10:57:35 · 3088 阅读 · 0 评论 -
Java如何获取e.printStackTrace()打印的信息
某些情况下,我们需要获取应用打印的异常信息,这时就可以借助StringWriter和PrintWriter两个类来获取异常信息,具体用法如下: try{ throw new NullPointerException(); }catch (Exception e){ StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWrit原创 2020-11-16 17:02:20 · 1202 阅读 · 2 评论 -
java解析json数据
json数据一般分两种,对象和数组。json解析需要写异常处理。解析json对象用的是JSONObject类,如 public void analys_jsonObject(String jsonData){//jsonData就是对象格式的json数据 try { JSONObject jsonObject = new JSONO...原创 2018-08-13 14:25:09 · 160 阅读 · 0 评论 -
Java生成六位随机数
1、六位随机数字public class Main { public static void main(String[] args) { int code = (int) ((Math.random()*9+1)*100000); System.out.println(code); }}原创 2020-10-14 14:57:31 · 358 阅读 · 0 评论 -
基于TCP协议实现的Socket通信(服务端定时删除断开的连接)
1.服务端import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.List;import java.util.Objects;import java.util.Vector;public class TcpServer { publ原创 2020-10-12 13:51:24 · 712 阅读 · 0 评论 -
Java中线程池的7个重要参数
1、ThreadPoolExecutor的构造方法源码 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, Bl原创 2020-09-25 18:10:13 · 565 阅读 · 0 评论 -
Java线程池的四种拒绝策略
前言当线程池的任务队列满了之后,线程池会执行指定的拒绝策略来应对,常用的四种拒绝策略包括:CallerRunsPolicy、AbortPolicy、DiscardPolicy、DiscardOldestPolicy,此外,还可以通过实现RejectedExecutionHandler接口来自定义拒绝策略。四种预置的拒绝策略:1、CallerRunsPolicy使用线程池的调用者所在的线程去执行被拒绝的任务,除非线程池被停止或者线程池的任务队列已有空缺。2、AbortPolicy直接抛原创 2020-09-23 09:13:16 · 903 阅读 · 0 评论 -
Java查看JVM默认使用的垃圾收集器
使用命令:java -XX:+PrintCommandLineFlags -version根据参数 -XX:UseParallelGC,结合表3-1可以得知,当前jvm使用的是 Parallel Scavenge + Serial Old(PS MarkSweep) 垃圾收集器组合。原创 2020-09-14 15:14:43 · 695 阅读 · 2 评论 -
Spring Boot集成FreeMarker
前言FreeMarker是一种Java模板引擎,类似jsp、themleaf,FreeMarker适合用于页面伪静态化,方便爬虫爬取,比较适用于官网。如何使用?1.pom文件引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifac...原创 2020-09-03 15:58:08 · 268 阅读 · 0 评论 -
Vector并非绝对线程安全
1.前言Java集合框架中的Vector集合通过对可能引发线程安全问题的方法(例如:add()、remove()、size()等等)加synchronized关键字实现了线程安全,但这种实现仅能在一定程度上减少多线程并发操作下出现问题的可能性,例如下面的情况就可能会出现线程不安全问题。Vector<String> vector = new Vector<>();............for(int i = 0; i < vector.size(); i++原创 2020-09-02 16:37:58 · 471 阅读 · 0 评论 -
Java集合框架之List家族
1.ArrayList结构:动态数组特点:增删慢、查找快、线程不安全初始容量:10扩容:每次增长原有长度的0.5倍原创 2020-09-15 10:44:54 · 195 阅读 · 0 评论 -
Java如何反编译一个class文件
使用 javap -v classfilename 指令也可将字节码内容输出到一个文件中原创 2020-08-30 17:22:50 · 976 阅读 · 0 评论 -
从volatile关键字看Java内存可见性问题
1.案例代码:public class TestVolitle { public static void main(String[] args) { ThreadDemo td = new ThreadDemo(); new Thread(td).start(); while (true){ if(td.isFlag()){ System.out.println("-----------原创 2020-08-29 16:04:12 · 133 阅读 · 0 评论