java
zhangpeterx
这个作者很懒,什么都没留下…
展开
-
IDEA-Java自动生成单元测试
此文首发于我的Jekyll博客:zhang0peter的个人博客最近在写单元测试,感觉写Mock写烦了,于是想看看有没有现成的spring项目的单元测试生成工具。网上找到了一个Java单元测试回答的集合:Automatic generation of unit tests for Java? - Stack OverflowSquaretest官网:Squaretest - Java Unit Test Generator for IntelliJ IDEA安装方法是从IDEA插件仓库中安装Sq原创 2020-08-06 08:10:39 · 10833 阅读 · 4 评论 -
Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector
文章目录GC的优缺点引用的四种类型对象标记算法引用计数法可达性分析法回收算法标记-清除算法(Mark-Sweep)复制算法标记-整理算法(Mark-Compact)分代收集算法常见的 GC collector后记此文首发于我的Jekyll博客:Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collectorGC的优缺点Java对比...原创 2020-02-13 16:38:34 · 969 阅读 · 1 评论 -
Java数组排序: Array-ArrayList-List-Collections.sort()/List.sort()/Arrays.sort()
文章目录ArrayList/List 的排序:Collections.sort()/List.sort()Array 的排序:Arrays.sort()此文首发于我的Jekyll博客:zhang0peter的个人博客之前写了一篇博客:Java:获取数组中的子数组的多种方法现在在做LeetCode题目时想要对数组进行排序,于是想到Java中是否存在C++的标准库中的std::sort()。...原创 2020-02-07 10:02:07 · 766 阅读 · 0 评论 -
记一次Java多线程程序调试经历:HttpClient 死锁
我自己写了一个爬虫程序,跑了半天后程序就卡死了,没有任何输出和动静。先是使用jstatd和VisualVM,参考这篇文章:jstatd,VisualVM使用和报错解决结果如下图:看到内存毫无变化,应该是发生了死锁。使用命令jstack查看线程状态:-> % jstack 26924 2019-12-23 09:53:38Full thread dump OpenJ...原创 2019-12-23 10:59:01 · 2271 阅读 · 0 评论 -
jstatd,VisualVM使用和报错解决:Could not create remote object--java.security.AccessControlException
今天在使用jstatd和VisualVM来查看Java程序运行的怎样,结果报错了:-> # jstatdCould not create remote objectjava.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubCl...原创 2019-12-22 13:12:23 · 2870 阅读 · 0 评论 -
IDEA报错总结:修改Java编译版本--maven项目
之前写过2篇文章:解决IDEA报错:Lambda expressions not supported at language level ‘7’IDEA报错解决:Error:(33, 35) java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)早上又遇到报错:Warning:(117, 13) java: ...原创 2019-12-21 14:20:24 · 2885 阅读 · 2 评论 -
Java源码详解六:ConcurrentHashMap源码分析--openjdk java 11源码
文章目录注释类的继承与实现数据的存储构造函数本系列是Java详解,专栏地址:Java源码分析ConcurrentHashMap 官方文档:ConcurrentHashMap (Java Platform SE 8 )ConcurrentHashMap.java源码共6383行,下载地址见我的文章:Java源码下载和阅读(JDK1.8/Java 11) 文件地址:openjdk-jdk1...原创 2019-12-20 08:48:14 · 399 阅读 · 0 评论 -
Java源码详解五:ArrayList源码分析--openjdk java 11源码
文章目录本系列是Java详解,专栏地址:Java源码分析String 官方文档:String (Java Platform SE 8 )String .java源码共3348行,下载地址见我的文章:Java源码下载和阅读(JDK1.8/Java 11) 文件地址:openjdk-jdk11u-jdk-11.0.6-3/src/java.base/share/classes/java/l...原创 2019-12-10 14:25:44 · 407 阅读 · 0 评论 -
Java并发学习三:银行转账的死锁问题解决及示例
Java并发学习系列文章:Java并发学习-博客专栏今天在学习极客时间专栏:《Java并发编程实战》从03 | 互斥锁(上):解决原子性问题到06 | 用“等待-通知”机制优化循环等待。课程主要用银行转账作为解决死锁的例子。在转账过程中需要2把锁,一个锁锁住转出账户的余额,一把锁锁住转入账户的余额。但加锁的先后顺序会使程序产生死锁。有以下这四个条件都发生时才会出现死锁:1.互斥,共...原创 2019-12-02 13:53:56 · 2757 阅读 · 1 评论 -
Java并发学习二:编译优化带来的有序性问题导致的并发Bug
今天在学习极客时间专栏:《Java并发编程实战》第一讲01 | 可见性、原子性和有序性问题:并发编程Bug的源头中提到:编译器及解释器的优化可能导致意想不到的 Bug双重检验创建单例代码如下:public class Singleton { static Singleton instance; static Singleton getInstance(){ if (in...原创 2019-11-30 10:57:51 · 543 阅读 · 0 评论 -
Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug
今天在学习极客时间专栏:Java并发编程实战第一讲01 | 可见性、原子性和有序性问题:并发编程Bug的源头中提到了:多核时代,每颗 CPU 都有自己的缓存,这时 CPU 缓存与内存的数据一致性就没那么容易解决了,当多个线程在不同的 CPU 上执行时,这些线程操作的是不同的 CPU 缓存。示例代码如下:public class App { private static int ...原创 2019-11-30 10:35:43 · 688 阅读 · 1 评论 -
Maven报错解决:Element 'dependency' cannot have character [children], because the type's content type is
在用maven的时候遇到报错:Element 'dependency' cannot have character [children], because the type's content type is element-only.报错内容如下: <dependencies> <dependency> <groupId>juni...原创 2019-11-29 10:59:40 · 13395 阅读 · 4 评论 -
IDEA报错解决:Error:(33, 35) java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
晚上在用IDEA的时候遇到了报错:Error:(33, 35) java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)我在IDEA的设置里选择File → Project Structure → Project, 修改Level到大于7的等级,我选择8 - Lambdas, type annotations...原创 2019-11-29 10:19:09 · 1445 阅读 · 0 评论 -
Java源码详解四:String源码分析--openjdk java 11源码
本系列是Java详解,专栏地址:Java源码分析String 官方文档:String (Java Platform SE 8 )String .java源码共3348行,下载地址见我的文章:Java源码下载和阅读(JDK1.8/Java 11) 文件地址:openjdk-jdk11u-jdk-11.0.6-3/src/java.base/share/classes/java/lang...原创 2019-12-15 13:33:58 · 660 阅读 · 0 评论 -
Java源码详解三:Hashtable源码分析--openjdk java 11源码
文章目录本系列是Java详解,专栏地址:Java源码分析Hashtable官方文档:Hashtable (Java Platform SE 8 )Hashtable.java源码共1522行,下载地址见我的文章:Java源码下载和阅读(JDK1.8/Java 11) 文件地址:openjdk-jdk11u-jdk-11.0.6-3/src/java.base/share/classes...原创 2019-11-25 16:14:32 · 252 阅读 · 0 评论 -
Java:Object.hashCode()和System.identityHashCode()的区别
今天在看HashMap源码的时候注意到了这件事:Java源码详解二:HashMap源码分析–openjdk java 11源码对红黑树中的节点进行排序时,如果hashCode相同,类不是comparable的,那么先判断名字是否相同,相同的话再调用系统的hash方法进行判断:if (d = a.getClass().getName().compareTo(b.getClass().getN...原创 2019-11-22 16:09:31 · 496 阅读 · 0 评论 -
自己实现Java RPC框架一:RMI
自己实现Java RPC框架一:RMI原创 2019-11-16 21:35:48 · 264 阅读 · 0 评论 -
Java源码详解零:HashMap介绍
Java详解(1):HashMap的实现与注意事项本系列是Java详解,专栏地址:原创 2019-11-20 16:20:16 · 338 阅读 · 0 评论 -
Java线程池详解学习:ThreadPoolExecutor
Java线程池详解学习:ThreadPoolExecutor原创 2019-05-27 10:58:04 · 252 阅读 · 0 评论 -
Linux 问题解决 :/lib/systemd/systemd-journald 占用内存过高
早上在用htop查看Linux系统状况时,发现/lib/systemd/systemd-journald占用了过高的内存。然后我感觉是因为我的Java程序遇到问题阻塞了的原因,我先把JVM的内存dump出来:jmap -dump:format=b,file=dump.hprof pid然后还没等我看详细情况,这个任务的占用就下去了下次再出现这种情况时再查吧。...原创 2019-05-29 10:18:37 · 14060 阅读 · 1 评论 -
Windows下 安装Oracle Java 11 并设置环境变量
Oracle Java 11 官网:Java SE Development Kit 11- - Downloads2019-5-30:最新的版本是11.0.3选择Windows版本:注意:现在下载Java 11需要先注册一个Oracle的账号原创 2019-05-30 18:24:08 · 2164 阅读 · 0 评论 -
IntelliJ IDEA 使用 Java 11新特性以及Java 8 以来的Java 11新特性介绍
Java 11新特性原创 2019-05-30 19:00:05 · 3333 阅读 · 0 评论 -
IDEA 2019 生成Spring Boot项目,编写第一个Hello World程序,并打包成jar
IDEA集成了生成Spring Boot项目的功能,不需要你去 start.spring.io 上下载,使用方法如下:原创 2019-06-02 10:36:32 · 3153 阅读 · 0 评论 -
HikariPool使用MySQL/MariaDB数据库报错解决:java.sql.SQLException: Access denied for user 'root'@'localhost' (u
在使用HikariPool连接到我的数据库时报错如下,完整的报错放在最后:2019-06-25 20:24:26.048 ERROR 18204 --- [nio-8080-exec-9] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.java.sq...原创 2019-06-25 20:58:34 · 2822 阅读 · 0 评论 -
ClickHouse 系列教程五:多种连接方法
文章目录clickhouse-clientHTTP 接口JDBCPython接口clickhouse-client你可以通过clickhouse-client命令行进行连接,使用方法如下:clickhouse-client --multiline --passwordHTTP 接口你可以通过HTTP直接连上ClickHouse:root@ubuntu:~# curl 'http:/...原创 2019-07-08 14:56:19 · 36414 阅读 · 5 评论 -
计算项目中的代码行数:Count the Lines of Code (LOC)
很多时候打开一个大的项目工程时,我们会想知道这个项目有多少行代码。Visual Studio 自带这个功能,在分析->窗口->代码度量值结果,但是这个功能比较耗时,因为同时分析了代码的耦合程度,继承深度等内容。powershell中可以实现这个功能,参考自:How do you count the lines of code in a Visual Studio solution?...原创 2019-07-13 23:46:59 · 1922 阅读 · 0 评论 -
cityhash 算法的使用
今天在看ClickHouse源码时,注意到ClickHouse使用了cityhash128作为自己的HASH算法:The first 16 bytes are the checksum from all other bytes of the block. Now only CityHash128 is used.cityhash 算法是谷歌提出的哈希算法,之前从来没有听说过。GitHub仓...原创 2019-07-11 10:31:12 · 11791 阅读 · 3 评论 -
Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...
Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) - zhangpeterx的博客 在源码的目录java/util/concurrent下找到Executors.java文件查看源码。里面提到的封装类有:newScheduledThreadPool,newSingleThreadScheduledExecutor,newCachedThreadPool,newSing...原创 2019-05-27 10:23:25 · 814 阅读 · 0 评论 -
Java报错解决:org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closi
再跑爬虫程序的时候突然遇到了如下报错:org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected... at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(C...原创 2019-05-26 10:58:17 · 14301 阅读 · 0 评论 -
IDEA创建maven项目报错解决:Failed to create a Maven project: 'C:/Users/../IdeaProjects/../pom.xml' already e
晚上用IDEA创建Java的maven项目时报错了:Failed to create a Maven project: 'C:/Users/../IdeaProjects/../pom.xml' already exists in VFS这个错误是因为之前我已经在这个文件夹里创建过同名的maven项目。解决方法如下:先把这个项目删了,然后把回收站中的这个项目和之前同名的项目一起彻底删除,...原创 2019-05-21 19:31:17 · 12733 阅读 · 0 评论 -
Linux: debian/ubuntu下安装和使用Java 11
Linux: debian/ubuntu下安装和使用Java 11只需6行命令:su -echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic main" | tee /etc/apt/sources.list.d/linuxuprising-java.listapt-key adv --keyserver h...原创 2019-03-31 16:21:58 · 3028 阅读 · 0 评论 -
Linux: debian/ubuntu下安装和使用Java 8
Linux: debian/ubuntu下安装和使用Java 83行命令解决问题:apt-get install software-properties-common && add-apt-repository ppa:webupd8team/javaapt update && apt install oracle-java8-installer java ...原创 2019-03-31 15:58:17 · 402 阅读 · 0 评论 -
Linux: debian/ubuntu下安装Neo4j
文章目录Linux: debian/ubuntu下安装和使用Neo4j安装Linux: debian/ubuntu下安装和使用Neo4j安装Neo4j的官方仓库地址:neo4j/neo4j: Graphs for Everyone注意:Neo4j需要java环境,Linux下Java的安装可以参考这篇文章:...原创 2019-03-31 15:48:31 · 935 阅读 · 0 评论 -
Java源码详解二:HashMap源码分析--openjdk java 11源码
本系列是Java详解,专栏地址:Java详解HashMap.java介绍HashMap官方文档:HashMap (Java Platform SE 8 )HashMap.java源码共2392行,下载地址见我的文章:Java源码下载和阅读(JDK1.8) 从下图中我们可以看出HashMap继承自AbstractMap...原创 2019-11-20 16:21:44 · 496 阅读 · 0 评论 -
Java源码下载和阅读(JDK1.8/Java 11)
文章目录1.openjdk的Java源码2. Oracle 的Java源码1.openjdk的Java源码JDK10的源码可以直接从openjdk上下载.下载地址:openjdk-10_src.zipopenjdk上也有jdk8的源码可供下载:openjdk-8u40.zip2. Oracle 的Java源码如果你的电脑上已经安装好了jdk1.8,那么Oracle 的Java源码已经在电...原创 2019-11-15 20:24:53 · 7319 阅读 · 0 评论 -
Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符字符串的contains可以判断一个字符串中是否存在另一个字符子串,实例如下 String Str = &quot;Hello , World .&quot;; if (Str.contains(&quot;Hello&quot;)) { System.out.println(&quot;Str contain原创 2019-03-18 15:10:43 · 9457 阅读 · 0 评论 -
jetbrains intellij IDEA 常用插件和配置
未完待续原创 2019-03-25 10:20:36 · 1094 阅读 · 1 评论 -
Java:获取数组中的子数组的多种方法
文章目录Java:从一个数组中创建子数组使用Arrays.copyOfRange函数使用subListJava:从一个数组中创建子数组使用Arrays.copyOfRange函数Arrays.copyOfRange支持:boolean[], byte[] ,char[],double[],float[],int[],long[]以及泛型的 T[]使用示例如下:import java.ut...原创 2019-03-21 15:30:21 · 37960 阅读 · 2 评论 -
Java实现markdown转html,并且生成TOC目录
过几天空闲了再写。推荐第三方库:flexmark-javahttps://github.com/vsch/flexmark-java原创 2019-01-14 10:10:21 · 6263 阅读 · 1 评论 -
java报错-找不到或无法加载主类(Error: Could not find or load main class)
比如说test.javapackage test;public class test{ public static void main(String[] args) { System.out.println("Hello Word !"); }}运行java文件需要先编译:javac test.java然后运行:java test有时在运行时,...原创 2018-12-10 17:06:34 · 22608 阅读 · 2 评论