一起学Java(22)-[JDK篇]学习Java中String的字符编码和代理对机制
上文《一起学Java(21)-[配置篇]Gradle控制台乱码问题配置和解决》中,我们解决了Gradle控制台字符乱码问题,这个问题实际是在研究Java String的字符编码机制时产生的。本文回归正题,研究下Java中String的字符编码和代理对机制。
已为您筛选出所有包含「#一起学Java」标签的技术文章与算法真题
上文《一起学Java(21)-[配置篇]Gradle控制台乱码问题配置和解决》中,我们解决了Gradle控制台字符乱码问题,这个问题实际是在研究Java String的字符编码机制时产生的。本文回归正题,研究下Java中String的字符编码和代理对机制。
在《一起学Java(18)-[配置篇]一个诡异(有趣)的Gradle Wrapper问题》中,我们解决了一个有趣的Gradle Wrapper使用问题,这次我们在研究Java String编码的时候,又遇到了Gradle使用中的控制台乱码问题,遂记录并分享问题的现象和解决的过程。
![一起学Java(21)-[配置篇]Gradle控制台乱码问题配置和解决](/images/post/java-go-21/java-build-and-run.png)
在《一起学Java(19)-[测试篇]教你通过Gradle配置和使用JUnit5》中,我们引入了JUnit5单元测试框架。在进行单元测试时,我们不仅要关注测试的正确性和完整性,还要关注测试的覆盖率。覆盖率反映了测试用例对代码的覆盖程度,能够帮助我们发现潜在的测试盲区,确保代码的每个部分都得到了适当的验证。 为了更好地分...
![一起学Java(20)-[测试篇]教你通过Gradle配置和使用JaCoCo单元测试覆盖率检查工具](/images/post/java-go-20/jacoco-report.png)
前文已详细介绍了JUnit框架的特点以及JUnit5和JUnit4版本的核心差异(《一起学Java(17)-[测试篇]教你认识Java单元测试框架JUnit,JUnit5和JUnit4区别详解》)。本文将进入应用实战,详细介绍如何在Gradle项目中引入、配置和使用JUnit5测试框架。
![一起学Java(19)-[测试篇]教你通过Gradle配置和使用JUnit5](/images/post/java-go-19/junit5-report.png)
在研究JUnit使用的时候,遇到了一个有趣的Gradle Wrapper使用问题,经过若干天的研究,终于找到并解决了问题,记录分享如下,这也是我们一起学Java过程中遇到的问题。
在上一篇文章中(《一起学Java(16)-[测试篇]教你知道什么是单元测试,单元测试的特点以及Java主要的单元测试框架》),我们介绍了什么是单元测试,单元测试的特点以及Java主要的单元测试框架。其中提到,JUnit是Java世界中最广泛使用且最具影响力的单元测试框架。本文将重点介绍JUnit框架,特别是其最新版本J...
看起来好像学习的主题有些跳跃,因为正在研究Java单元测试覆盖率统计相关问题,所以跳到单测这个领域。为了更好理解这个问题,我从什么是单元测试学起,逐步深入到如何做单元测试、单元测试效果如何检查,最后落到Jacoco单元测试覆盖率工具介绍和使用这个主题。个人感觉这个路径还是比较便于理解的。 本文主要聚焦什么是单元测试,单...
在文章《2024年主流使用的JDK版本及其核心特性介绍》中,我们详细介绍了Java8、Java11、Java17等主流Java版本主要新增特性。针对其中的一些核心特性,展开研究一二。
研究完Log4j2与SLF4J集成的原理(一起学Java(13)-[日志篇]教你分析SLF4J和Log4j2源码,掌握SLF4J与Log4j2桥接集成原理),学习如何真正应用Log4j2。
![一起学Java(14)-[日志篇]教你用透Log4j2,掌握Log4j2配置原理和实际应用](/images/post/java-go/log4j2-config.png)
研究完SLF4J和Logback这种无缝集成的方式(一起学Java(12)-[日志篇]教你分析SLF4J源码,掌握SLF4J如何与Logback无缝集成的原理),继续研究Log4j2和SLF4J这种需要桥接集成的方式。
继续完成上篇(一起学Java(11)-[日志篇]教你分析SLF4J源码,掌握Logger接口实现类加载原理)留给自己的任务,研究Logback是如何和SLF4J无缝集成的。
![一起学Java(12)-[日志篇]教你分析SLF4J源码,掌握SLF4J如何与Logback无缝集成的原理](/images/post/java-go-12/logback-provider.png)
最近各种事情很忙,今天继续。在第十篇(一起学Java(10)-为项目引入Log框架(Log篇二-引入SLF4J接口层框架))中,我们为项目(https://github.com/lihongzheshuai/java-all-in-one)引入了SLF4J和Logback框架,按计划通过阅读源码研究下SLF4J的实现原...
![一起学Java(11)-[日志篇]教你分析SLF4J源码,掌握Logger接口实现类加载原理](/images/previews/concrete-bindings.png)
在上一节一起学Java(9)-为项目引入Log框架(Log篇一-框架演进和设计逻辑中,我们已经理清了Java日志框架的演进过程、设计思想和核心框架。从这节开始,进入实战研究环节。
在项目开发中,日志记录(Logging)扮演着至关重要的角色。日志是开发人员调试代码和诊断问题的重要工具。例如:在生产环境中,开发人员通常无法直接调试代码,日志提供了一个详细的执行轨迹,帮助开发人员重现问题。因此,在进入其他框架和代码研究前,我首先想到的就是先完成项目日志框架的引入,进一步夯实基础工作。 要完成Log框...
![一起学Java(9)-[日志篇]教你掌握Java日志框架的演进和设计逻辑](/images/previews/concrete-bindings.png)
我们的java-all-in-one项目的第一个PR比我预想的来的早了很多。感谢来自我的QQ群友(插播广告,欢迎大家加入Java技术交流群982860385)的PR。今天就介绍一下这次PR和项目调整的主要内容。
![一起学Java(8)-[起步篇]教你如何进行本项目的PR和将IDE相关文件移除版本控制](/images/post/java-go-8/firstpr_2024-08-04_14-48-41.png)
在现代软件开发中,README文件是任何项目中不可或缺的一部分。它不仅为用户提供了项目的基本信息,还指导开发者如何使用、安装和贡献代码。其实,早在2014年的文章《为项目编写Readme.MD文件》中,我就提到过关于README的事情。今天为了我们的项目,旧事重提也为让大家再get一个知识点,我们再来说说这个READM...
![一起学Java(7)-[起步篇]教你为本开源项目编写README文件](/images/post/java-go-7/readme-preview_2024-08-01_21-15-25.png)
前两篇文章(《一起学Java(4)-java-all-in-one协作项目相关文件研究(Gradle篇-上)》和《一起学Java(5)-java-all-in-one协作项目相关文件研究(Gradle篇-下))》)我们已经完成了对项目中Gradle相关文件的研究,按照计划我们继续研究项目的其他配置文件,主要是Git和I...
![一起学Java(6)-[起步篇]教你掌握本协作项目中Git和IDEA相关配置文件](/images/post/java-go-6-idea-files/idea-files.png)
接上篇《一起学Java(4)-java-all-in-one协作项目相关文件研究(Gradle篇-上)》,本文继续研究项目中Gradle相关文件。
将思绪拉回java-all-in-one项目,如果你fork并下载了代码,你会看到在项目中除了HelloWorldMain代码外,还存在很多文件。如果你并不了解他们的作用并有足够的好奇心,那你应该想要知道他们的作用。带着好奇,今天我也来研究一下,先从Gradle相关的开始。
在第一步创建的项目(java-all-in-one)项目里,我们提到了使用Gradle作为项目构建工具。看到这里,不知道你是否有疑惑,什么是项目构建工具。Java项目常用构建工具有哪些?都有什么特点? 带着疑惑,本文对Java的构建工具进行一些梳理,以同步理解。从而使大家对我们项目中使用到的技术栈和技术工具都有个基本的...