随笔分类 - Java
Java 学习笔记
摘要:一、问题描述 在使用 IDEA 二次开发 jacoco 进行编译源代码,生成 doc 文档时,控制台报错,错误信息截图如下: 对应的日志文本信息如下所示: [INFO] root ............................................... SKIPPED [INF
阅读全文
摘要:一、问题描述: 在 IDEA 的 “Terminal” 控制台执行如下命令报错:Unknown lifecycle phase ".test.skip=true". mvn clean package -Dmaven.test.skip=true 错误日志详情输出如下所示: [ERROR] Unkn
阅读全文
摘要:一、问题现象 创建了一个 springboot 项目后,运行项目提示信息如下所示 相应的文本信息如下: Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded da
阅读全文
摘要:问题背景: 开发了数据库比对功能,重写构造器后,服务启动后,请求接口响应数据如下所示 { "timestamp": 1512367088445, "status": 500, "error": "Internal Server Error", "exception": "org.mybatis.sp
阅读全文
摘要:进入 Spring Initializr 初始页面,如下所示: 根据实际业务开发需要填写项目的 GAV 信息、打包方式、JDK版本等信息,点击【EXPLORE】根据想到操作下载工程压缩文件。压缩文件内容如下所示: 本地解压后,通过 Ideal 打开项目,目录结构如下所示: 1、修改 maven 配置
阅读全文
摘要:IDEA 使用 DB Navigator 连接 MYSQL 时,显示无法连接,提示时区有问题,截图如下所示: 解决方法: 在连接配置对话框,选择 Properties 标签页,在连接属性中添加如下图所示的配置信息后,重新连接即可。 【特别说明】: 建议与工程中的 application.proper
阅读全文
摘要:此文以如下基础环境信息和 JDK 版本,进行安装示例说明: 安装用户 系统版本:Centos 7 JDK版本:1.8.0_321 执行如下命令查看本机是否已有其他版本的 JDK java -version yum list installed | grep jdk 或者 rpm -qa | grep
阅读全文
摘要:在 src/main/resources 文件夹下创建 MANIFEST.MF 文件,文件内容如下所示: Created-By: 范丰平 Manifest-Version: 1.0 Premain-Class: org.fanfengping.agent.demo.monitor.MonitorAg
阅读全文
摘要:Springboot 启动时会加载默认的 banner 信息,并在控制台输出。因而可以通过自定义 banner 文件内容实现启动 banner 的自定义。 在项目的 resouces 目录下新增 banner.txt 文件,输入以下内容并保存。 . . . . . . . . . . . . | .
阅读全文
摘要:在启动 Springboot 时,发现启动耗时较长,启动日志提示:InetAddress.getLocalHost().getHostName() took 13387 milliseconds to respond. Please verify your network configuration
阅读全文
摘要:在执行程序的时候,发现 java.sql.SQLException: Zero date value prohibited,提示创建日期 created_time 数据异常。 查询数据库中的日期,发现 created_time 存在为 0000-00-00 00:00:00 的脏数据,导致数据查询异
阅读全文
摘要:方法一: -Djps.track.ap.dependencies=false 方法二: 升级 lombok 的版本至 1.18.14+ 方法三: 升级 Sprint boot 版本,确保 lombok 的版本为 1.18.14+ 即可
阅读全文
摘要:查看上篇文章的源代码执行结果,可以发现,在中断线程后,线程状态并未变化,且线程并未立即停止运行,而是继续运行至结束,输出创建了 800 个文件。 查看 Thread.interrupt() 源代码可知,interrupt() 中断线程方法,仅设置线程的中断标志位为 true 并立即返回,并未改变线程
阅读全文
摘要:Java 线程的 6 种状态: 初始(NEW):新创建了一个线程对象,但还没有调用 start() 方法。 运行(RUNNABLE):调用线程的 start() 方法,线程进入可运行线程池中,线程就绪(READY),等待被 CPU线程调度执行;当获取 CPU 时间片开始执行后,线程运行中(RUNNI
阅读全文
摘要:用较小的代码量可以实现的线程定义,可以通过 Lambda 表达式进行线程类的实现。 源代码示例如下所示: package com.fanfengping.demo; import lombok.extern.slf4j.Slf4j; /** * 利用Lambda表达式进行线程类的实现定义 */ @S
阅读全文
摘要:上篇文章 Java学习-078-多线程11:使用 synchronized 同步代码块解决多线程资源同步问题 中使用同步代码块解决多线程资源同步问题,synchronized 也可修饰方法,通过同步方法也可实现与同步代码块相同的效果。 语法示例: synchronized 方法返回值 方法名称(参数
阅读全文
摘要:多线程资源同步问题,可通过 synchronized (同步代码块)来解决,同步代码块使用方法如下所示: synchronized (同步对象) { // 同步代码块,对同步对象共享资源的操作 } 将操作线程同一共享资源的代码作为同步代码块包含在 synchronized 同步代码块中,即可解决多线
阅读全文
摘要:如果通过 Runnable 接口实现多线程,则多线程实现类中的属性可被多个线程共享。当多个线程同时操作线程同一个共享资源时,有大概率出现资源同步问题,导致最终的结果偏离我们预期的最终结果,甚至完全相反。 下面通过一个简单实例,演示一下多线程的资源同步问题,示例源代码如下所示: package com
阅读全文
摘要:线程的礼让可以通过 Thread.yield() 实现,可以控制优先级低的线程礼让,以便增加优先级高的线程获得优先执行的几率。 具体示例代码如下所示: package com.fanfengping.demo; import lombok.extern.slf4j.Slf4j; /** * 线程礼让
阅读全文
摘要:当程序中存在多个任务同时执行时,若多个任务的优先等级不一样,则可通过设定任务对应的线程优先级,使得对应的任务线程具备高优先级执行。通过 Thread.setPriority(线程优先级) 可以实现。示例代码如下所示: package com.fanfengping.demo; import lomb
阅读全文