gopher的java学习笔记
文章平均质量分 76
ThisIsClark
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【gopher的java学习笔记】JAR包与WAR包:区别、选择时机及示例
本文将详细介绍JAR包和WAR包之间的区别,阐述何时会选择使用它们,并给出具体的示例。理解它们之间的区别并根据项目的需求选择合适的打包方式对于高效地构建和部署Java应用至关重要。通过本文的介绍和示例,希望读者能够更好地理解JAR包和WAR包的区别,并在实际开发中做出明智的选择。:假设你开发了一个简单的Java计算器应用程序,并且希望将其打包成一个JAR包以便分发。文件放置到Tomcat的webapps目录中,然后启动Tomcat服务器,即可访问你的Web应用程序。的JAR包,可以直接使用。原创 2025-03-20 13:22:54 · 1096 阅读 · 0 评论 -
【gopher的java学习笔记】Maven依赖中的scope字段:精准控制依赖生命周期的实战指南
在Maven项目的依赖管理中,<scope>字段是控制依赖作用范围的"隐形开关"。它决定了依赖项在构建生命周期的哪个阶段生效,直接影响项目的编译、测试、打包及运行行为。本文将通过,深入解析六种scope的取值及其典型应用场景,帮助开发者构建更规范、更高效的依赖管理体系。原创 2025-03-18 21:19:28 · 1318 阅读 · 0 评论 -
【gopher的java学习笔记】本地调试时配置Feign接口URL的实用指南
通过灵活组合硬编码、配置文件和统一路径前缀,开发者可以构建适应不同调试场景的Feign配置方案。建议将生产环境配置与调试配置通过Profile隔离,既保证开发效率,又维持配置的可维护性。在云原生时代,还可结合Service Mesh(如Istio)实现更精细的流量控制,但本地调试的基础配置技巧仍是开发者必备的核心技能。原创 2025-03-18 14:36:45 · 868 阅读 · 0 评论 -
【gopher的java学习笔记】Java中的extends与implements:继承与实现的关系与区别
在Java面向对象编程中,extends和implements是两个核心关键字,它们分别用于和。尽管两者都涉及代码复用和多态性,但它们的适用场景和设计理念存在本质区别。本文通过对比分析和代码示例,帮助开发者深入理解二者的关系与差异。原创 2025-03-17 14:06:10 · 588 阅读 · 0 评论 -
【gopher的java学习笔记】如何知道java应用启动过程中加载了哪些class
使用Java命令中的参数可以帮助我们查看启动时加载的Class,这对于调试和性能分析非常有帮助。然而,由于其对性能的影响,建议仅在开发或测试环境中使用。结合其他JVM监控和管理工具,我们可以更全面地了解类加载的情况,从而优化应用程序的性能。原创 2025-03-14 13:43:11 · 530 阅读 · 0 评论 -
【gopher的java学习笔记】如何知道一个jar包对应的maven中的groupId和atrifactId
比如对于org.apache.log4j.Logger这个class name来说,实际上它所在的jar文件就叫log4j-1.2.17.jar,那我们应该排查的是我们的jar包里面有没有log4j-1.2.17.jar这个jar包。首先,你需要解压这个JAR包。要查看一个JAR包的group和artifact信息,通常可以查看该JAR包的元数据文件,其中最常见的方法是查看JAR包中的。此外,如果你正在使用一个Maven项目,你可以通过在你的项目中添加该JAR包作为依赖,然后在。中查看或搜索相关信息。原创 2025-03-14 13:36:34 · 869 阅读 · 0 评论 -
【gopher的java学习笔记】JAR文件内部目录结构探秘
在计算机编程领域,JAR(Java ARchive)文件是一种用于压缩和分发多个文件(通常是Java类文件、资源文件、元数据等)的归档格式。它基于ZIP压缩格式,因此也具备ZIP文件的一些基本特性。JAR文件不仅方便了Java应用程序的打包和部署,还使得类加载器能够更高效地加载和管理类文件。本文将深入探讨JAR文件内部的目录结构,帮助读者更好地理解其组织方式。原创 2025-03-13 13:27:13 · 790 阅读 · 0 评论 -
【gopher的java学习笔记】如何通过jar命令解压JAR包
通过jar命令解压JAR包是一个简单而直接的过程。只需确保你的系统上安装了JDK,找到你要解压的JAR文件,然后使用jar -xvf命令即可。如果你需要将内容解压到特定目录,还可以添加-C选项来指定目标目录。希望本文能帮助你轻松解压JAR文件并查看其内容。原创 2025-03-12 13:47:39 · 1636 阅读 · 0 评论 -
【gopher的java学习笔记】什么是classLoader
ClassLoader是Java虚拟机(JVM)的一部分,负责在运行时动态加载类。它是一个抽象类,位于java.lang包中。ClassLoader的主要任务是将类的字节码文件从文件系统或网络等资源加载到内存中,并将其转化为JVM可以执行的Class对象。通过ClassLoader,Java实现了代码的动态加载、模块化和安全性。ClassLoader是Java虚拟机的重要组成部分,负责在运行时动态加载类。通过了解ClassLoader的基本概念、分类和工作机制,我们可以更好地理解和应用Java的动态特性。原创 2025-02-17 13:10:38 · 933 阅读 · 0 评论 -
【gopher的java学习笔记】arthas的trace和watch分别可以用来干什么
类似于golang的pprof,Arthas 是一款强大的 Java 诊断工具,它为开发者提供了多种功能来分析和调试运行中的 Java 应用程序。其中,trace和watch是 Arthas 中两个非常实用的命令,它们各自具有独特的功能和应用场景。下面,我们将详细介绍这两个命令的区别及其使用。原创 2025-02-07 13:15:58 · 665 阅读 · 0 评论 -
【gopher的java学习笔记】一文讲懂controller,service,mapper,entity是什么
Entity(实体)作用:代表数据库中的表结构,是数据模型的基本单元。通常包含属性和这些属性的getter/setter方法。可以简单理解成就是数据库表在代码里面定义一遍。示例:用户实体类User,包含用户ID、用户名、密码等字段。Mapper(映射器)作用:负责将Entity对象与数据库记录进行映射,执行CRUD(创建、读取、更新、删除)操作。在MyBatis等ORM框架中,Mapper通常是一个Interface。原创 2025-01-24 10:11:32 · 648 阅读 · 0 评论 -
【gopher的java学习笔记】Java中Mapper与Entity的关系详解
在Java后端开发中,特别是在使用MyBatis等持久层框架时,Mapper与Entity的关系是架构设计中不可忽视的一部分。本文将从Java Web应用程序的角度出发,详细探讨Mapper与Entity的关系及其在技术实现中的作用。原创 2025-01-21 23:27:35 · 1476 阅读 · 0 评论 -
【gopher的java学习笔记】Java中Service与Mapper的关系详解
在后端开发中,Java作为一种广泛使用的编程语言,其架构设计和层次划分对于系统的可维护性、可扩展性和性能有着至关重要的影响。特别是在使用MyBatis等持久层框架时,Service层与Mapper层的关系更是值得深入探讨。本文将从Java Web应用程序的角度出发,详细解析Service层与Mapper层的关系及其在技术实现中的作用。原创 2025-01-21 23:23:54 · 1657 阅读 · 0 评论 -
【gopher的java学习笔记】@Autowired和@Resource注解的区别
Autowired是Spring框架提供的一个核心注解,用于实现依赖注入。它简化了开发者在配置Bean之间的依赖关系时的工作。通过@Autowired注解,Spring容器可以自动将依赖对象注入到目标Bean中,而无需手动创建或查找这些依赖。@Autowired和@Resource注解都是用于实现依赖注入的注解,但它们在来源、查找顺序、属性支持等方面存在显著差异。@Autowired注解由Spring框架提供,默认按类型匹配;@Resource注解由JSR-250规范提供,默认按名称匹配,并支持多个属性。原创 2025-01-08 07:30:55 · 785 阅读 · 0 评论 -
【gopher的java学习笔记】Concurrent Mark-Sweep GC过程详细解析
CMS GC是HotSpot虚拟机中首款真正意义上的并发收集器,它首次实现了垃圾收集线程与用户线程(基本上)同时工作。CMS GC主要针对老年代进行垃圾回收,可以与ParNew或Serial等新生代收集器配合使用。原创 2025-01-07 07:37:30 · 997 阅读 · 0 评论 -
【gopher的java学习笔记】Java常用的GC方法
在Java语言中,垃圾回收(Garbage Collection,简称GC)是一种自动内存管理机制。它负责自动检测并回收那些不再被程序使用的对象所占用的内存空间,从而减轻程序员管理内存的负担,提高程序的稳定性和性能。垃圾回收机制是Java语言的重要特性之一,它使得程序员可以更加专注于业务逻辑的实现,而不必担心内存泄漏等问题。原创 2025-01-07 07:32:31 · 650 阅读 · 0 评论 -
【gopher的java学习笔记】什么是po,vo
在软件开发领域,PO(Persistent Object,持久化对象)和VO(Value Object,值对象)是两个重要的概念。它们各自在软件架构的不同层次中扮演着关键角色,有助于实现代码的复用性、可维护性和可扩展性。本文将详细探讨PO和VO的定义、原理及应用,并通过代码示例进行说明。PO和VO是软件开发中两个重要的概念,它们在软件架构的不同层次中扮演着关键角色。PO主要用于数据的持久化操作,与数据库表结构紧密对应;而VO则主要用于展示层与业务逻辑层之间的数据传递,提供数据的封装性和安全性。原创 2025-01-02 08:31:31 · 1068 阅读 · 0 评论 -
【gopher的java学习笔记】什么是DAO
DAO是一种用于抽象和封装数据访问逻辑的设计模式,它将数据的持久化逻辑与业务逻辑分离,提高了代码的可维护性、可测试性和灵活性。在Java应用程序中,DAO模式通常用于实现数据的持久化操作,如与数据库的交互等。通过合理使用DAO模式,开发者可以更加专注于业务逻辑的实现,而无需关心底层的数据存储细节。原创 2025-01-01 10:06:38 · 397 阅读 · 0 评论 -
【gopher的java学习笔记】mybatis的mapper是什么
MyBatis Generator允许使用自定义模板和插件来生成代码。开发者可以根据项目需求,创建自定义模板来生成符合项目规范的代码,或者使用插件来扩展MyBatis Generator的功能。[3]MyBatis的Mapper技术通过接口绑定机制,实现了对数据库操作的简化和高效。开发者可以通过XML映射文件或注解方式定义SQL语句,并通过Mapper接口直接调用这些SQL语句。原创 2025-01-01 10:03:13 · 979 阅读 · 0 评论 -
【gopher的java学习笔记】代码分层之controller和service
Java中的Controller层和Service层是构建Web应用程序的重要组成部分。Controller层负责接收用户请求并处理,而Service层则负责实现业务逻辑和数据访问。通过将应用程序划分为这两个层次,可以实现代码的模块化和解耦,提高代码的可维护性和可测试性。同时,这种架构也便于团队合作开发,各个层次之间的职责清晰,开发人员可以根据自己的专长进行工作。原创 2024-12-31 08:06:51 · 1512 阅读 · 0 评论 -
【gopher的java学习笔记】依赖管理方式对比(go mod & maven)
go mod是Go语言官方引入的模块管理工具,旨在简化项目依赖管理,提高构建的可重复性和稳定性。以下是关于go mod的详细介绍:在go mod之前,Go语言主要依赖GOPATH和vendor目录来管理项目依赖。然而,这种方式存在一些问题,如依赖关系不明确、版本冲突难以解决、依赖更新困难等。为了解决这些问题,Go语言从1.11版本开始引入了go mod,提供了一个简单、高效、标准化的依赖管理方案。原创 2024-12-31 08:03:09 · 761 阅读 · 0 评论 -
【gopher的java学习笔记】什么是Spring - IoC和DI
控制反转(Inversion of Control)是软件工程领域中的一项设计原则,它将程序中对象之间的依赖关系的控制权从代码本身转移到外部容器或框架中。这一理念在面向对象编程的实践中尤为常见。在传统编程模式中,对象的创建、配置和管理由开发者在代码中显式完成。开发者需要手动编写代码来创建对象实例,并管理它们的生命周期和依赖关系。例如,在Java中,开发者使用new关键字来创建对象实例,并手动设置对象的属性和依赖关系。但在IOC模式下,对象的创建、配置和管理由专门的容器或框架负责。原创 2024-12-30 08:09:52 · 1000 阅读 · 0 评论 -
【gopher的java学习笔记】大厂程序员如何看待转语言
如果你和我一样,职业生涯进展到一定阶段(资深工程师,需要负责架构设计,需要负责带一个小规模的团队),那么这个时候,语言一定不会是你的核心竞争力,你的核心竞争力更应该来自于你的架构设计能力、相关业务的熟练度、对需求和进度的把控能力等,而不会是你会哪门语言。这种我感觉是职业生涯种不可避免会遇到的情况,我们能做的就是拿出能快速切换的能力。如果你是刚入职场两三年的同学,不太建议频繁转语言,因为虽然可以增加你的广度,但会影响你的深度,随着职业生涯的深入,有些东西如果没到一定深度,跟完全没有是没有区别的。原创 2024-12-27 09:11:03 · 468 阅读 · 0 评论 -
【gopher的java学习笔记】@ComponentScan注解解析
注解是Spring框架中非常重要的一个注解,用于指定Spring容器扫描组件的包路径。通过注解,Spring可以自动发现并注册组件,包括@Component@Service等。在实际项目中,注解广泛应用于微服务架构、多模块项目等场景。希望本文能帮助你更好地理解注解的使用,并在实际项目中灵活应用它。转载 2024-12-27 08:24:18 · 1025 阅读 · 0 评论 -
【gopher的java学习笔记】Spring Boot Starter初探
定义:Spring Boot Starter是一组便捷的依赖描述符,它们封装了特定技术或功能的所有必要依赖项和配置。通过引入相应的Starter,开发者可以快速将这些功能集成到Spring Boot项目中。作用:Spring Boot Starter的主要作用是简化项目的依赖管理和配置工作。它通过将常用的库和框架打包成一个starter,并提供默认的配置,使得开发者只需关注业务逻辑的实现,而无需花费大量时间在依赖管理和配置上。原创 2024-12-26 22:51:46 · 1221 阅读 · 1 评论 -
【gopher的java学习笔记】spring web接口404了怎么办
网上搜了下,发现我还是想的太简单了,原来除了实现有@RestController注解的class以外,还要有个办法让spring boot的应用能够感知到这个controller的存在,方法就是在application的class那里要添加一个@ComponentScan注解,目的是确保Spring能够扫描到包含控制器类的包。今天新搭了一个spring boot带spring web的工程,不得不说,这java的生态是比golang要齐全一点,各种脚手架工程应有尽有。原创 2024-12-26 22:37:16 · 379 阅读 · 0 评论
分享