JAVA开发
白首码农
这个作者很懒,什么都没留下…
展开
-
windows系统tomcat启动中文乱码问题
修改tomcat的conf下的logging.properties中的参数java.util.logging.ConsoleHandler.encoding = GBK原创 2021-11-20 20:21:01 · 440 阅读 · 0 评论 -
通过docker安装nexus3
参考资料https://www.cnblogs.com/sanduzxcvbnm/p/13099635.htmlhttps://www.cnblogs.com/lipg/p/13878133.html拉取nexus3镜像docker pull sonatype/nexus3运行nexus容器docker run -id --privileged=true --name=nexus3 --restart=always -p 8081-8084:8081-8084 -v /docker/nexus原创 2021-11-20 20:16:49 · 698 阅读 · 0 评论 -
JDK基础镜像的制作
创建DockerfileFROM openjdk:8-jdk-alpineRUN apk --update add tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone && \ apk del tzdata && \ rm -rf /var/c原创 2021-11-20 20:11:35 · 971 阅读 · 0 评论 -
安装Windows子系统(WSL2)-Ubuntu
参考资料https://docs.microsoft.com/zh-cn/windows/wsl/install-manualhttps://blog.csdn.net/qq_28412779/article/details/113565257https://blog.csdn.net/networken/article/details/106980430安装步骤启用适用于 Linux 的 Windows 子系统以管理员身份启用powershelldism.exe /online /enabl原创 2021-11-10 22:38:08 · 1488 阅读 · 0 评论 -
SOFA Boot 整合SOFA RPC 、SOFA Registry
参考资料https://www.wenjiangs.com/doc/dc7xvpxhhttps://www.sofastack.tech/projects/sofa-rpc/getting-started-with-rpc/SOFA Stack 在gitee上的源码仓库https://gitee.com/sofastack源码stulab-sofarpc.zip整合的关键步骤添加依赖项注意版本号<parent> <groupId>com.alipay.so原创 2021-11-10 21:42:22 · 3262 阅读 · 0 评论 -
Windows下批量删除maven中多余的lastUpdated文件
@echo offset REPOSITORY_PATH=C:\Users\EData\.m2\repositoryrem waiting...for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s /q %%i)rem finishedpause原创 2021-11-10 21:33:48 · 679 阅读 · 0 评论 -
SOFA Registry的简单安装
参考资料https://www.bookstack.cn/read/SOFARegistry/Server-QuickStart.md安装步骤导出源码git clone https://gitee.com/sofastack/sofa-registry.git编译打包cd sofa-registrymvn clean package -DskipTests解压到指定目录cp server/distribution/integration/target/registry-integrat原创 2021-11-10 21:31:33 · 701 阅读 · 4 评论 -
Eclipse下maven项目异常:Could not initialize class org.codehaus.plexus.archiver.jar.JarArchiver
问题描述Could not initialize class org.codehaus.plexus.archiver.jar.JarArchiver参考来源https://blog.csdn.net/culven/article/details/86737332解决办法<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin原创 2021-11-10 21:27:22 · 934 阅读 · 0 评论 -
gradle如何添加自定义源文件目录
修改build.gradle文件// 添加自定义源文件目录sourceSets { main { java.srcDirs += ['src/main/testa','src/main/testb'] }}// 打印源文件目录信息task printSourceSetInformation(){ doLast{ sourceSets.each { srcSet -> println "["+srcSet.n原创 2021-10-29 09:48:58 · 1637 阅读 · 0 评论 -
Java NIO关于文件读写、拷贝、删除操作备忘
import java.io.IOException;import java.nio.channels.FileChannel;import java.nio.charset.Charset;import java.nio.file.FileVisitResult;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.SimpleFileVisi.原创 2021-10-05 08:06:15 · 157 阅读 · 0 评论 -
Spring如何解决循环依赖
问题由来为什么Spring IOC容器在处理循环依赖这块比较复杂,主要是AOP代理(AnnotationAwareAspectJAutoProxyCreator)的引入,它会改变对象的引用地址。如果按默认的顺序,这个代理类是在装配属性(populateBean)之后才执行的,所以Spring把生成代理这块的逻辑放在一个lambda表达式里,即一个ObjectFactory匿名类里() -> getEarlyBeanReference(beanName, mbd, bean),如果存在循环引用,原创 2021-09-18 23:45:32 · 48 阅读 · 0 评论 -
JAVA类加载器相关备忘
有哪些类加载器引导类加载器(Bootstrap ClassLoader)c++编写,无法直接引用,主要负责加载jre/lib目录下的核心类库扩展类加载器(Extension ClassLoader)主要负责加载jre/lib/ext目录下的标准扩展类库应用类加载器(Application ClassLoader)主要负责加载CLASSPATH环境变量下的类,应用中的类基本是用的这个类加载器自定义类加载器(Custom ClassLoader)可以通过继承java.lang.C原创 2021-09-16 12:06:14 · 62 阅读 · 0 评论 -
Java中SPI机制使用示例
SPI是什么SPI ,全称为 Service Provider Interface,是一种服务发现机制,动态的为某个接口寻找服务实现。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。代码示例定义接口package com.test;public interface DataProcessor { void process();}定义实现类package com.abc;import com.tes.原创 2021-09-15 22:11:20 · 277 阅读 · 0 评论 -
JAVA中重写equals方法相关细节备忘
应遵循的原则自反性对于任何非空引用x,x.equals(x)应该返回true。对称性对于任何引用x和y,如果x.equals(y)返回true,那么y.equals(x)也应该返回true。传递性对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true。一致性如果x和y引用的对象没有发生变化,那么反复调用x.equals(y)应该返回同样的结果。非空性对于任意非空引用x,x.equ原创 2021-09-14 16:54:25 · 68 阅读 · 0 评论 -
JAVA中对象序列化备忘
序列化的必要条件JAVA中的对象如果需要序列化,需要实现Serializable接口其中有个最佳实践是要生成一个serialVersionUID。关于serialVersionUID为什么要手动生成一个serialVersionUID?当反序列化时会去验证序列化文件中的serialVersionUID是否与当前类的serialVersionUID一致,如果一致才会反序列化成功,否则会失败。如果不主动声明的话,JAVA虚拟机会自动生成一个,当我们对类进行了一些变更,比如增加了一个属性,这个原创 2021-09-13 15:47:26 · 56 阅读 · 0 评论 -
面试题:线程有几种状态
JAVA虚拟机中的线程状态可以通过Thread.State来查看NEW线程刚创建时默认是这个状态,比如new Thread();RUNNABLE执行start方法后,线程的状态是RUNNABLE.BLOCKED等待获取锁的线程处于该状态。WAITING等待其他线程处理结束,如CountDownLatch.await方法会让当前线程处于WAITING状态。TIMED_WAITING在线程中执行sleep语句时,线程的状态是TIMED_WAITINGTERMINA原创 2021-09-12 17:00:43 · 99 阅读 · 0 评论 -
面试题:字符串的反转
题目请用java代码(或伪代码)实现字符串的反转,如:输入abcde,输出edcba。示例代码import static org.junit.jupiter.api.Assertions.assertEquals;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;@DisplayName("String Reverse Test")public class StringReverseT原创 2021-09-12 10:47:30 · 118 阅读 · 0 评论 -
Gradle中使用Junit5做单元测试备忘
配制build.gradledependencies { testImplementation(platform('org.junit:junit-bom:5.7.2')) testImplementation('org.junit.jupiter:junit-jupiter')}test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed" }}原创 2021-09-12 10:26:48 · 962 阅读 · 0 评论 -
面试题:DCL单例为什么要加volatile
背景知识什么是DCLDouble Check Lock的缩写,双重检测锁。懒加载单例模式public class Singleton { private static volatile Singleton singleton; private long a; private Singleton() { this.a = 100L; } public static Singleton getInstance() {原创 2021-09-11 20:50:52 · 250 阅读 · 0 评论 -
JAVA对象的内存布局分析
分析工具可通过JOL工具进行分析依赖testImplementation 'org.openjdk.jol:jol-core:0.16'示例代码import org.junit.jupiter.api.Test; import org.openjdk.jol.info.ClassLayout; public class ObjectLayoutTest { @Test void testLayout(){ System...原创 2021-09-11 19:54:41 · 152 阅读 · 0 评论