
Java
文章平均质量分 91
Java基础知识及底层原理等
qqxhb
共享、学习
展开
-
零基础学Java——第十一章:实战项目 - 移动应用开发入门
本章介绍了移动应用开发的基础知识,重点聚焦于使用Java进行Android应用开发。首先,概述了移动应用的定义及其在生活中的应用,并介绍了主要的移动平台(Android和iOS)及其开发语言。随后,详细讲解了Android的架构,包括应用程序层、应用程序框架层、系统运行库层和Linux内核层。接着,指导读者如何搭建开发环境,使用Android Studio创建并运行第一个简单的Android应用“Hello Android”。最后,介绍了Android的核心组件之一——Activity,并解释了其生命周期方原创 2025-05-15 08:29:24 · 1079 阅读 · 0 评论 -
零基础学Java——第十一章:实战项目 - 微服务入门
微服务架构是一种将大型复杂应用拆分为多个小型、独立部署服务的架构风格,每个服务专注于特定业务功能,能够独立开发、测试和扩展。与单体应用相比,微服务具有技术多样性、弹性伸缩、独立部署、故障隔离等优势,但也面临分布式系统复杂性、运维成本高、测试复杂等挑战。Java生态中,Spring Boot和Spring Cloud是构建微服务的常用框架,提供了服务发现、负载均衡、API网关等核心组件支持。通过一个简单的“问候服务”和“用户服务”示例,展示了如何使用Spring Boot构建微服务,并演示了服务间的通信与调用原创 2025-05-15 08:25:32 · 903 阅读 · 0 评论 -
零基础学Java——终章:核心知识点与面试总结
本文档总结了Java的核心知识点,涵盖了Java基础、面向对象编程和集合框架等内容,旨在帮助学习者巩固知识并准备面试。Java基础部分介绍了JDK、JRE、JVM等核心概念,以及基本语法、数据类型、运算符和流程控制。面向对象编程部分详细解释了类与对象、封装、继承、多态等特性,并介绍了抽象类与接口的使用。集合框架部分则重点讲解了Collection和Map接口及其常用实现类,如ArrayList、LinkedList、HashSet、HashMap等。通过本文档,读者可以系统掌握Java的核心知识,并为面试做原创 2025-05-14 10:00:35 · 1026 阅读 · 0 评论 -
零基础学Java——第十一章:实战项目 - Web应用开发
本章介绍了Java Web应用开发的基础知识,包括Web应用的定义、工作原理和核心技术。重点讲解了Java Web技术栈,如Servlet、JSP、MVC模式以及Spring框架和Spring Boot的使用。通过Spring Boot,开发者可以快速搭建和部署Web应用。本章还提供了一个简单的实战项目,展示了如何使用Spring Boot创建控制器和处理HTTP请求,并介绍了Thymeleaf模板引擎的使用。通过本章的学习,读者可以掌握Java Web开发的基本概念和工具,为进一步开发复杂Web应用打下基原创 2025-05-14 08:41:03 · 1045 阅读 · 0 评论 -
零基础学Java——第十一章:实战项目 - 桌面应用开发(JavaFX入门)
本章介绍了JavaFX作为现代桌面应用开发工具的基础知识。JavaFX是Swing的替代品,提供了更现代的UI控件、图形和媒体API,并支持CSS样式。与Swing相比,JavaFX具有更美观的界面、基于场景图的架构、更好的并发支持以及WebView和FXML等新特性。文章详细说明了如何搭建JavaFX开发环境,包括下载JavaFX SDK和配置IDE(以IntelliJ IDEA为例)。通过一个简单的“Hello JavaFX”示例,展示了JavaFX应用的基本结构,包括主类、场景、舞台和布局面板的使用。原创 2025-05-14 08:37:33 · 637 阅读 · 0 评论 -
零基础学Java——第十一章:Swing高级组件和布局管理 - 让你的桌面应用更出色!
掌握了这些布局管理器,你就拥有了设计美观、实用、且能适应不同环境的Java桌面应用界面的关键技能!原创 2025-05-13 08:52:05 · 909 阅读 · 0 评论 -
零基础学Java——第十一章:实战项目 - 桌面应用开发:基础与Swing入门
在本章中,我们学习了Java桌面应用开发的基础知识和Swing的入门内容,包括:1. Java桌面应用开发概述2. Swing的基础知识和特点3. 创建第一个Swing应用4. Swing的事件处理机制5. 常用Swing组件的基本使用6. 实现一个简单的登录界面原创 2025-05-13 08:39:53 · 778 阅读 · 0 评论 -
零基础学Java——第十一章:实战项目 - 控制台应用开发
本章介绍了如何开发一个Java控制台应用,重点以学生信息管理系统为例进行实战演练。控制台应用具有简单直接、开发效率高、资源消耗低等特点,适合后台服务和快速验证想法。常见的控制台应用包括文本处理工具、数据分析程序、简单游戏和系统工具等。学生信息管理系统的需求包括添加、删除、修改、查询学生信息,以及数据持久化和加载。系统设计包括Student、StudentManager、FileHandler和Main四个类,分别负责学生信息的存储、管理、文件操作和程序入口。通过这一项目,读者可以将Java基础知识、面向对象原创 2025-05-09 08:49:34 · 973 阅读 · 0 评论 -
零基础学Java——第十章:Java Web开发入门(下)- 前后端分离开发
本章介绍了Java Web开发中的前后端分离模式,通过将前端(用户界面)和后端(业务逻辑)分开开发,提升开发效率和用户体验。前后端通过API(如RESTful API)进行通信,前端使用React、Vue.js等框架进行客户端渲染,后端则通过Spring Boot等框架处理业务逻辑和数据库交互。前后端分离的优势包括关注点分离、技术栈灵活、并行开发等,但也面临复杂性增加、安全性、SEO等挑战。实践部分展示了如何使用React和Vue.js创建前端应用,并通过Axios进行API交互,处理异步操作。这种架构模式原创 2025-05-09 08:45:32 · 940 阅读 · 0 评论 -
零基础学Java——第十章:Java Web开发入门(下)- RESTful API设计
在本章中,我们学习了RESTful API的概念、设计原则和最佳实践。RESTful API是现代Web应用开发的重要组成部分,它提供了一种简单、标准化的方式来构建Web服务。通过遵循REST架构风格,我们可以创建易于理解、可扩展且高效的API。在Java生态系统中,SpringBoot提供了强大的工具和库来简化RESTful API的开发。在下一部分,我们将学习前后端分离开发,这是现代Web应用开发的另一个重要趋势。原创 2025-05-08 08:42:17 · 1024 阅读 · 0 评论 -
零基础学Java——第十章:Java Web开发入门(中)- Spring框架和SpringBoot入门
Spring框架是一个开源的Java平台,为开发Java企业级应用提供了全面的基础设施支持。Spring框架的核心特性是依赖注入(DI)和面向切面编程(AOP)。想象一下,如果你要组装一台电脑,你需要自己找到各种配件(CPU、内存、硬盘等),并将它们正确连接起来。而Spring框架就像一个电脑装配专家,你只需要告诉它你需要什么配件,它会自动帮你找到合适的配件并组装好,让你专注于使用电脑而不是组装电脑。Spring MVC是Spring框架的一个模块,专门用于开发Web应用。原创 2025-05-08 08:38:34 · 996 阅读 · 0 评论 -
零基础学Java——第十章:Java Web开发入门(上)
Web应用是一种可以通过Web浏览器访问的应用程序。与传统的桌面应用不同,Web应用不需要安装在用户的计算机上,用户只需要一个浏览器就可以使用它。想象一下,你使用的网上购物平台(如淘宝、京东)、社交媒体(如微博、微信网页版)、在线银行等,这些都是Web应用的例子。Servlet是Java Web开发的核心技术,它是运行在Web服务器上的Java程序,用于处理客户端的请求并生成响应。原创 2025-05-07 08:23:23 · 809 阅读 · 0 评论 -
零基础学Java——第九章:数据库编程(三)
Hibernate是一个功能强大的ORM框架,它通过对象关系映射技术,使开发者能够使用面向对象的方式操作数据库,但学习曲线较陡峭。MyBatis是一个灵活的持久层框架,它允许开发者精确控制SQL语句,适合于复杂查询和对性能要求较高的场景。Spring Data JPA是一个简化JPA开发的框架,它通过约定大于配置的方式,大大减少了数据访问层的代码量,提高了开发效率。在实际项目中,应根据项目需求和团队情况选择合适的ORM框架。有时候,甚至可以在同一个项目中混合使用多种框架,以发挥各自的优势。原创 2025-05-07 08:11:04 · 1059 阅读 · 0 评论 -
零基础学Java——第九章:数据库编程(下)
数据库连接池是一种用于管理数据库连接的技术,它在应用程序启动时创建一定数量的数据库连接,并将这些连接保存在池中,当应用程序需要访问数据库时,可以从池中获取一个连接,使用完毕后再将连接归还给池。生活中的例子:想象一下共享单车系统。如果每次需要骑车,都要去自行车厂商那里购买一辆新车(创建新连接),用完后就丢弃(关闭连接),这显然非常浪费资源。共享单车系统则是预先在各个地点放置一定数量的自行车(连接池),人们需要用车时直接取用(获取连接),用完后归还到停车点(归还连接),供其他人继续使用。原创 2025-05-06 08:58:42 · 1063 阅读 · 0 评论 -
零基础学Java——第九章:数据库编程(上)
数据库是按照数据结构来组织、存储和管理数据的仓库。简单来说,数据库就像是一个电子化的文件柜,我们可以在其中存放大量的数据,并且能够方便地进行添加、查询、更新和删除等操作。图书馆的图书管理系统:存储书籍信息、借阅记录和读者信息超市的库存管理系统:记录商品信息、库存数量和销售记录银行的账户管理系统:保存客户信息、账户余额和交易历史SQL(Structured Query Language,结构化查询语言)是用于管理关系型数据库的标准语言。原创 2025-05-06 08:42:44 · 988 阅读 · 0 评论 -
零基础学Java——第八章:Java网络编程(下)
在本章的第二部分中,我们学习了Java网络编程的更多高级内容,包括HTTP客户端、网络爬虫入门和邮件发送。这些知识使我们能够开发更复杂、更实用的网络应用程序。通过HTTP客户端,我们可以与Web服务器进行交互,获取和发送数据;通过网络爬虫,我们可以自动获取和分析网页内容;通过JavaMail,我们可以在应用程序中实现邮件发送功能。这些技术在实际应用中非常有用,例如:开发Web API客户端、数据采集工具、自动化报告系统等。原创 2025-04-30 08:15:34 · 1009 阅读 · 0 评论 -
零基础学Java——第八章:Java网络编程(上)
在本章的第一部分中,我们学习了Java网络编程的基础知识,包括网络通信的基本概念、Java网络编程API、Socket编程(TCP和UDP)以及URL处理。这些知识为我们开发网络应用程序奠定了基础。在下一部分中,我们将继续学习更高级的网络编程内容,包括HTTP客户端、网络爬虫入门和邮件发送等。原创 2025-04-30 08:12:55 · 957 阅读 · 0 评论 -
零基础学Java——第七章:多线程与并发编程(下)
本章补充内容介绍了Java并发编程中的重要组件:线程池、并发集合、原子类和并发工具类。这些工具和类库为开发高效、安全的多线程应用提供了强大支持。- **线程池**:通过复用线程减少创建和销毁线程的开销,提高系统性能- **并发集合**:提供线程安全的集合类,避免在多线程环境下使用同步代码块- **原子类**:提供原子操作,无需使用锁就能保证线程安全- **并发工具类**:提供多种线程协作工具,简化复杂的多线程交互掌握这些工具和技术,将使你能够开发出高效、稳定的并发应用程序。原创 2025-04-29 10:13:52 · 1303 阅读 · 0 评论 -
零基础学Java——第七章:多线程与并发编程(上)
程间通信是多线程编程中的核心问题,Java提供了多种机制来解决这一问题:- **wait/notify**:基础的线程通信机制,适用于简单场景- **Condition**:更灵活的通信机制,支持选择性通知- **BlockingQueue**:实现生产者-消费者模式的高级工具- **其他工具类**:CountDownLatch、CyclicBarrier、Exchanger等针对特定场景的工具掌握这些通信机制,可以帮助我们编写更高效、更可靠的多线程程序。在实际应用中,应根据具体需求选择合适的原创 2025-04-29 10:12:59 · 893 阅读 · 0 评论 -
零基础学Java——第六章:Java标准库(下)
2. **国际化与本地化**:我们学习了如何使用Locale和ResourceBundle来创建支持多语言的应用程序,以及如何根据不同地区格式化数字、货币和日期。3. **日志处理**:我们探索了Java内置的日志系统(java.util.logging),包括日志级别、处理器和格式化器,以及如何通过配置文件来自定义日志行为。4. **定时任务**:我们学习了如何使用Timer、TimerTask和ScheduledExecutorService来安排和执行定时任务,包括一次性任务和周期性任务。原创 2025-04-28 08:32:05 · 923 阅读 · 0 评论 -
零基础学JAVA——第六章:Java标准库(上)
1. **日期时间API**:从传统的Date和Calendar类到Java 8引入的新日期时间API,我们了解了如何在Java中处理日期和时间,包括创建、格式化、计算和比较日期时间。2. **正则表达式**:我们学习了正则表达式的基础语法和在Java中的应用,包括模式匹配、字符串分割和替换等操作。3. **数学计算**:通过Math类,我们掌握了各种数学运算方法,包括基本运算、三角函数、对数和指数计算等。原创 2025-04-28 08:30:38 · 946 阅读 · 0 评论 -
零基础学Java——第五章:文件与IO操作(下)
NIO(新IO):了解了Buffer、Channel和Selector的概念和使用,以及Path和Files类提供的便捷文件操作方式。文件压缩与解压缩:学习了如何使用ZIP和GZIP格式压缩和解压缩文件,包括单文件、多文件和目录的处理。Properties文件操作:掌握了如何创建、读取和修改Properties文件,以及它在应用程序配置和国际化中的应用。原创 2025-04-25 09:17:23 · 760 阅读 · 0 评论 -
零基础学Java——第五章:文件与IO操作(上)
在前面的章节中,我们学习了Java的基础知识、核心语法、面向对象编程和高级特性。现在,我们将探索Java的文件与IO(输入/输出)操作,这是任何编程语言中非常重要的一部分。本章将通过生活中的例子,帮助你理解这些看似复杂的IO概念。原创 2025-04-25 09:12:01 · 847 阅读 · 0 评论 -
零基础学Java——第四章:Java高级特性(5-8)
2. **Stream API**:提供了强大的数据处理能力,可以进行过滤、映射、排序等操作,并支持并行处理以提高性能。3. **注解**:为代码提供元数据,可以被编译器、运行时环境或其他工具读取和处理,广泛应用于框架开发中。4. **反射机制**:允许程序在运行时检查和操作类、接口、字段和方法,是许多框架和库的基础。5. **枚举高级应用**:不仅可以定义常量集合,还可以实现单例模式、状态机、策略模式和工原创 2025-04-25 08:36:38 · 704 阅读 · 0 评论 -
零基础学Java——第四章:Java高级特性(1-4)
有时候,Java提供的标准异常可能无法准确描述你的应用程序中的特定错误情况。这时,你可以创建自定义异常类。Java集合框架是一组用于存储和操作对象组的类和接口。它提供了多种数据结构实现,如列表、集合、映射等,可以满足不同的需求。Collection:集合的根接口,定义了所有集合的基本操作List:有序集合,允许重复元素,可以通过索引访问元素Set:不允许重复元素的集合Queue:队列,通常以FIFO(先进先出)方式操作元素Map:键值对映射,不属于Collection接口的子接口。原创 2025-04-25 08:29:15 · 800 阅读 · 0 评论 -
零基础学Java——第三章:面向对象编程
在本章中,我们学习了面向对象编程的核心概念:类与对象、封装、继承、多态、抽象类、接口和内部类。这些概念是Java编程的基础,掌握它们将帮助你设计出更加灵活、可维护的程序。通过生活中的例子,我们看到了面向对象编程如何模拟现实世界的对象和关系。在接下来的章节中,我们将学习更多Java的高级特性,如异常处理、泛型编程和集合框架等。原创 2025-04-24 09:03:19 · 1536 阅读 · 0 评论 -
零基础学Java——第二章:Java核心语法
在第一章中,我们学习了Java的基础知识,包括如何搭建开发环境、编写第一个Java程序以及基本语法规则。现在,我们将深入学习Java的核心语法,这些语法是构建复杂程序的基础。本章将通过生活中的例子,帮助你轻松理解这些概念。原创 2025-04-24 08:36:06 · 915 阅读 · 0 评论 -
零基础学Java——第一章:Java基础入门
Java的特点- **简单性**:语法类似C++但去除了指针等复杂特性,更容易学习和使用- **面向对象**:完全面向对象的编程语言,一切皆对象(除基本数据类型外)- **平台无关性**:"一次编写,到处运行"(Write Once, Run Anywhere) - Java代码编译成字节码,可在任何有Java虚拟机(JVM)的平台上运行 - 不需要针对不同操作系统重写代码- **安全性**:内置多层安全机制,如沙箱执行环境,防止恶意代码破坏系统- **多线程**:内置多线程支持,简化并发原创 2025-04-23 09:18:49 · 571 阅读 · 0 评论 -
零基础学Java——大纲合集
专为零基础学习者设计,通过循序渐进的方式带你掌握Java编程语言,从基础概念到实际应用。原创 2025-04-23 09:12:26 · 814 阅读 · 0 评论 -
常见设计模式的原理、应用场景总结——结构型
结构型设计模式常见设计模式的原理、应用场景总结——创建型结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。1.代理模式代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问, 而非加强功能,这是它跟装饰器模式最大的不同。一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的。 在这原创 2021-10-19 09:12:00 · 883 阅读 · 0 评论 -
常见设计模式的原理、应用场景总结——创建型
经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。今天,我们先看下创建型设计模式的原理、实现、设计意图和应用场景。创建型设计模式创建型设计模式包括:单例模式、工厂模式、建造者模式、原型模式。它主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。1. 单例模式单例模式用来创建全局唯一的对象。一个类只允许创建一个对象(或者叫实例),那这个类就是一个单例类,这种设计模式就叫作单例模式。单例有几种经典的实现方式,它们分别 是:饿汉式、懒汉式、双重检测、静态内部类、枚举。.原创 2021-10-15 09:13:54 · 1346 阅读 · 0 评论 -
ORM框架Mybatis核心知识及与springboot整合缓存失效
1. Mybatis优缺点MyBatis 的优点:MyBatis 是原生SQL,不像 Hibernate 的 HQL 需要额外的学习成本;MyBatis 的 SQL 语句与代码进行了解耦合,这与 Hibernate 是一致的;MyBatis 功能简单,学习成本比较低,使用的门槛也非常低,可以快速上手;MyBatis SQL调优比较灵活,而 Hibernate,SQL 语句是自动生成的,当有复杂语句需要进行优化时就比较难处理。MyBatis 的缺点:相比 Hibernate 这样的全自动 OR.原创 2020-06-29 09:14:04 · 209 阅读 · 0 评论 -
Netty核心知识点及通过Netty实现的RPC框架对比
1. Netty框架如上图左侧所示,首先了解 Netty 的特点。Netty 是一个高性能的异步事件驱动的 NIO 框架,它对消息的处理采用串行无锁化设计,提供了对 TCP、UDP 和文件传输的支持。Netty 内置了多种 encoder 和 decoder 实现来解决 TCP 粘包问题。Netty 处理消息时使用了池化的缓冲池 ByteBufs,提高性能。结合内存零 copy 机制,减少了对象的创建,降低了 GC 的压力。1.1 主要概念需要掌握 Netty 中的一些对象概念。将 Sock原创 2020-06-29 09:12:58 · 661 阅读 · 0 评论 -
JUC常用工具类核心分享
JUC 是 Java 提供的用于多线程处理的工具类库,来看其中的常用工具类的作用,如下图所示。如上图所示,第一行的类都是基本数据类型的原子类,包括 AtomicBoolean、AtomicLong、AtomicInteger 类。AtomicLong 通过 unsafe 类实现,基于CAS。unsafe 类是底层工具类,JUC 中很多类的底层都使用到了 unsafe 包中的功能。unsafe 类提供了类似 C 的指针操作,提供 CAS 等功能。unsafe 类中的所有方法都是 native 修饰的。原创 2020-06-28 10:17:23 · 503 阅读 · 0 评论 -
JVM内存模型及CMS、G1和ZGC垃圾回收器详解
1. JVM 内存模型JVM 内存模型主要指运行时的数据区,包括 5 个部分,如下图所示。栈也叫方法栈,是线程私有的,线程在执行每个方法时都会同时创建一个栈帧,用来存储局部变量表、操作栈、动态链接、方法出口等信息。调用方法时执行入栈,方法返回时执行出栈。本地方法栈与栈类似,也是用来保存线程执行方法时的信息,不同的是,执行 Java 方法使用栈,而执行 native 方法使用本地方法栈。程序计数器保存着当前线程所执行的字节码位置,每个线程工作时都有一个独立的计数器。程序计数器为执行 Ja原创 2020-06-28 09:46:21 · 2856 阅读 · 2 评论 -
很好的Java诊开源工具——Arthas
1.Arthas简介Arthas 是Alibaba开源的Java诊断工具。源码地址:https://github.com/alibaba/arthas官方文档:https://arthas.gitee.io/Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。Arthas可以帮助你解...原创 2020-04-06 11:16:37 · 242 阅读 · 0 评论 -
Java SPI源码及示例如此简单!
Java SPI 概述SPI(Service Provider Interface)即服务提供接口,是JDK内置的一种服务提供发现机制。简单来说,它就是一种动态替换发现机制。例如:有个接口想在运行时才发现具体的实现类,那么你只需要在程序运行前添加一个实现即可,并把新加的实现描述给JDK即可。此外,在程序的运行过程中,也可以随时对该描述进行修改,完成具体实现的替换。Java提供了很多服务提供者接...原创 2020-04-03 11:45:39 · 356 阅读 · 0 评论 -
Spring Cloud——负载均衡Ribbon和远程调用Feign原理和示例
前篇:Spring Cloud——Eureka注册中心原理及示例官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.1.RELEASE/reference/html/#spring-cloud-ribbon在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,本节研究微服务远程调...原创 2020-02-25 10:39:48 · 1186 阅读 · 0 评论 -
Spring Boot定义Starter超简单
相信在了解SpringBoot时后已经知道了starter是SpringBoot的核心组成部分,SpringBoot为我们提供了尽可能完善的封装,提供了一系列的自动化配置的starter插件,我们在使用只需要在pom.xml配置文件内添加依赖就可以了,很好的降低了使用框架时的复杂度。那我们如何实现一个自己的starter呢?1. 知识点回顾@ConfigurationProperties,该...原创 2020-02-19 12:07:59 · 254 阅读 · 0 评论 -
常见日志框架介绍及Spring日志框架优先级源码解析
在Java项目开发中,日志是必不可少的功能,日志对于快速定位问题,检查日常项目运行状态等有非常重要的作用,但是目前Java日志存在多种框架,如:Slf4j、JUL、JCL、Log4j、Log4j2、Logback等。1. 常用日志框架框架简介Slf4j日志门面组件JCLCommons Logging,简称jcl,Apache基金会项目,日志门面组件Log4j...原创 2020-02-18 19:52:28 · 444 阅读 · 0 评论