![](https://img-blog.csdnimg.cn/52f6c67275384f9088064dbafbdc58e7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java实战
文章平均质量分 90
该专栏提供了丰富多样的Java实战案例和教程,涵盖了Java核心概念、面向对象编程、多线程、数据库操作、框架应用等方面的内容。通过深入浅出的讲解和实际示例,读者可以学习到如何使用Java语言解决实际问题,并提升自己的编程技能。无论是初学者还是有一定经验的开发者,都可以在Java实战博客专栏中受益匪浅
禅与计算机程序设计艺术
著有《AI大模型应用入门实战与进阶》(写作中)《ClickHouse入门实战与进阶》《Kotlin 极简教程》《Spring Boot开发实战》《Kotlin从入门到进阶实战》等技术书籍。资深程序员、大数据与后端技术专家、架构师,拥有超过10年的技术研发和管理经验。现就职于字节跳动,曾就职于阿里巴巴,主要从事企业智能数字化经营管理、电商智能数字化运营等系统架构设计和研发工作。在大数据和企业级系统架构领域有非常深厚的积累,擅长大数据系统架构和分布式系统架构设计开发。热衷于新技术的学习和技术分享。
展开
-
【Java开发实战经验大全】Spring Boot 项目从2.7.x的springboot升级到3.0.x的时候,遇到一个问题“java: 程序包javax.servlet.http不存在”
2. 修改项目内所有代码的导入依赖修改前:修改后:Spring Boot 升级 3.x 报错: java.lang.IllegalArgumentException: Invalid value type for attribute ‘factoryBeanObjectType’: java.lang.String依然是框架之间的版本兼容性问题。Spring boot 3.x 框架太新了,跟现有的 Spring 生态的框架很多都不兼容。算了,还是退回 Spring Boot 2.x 吧。老老实实原创 2024-04-11 13:00:49 · 54 阅读 · 0 评论 -
Java函数式编程:Lambda与StreamAPI
函数式编程(Functional Programming,简称FP)是一种编程范式,它将计算过程视为数学函数的求值,强调避免使用可变状态和数据。函数式编程的核心思想是使用函数来抽象计算过程,从而使代码更加简洁、易读和易于维护。随着软件系统的不断复杂化,函数式编程在Java中的应用将越来越广泛。Java将继续引入更多的函数式编程特性,例如模式匹配、数据类等。同时,Java社区也将继续探索如何将函数式编程与其他编程范式(例如面向对象编程)更好地结合起来,以满足不同场景的需求。原创 2024-02-20 11:30:57 · 106 阅读 · 1 评论 -
SpringBoot入门实战:SpringBoot整合Spring Batch
批处理是一种处理大量数据的方法,它通常涉及到读取、处理和写入大量数据。批处理通常用于数据迁移、数据清理、数据分析等应用。Spring Batch 是一个专为批处理应用程序设计的 Spring 项目,它提供了一种简化的方法来创建高性能的批处理应用程序。依赖注入事件驱动编程数据访问抽象跨应用程序事务管理集成和配置Spring Batch 提供了一种简化的方法来创建高性能的批处理应用程序,它使用 Spring 框架的核心功能来简化批处理应用程序的开发。原创 2023-12-21 01:22:13 · 95 阅读 · 0 评论 -
SpringBoot入门实战:SpringBoot与微服务
在本文中,我们详细介绍了 Spring Boot 的核心功能和原理,以及如何使用 Spring Boot 开。原创 2023-12-21 01:23:46 · 83 阅读 · 0 评论 -
SpringBoot入门实战:SpringBoot整合Thymeleaf
1.背景介绍Thymeleaf是一个Java模板引擎,它可以用来生成静态或动态HTML、XML、文本文件,并且可以集成到Web应用的原创 2023-11-11 10:20:32 · 147 阅读 · 0 评论 -
SpringBoot入门实战:SpringBoot服务层设计
1.背景介绍Spring Framework是一个非常流行且功能强大的Java开发框架。它可以帮助开发者快速、简便地开发出功能完备、可伸缩的应用。而其中的一个重要的模块就是Spring Boot,它提供了开箱即用的starter组件(也就是一些依赖包),使得开发人员可以更加关注于业务逻辑实现。这些 starter 可以帮我们将大量重复性工作自动化处理原创 2023-11-11 10:22:09 · 95 阅读 · 0 评论 -
Java必知必会系列:分布式系统与RPC
分布式系统是现代计算机系统中一个基本特征,其根本目的是为了将单机的应用拆分成不同的模块,分布在多台服务器上,共同完成复杂的任务。因此,分布式系统所涉及的计算机网络、通信协议、分布式并行编程等方面都要比单机系统复杂得多。而实现分布式系统的关键技术之一就是分布式远程过程调用(Remote Procedure Call,RPC)。在分布式系统中,一个服务通常会部署到多台服务器上,客户端通过远程调用的方式调用这些服务,各个服务器之间需要相互协作才能提供完整的服务功能。原创 2023-11-04 03:11:03 · 203 阅读 · 0 评论 -
SpringBoot编程基础教程:Spring Boot集成Elasticsearch
Elasticsearch是一个开源的搜索和数据分析引擎,基于Apache Lucene构建,主要用于全文检索、日志分析等领域。它的优点之一是支持分布式实时文件存储,在大数据量下提升了查询性能。由于其强大的查询能力,近年来越来越多的人开始关注并尝试使用Elasticsearch作为业务数据的查询、分析和存储平台。本文将通过实例学习如何用Spring Boot框架集成Elasticsearch,从而更好地利用其强大的搜索功能和高级特性。原创 2023-11-03 01:09:53 · 324 阅读 · 2 评论 -
Java必知必会系列:Web框架与Spring MVC
在企业级应用开发中,采用前后端分离模式和RESTful API风格的Web服务架构逐渐成为主流。基于这些技术,前端可以采用JavaScript、HTML、CSS等多种技术进行开发,而后端则可以通过各种Web框架构建出高性能、可扩展性强的应用系统。在本章节中,我将介绍Java最具代表性的Web框架Spring MVC,并结合实际案例,展示如何利用Spring MVC开发具有一定复杂度的Web应用程序。原创 2023-10-31 01:26:18 · 137 阅读 · 0 评论 -
Java编程基础教程:Java虚拟机原理
Java是一种广泛使用的编程语言,特别适合开发Web应用和企业级应用程序。它的主要优势在于跨平台性,Java源代码在编译后会生成一个称为“字节码”的目标代码,可以在任何支持Java虚拟机的操作系统中运行。因此,编写一次,到处运行。然而,这种跨平台性也带来了一些问题。例如,由于各种不同版本的JVM实现方式可能不同,因此在实际运行时可能会遇到一些兼容性问题。此外,虽然Java在功能上可以满足大多数需求,但在某些方面仍然有一些局限性,例如内存管理、性能等。这些问题促使了Java虚拟机的出现。原创 2023-10-30 01:57:59 · 157 阅读 · 0 评论 -
Java必知必会系列:RESTful API与Web服务
Web服务,顾名思义,是指通过互联网进行的服务,它是一种新的应用层协议,让不同的应用程序之间可以互相通信和交换数据。Web服务的历史可以追溯到1990年代中期,当时万维网(World Wide Web)刚刚出现,互联网上的文档、图片等资源都是静态的,不能动态地响应用户的操作。为了实现动态的内容展示,人们提出了CGI(Common Gateway Interface)标准,这是一种简单的服务器端脚本语言,可以让网页程序动态获取来自浏览器的请求,并将结果返回给浏览器。原创 2023-10-29 02:13:42 · 131 阅读 · 0 评论 -
SpringBoot编程基础教程:WebSocket实时通信
Spring框架是一个成熟的开源Java EE开发框架,提供包括IoC/DI、AOP、Web等多个模块。其中,Web模块又提供了基于Servlet API的Servlet规范及基于Reactive WebAssembly(简称RSocket)的WebSocket API实现。通过Spring Boot可以轻松地创建独立运行的、生产级的基于Spring应用的服务端程序,从而降低了应用开发难度并提升了开发效率。原创 2023-10-27 00:56:06 · 160 阅读 · 0 评论 -
Java必知必会系列:并发编程与线程池
并发(Concurrency)是指两个或多个事件在同一时间发生,而互不影响地运行。在编程中,并发编程是一个难题,因为它要求开发者把自己的代码划分成可以同时执行的独立任务,从而解决复杂性、提升性能和扩展性等需求。Java平台通过提供多线程支持和并发包(java.util.concurrent)提供了一套完整的并发API,允许开发者编写高效、可靠和安全的多线程程序。线程池是一个非常重要的并发模式,它提供了一种简单有效的方法用来管理线程的生命周期,避免资源的过度消耗。因此,了解线程池对于理解并发编程至关重要。原创 2023-10-26 02:02:22 · 69 阅读 · 0 评论 -
Java必知必会系列:并发编程与线程安全
并发编程(concurrency programming)是指两个或多个线程可以同时执行的代码。多线程编程的主要目的是提高程序的响应性、利用率和吞吐量。但在正确地使用多线程编程时,需要注意线程安全的问题,否则将导致不可预测的运行结果或者错误。本系列文章将从线程安全的角度出发,全面剖析Java中线程安全的各种机制和解决方案。原创 2023-10-26 02:08:49 · 118 阅读 · 0 评论 -
SpringBoot编程基础教程:Spring Boot Actuator
作者:禅与计算机程序设计艺术 1.背景介绍在实际开发中,我们通常需要监控应用系统的状态、性能指标等信息,比如应用运行时的JVM信息、线程池情况、数据库连接池状态、缓存命中率、请求延时等。这些数据可以帮助我们做到系统可靠性的维护和服务质量的提高。传统的监控手段主要基于硬件设备或软件工具实现,而基于云原创 2023-10-25 01:36:43 · 99 阅读 · 0 评论 -
Java必知必会系列:容器编排与Kubernetes
作者:禅与计算机程序设计艺术 1.背景介绍为什么需要容器编排?在现代IT环境中,应用越来越多样化,复杂度不断提升。传统的部署方式存在着很多问题,比如部署复杂、效率低下、资源利用率低、无法应对业务快速变化等。因此,为了解决这一问题,容器技术应运而生原创 2023-10-24 02:24:26 · 69 阅读 · 0 评论 -
Java必知必会系列:性能优化与调试技巧
作者:禅与计算机程序设计艺术 1.背景介绍对于开发人员来说,开发质量、运行效率、用户体验等方面的综合评价标准一直都是衡量软件质量不可或缺的一环。在项目开发的初期阶段,优化甚至可以作为项目失败的主要原因,因此优化技术始终是一个重点考虑的课题。今天,“Java必知必会系列”的第一篇文章就将介绍“性能优原创 2023-10-21 14:34:19 · 235 阅读 · 1 评论 -
Java编程基础教程:正则表达式应用
作者:禅与计算机程序设计艺术 1.背景介绍正则表达式(Regular Expression)是一个用于匹配字符串的模式。它可以用来验证、搜索、替换字符串中的文本。在开发中经常会用到正则表达式,特别是在对文本进行处理时,需要验证、查找或修改特定模式的字符串时。因此,掌握正则表达式十分重要。正则表达式原创 2023-10-24 02:22:51 · 62 阅读 · 0 评论 -
Java编程基础教程:Java国际化和本地化
作者:禅与计算机程序设计艺术 1.背景介绍在软件开发过程中,为了使软件适应不同的地区的用户需求,需要对软件进行国际化和本地化处理。国际化和本地化分别是指将软件的界面、文字和功能翻译成目标语言,并且让它能够正确显示和运行。国际化和本地化是面向多种语言(如英文、日文、韩文等)和区域(如亚洲、欧洲、北美原创 2023-10-24 02:10:03 · 71 阅读 · 0 评论 -
Java必知必会系列:大数据处理与Hadoop
作者:禅与计算机程序设计艺术 1.背景介绍Hadoop是一个开源的分布式计算框架。它提供高可靠性、高扩展性和容错机制,能够对海量的数据进行并行运算。在大数据时代,Hadoop成为了大数据处理的主要技术之一。本系列将为读者介绍关于Hadoop的一切。Apache Hadoop软件是由原创 2023-10-21 14:32:12 · 205 阅读 · 0 评论 -
Java必知必会系列:集合框架与数据结构
作者:禅与计算机程序设计艺术 1.背景介绍数据结构(Data Structure)是计算机科学领域中的基础课。作为数据存储、组织和管理的工具箱,它涵盖了数组、链表、栈、队列、哈希表、树、图等多种数据结构和算法。然而,掌握好数据结构并不仅仅是“能用”,更重要的是要“能精”。只有掌握了数据的各种特性,原创 2023-10-24 02:01:00 · 44 阅读 · 0 评论 -
Java编程基础教程:网络编程入门
作者:禅与计算机程序设计艺术 1.背景介绍1.1什么是计算机网络?计算机网络(英语:Computer Networking)是指将地理位置不同的、功能独立的多台计算机按照通信线路相互连接,在网络操作系统、数据库管理系统及其他各种计算机软硬件资源原创 2023-10-22 11:47:33 · 56 阅读 · 0 评论 -
Java必知必会系列:分布式缓存与Redis
作者:禅与计算机程序设计艺术 1.背景介绍Redis 是什么?Redis是一个开源的高性能键值对(key-value)数据库。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis支持数据的持久化,可将内存中的数据保存在磁盘中,原创 2023-10-24 02:12:43 · 51 阅读 · 0 评论 -
Java编程基础教程:Java并发编程
作者:禅与计算机程序设计艺术 1.背景介绍什么是并发编程?并发编程(concurrency programming)是指允许两个或多个任务同时执行的编程方式。并发编程的目的就是为了提高资源利用率、节省运行时间,进而改善程序的响应速度和效率。在过去几原创 2023-10-21 14:26:55 · 203 阅读 · 1 评论 -
Java编程基础教程:多线程编程入门
多线程编程是java语言中的重要组成部分。本教程是基于java7的语法,并涉及到多种多线程编程方法、同步机制、线程间通信、死锁、线程优先级、线程池等知识点进行讲解。线程的创建与启动;线程之间的协作性;线程的同步机制与锁机制。在计算机科学中,线程(Thread)是操作系统对一个正在运行的程序的一种轻量级进程。它是进程的一个实体,负责程序执行流程中的不同活动。换句话说,线程是CPU分配资源和任务的最小单元。每个线程都有一个程序计数器、一个执行栈和一些用于描述线程上下文的数据结构。原创 2023-10-22 11:43:49 · 63 阅读 · 0 评论 -
Java必知必会系列:GUI开发与JavaFX
作者:禅与计算机程序设计艺术 1.背景介绍随着互联网应用、移动应用、游戏等领域的蓬勃发展,越来越多的人们希望能够更加便捷地进行信息交流、沟通、学习。因此,人机界面(Graphical User Interface,简称GUI)作为人类与计算机之间信息交换的桥梁,已经成为计算机界的一项重要技术。而目原创 2023-10-23 00:45:33 · 160 阅读 · 0 评论 -
Java必知必会系列:搜索引擎与Elasticsearch
作者:禅与计算机程序设计艺术 1.背景介绍搜索引擎简介搜索引擎是一个系统,它通过网页、文档、图片等各种媒体资料的海量信息进行检索、分析、整理、归纳和组织。通过搜索引擎可以快速定位到用户想要的信息,帮助人们更快地发现、获取、分享和传播知识信息。而搜索引擎背原创 2023-10-21 14:27:26 · 215 阅读 · 0 评论 -
Java编程基础教程:Java单元测试
作者:禅与计算机程序设计艺术 1.背景介绍在软件开发中,单元测试(Unit Test)是最基本也最重要的环节。单元测试可以有效地检查一个模块或者方法是否正确,并且帮助开发人员找出模块中的错误和漏洞,提高软件质量。本文将以java语言作为示例介绍如何进行单元测试。原创 2023-10-23 00:45:01 · 246 阅读 · 0 评论 -
Java编程基础教程:Java设计模式
作者:禅与计算机程序设计艺术 1.背景介绍在软件开发领域,设计模式作为一种最佳实践经过几十年不断演进,已经成为软件工程师必备的重要工具和技能。从面向过程到面向对象,再到现代化的面向服务,每种模式都对应着不同的编程场景和解决方案。作为一个全栈工程师,掌握各种设计模式对于我们的工作效率、质量保证和进一原创 2023-10-21 14:25:51 · 187 阅读 · 1 评论 -
Java必知必会系列:网络编程与Socket通信
作者:禅与计算机程序设计艺术 1.背景介绍“网络”这个概念一直深入人心,影响着社会、经济、科技等领域,而“网络编程”也是最基础的计算机技术之一。所以,了解计算机网络及其工作机制对任何技术人员都十分重要。在实际应用中,需要用到网络编程技术开发各种基于网络的应用服务。本专栏将从以下两个方面为读者提供有原创 2023-10-23 00:46:05 · 102 阅读 · 0 评论 -
Java编程基础教程:初识Java语言
作者:禅与计算机程序设计艺术 1.背景介绍为什么要学习Java?随着互联网的快速发展,移动互联网、电子商务、云计算、人工智能、大数据等新兴技术层出不穷,世界各国对技术的需求日益增加。而Java作为最热门的编程语言,在全球范围内广泛应用,成为非常原创 2023-10-22 11:57:40 · 58 阅读 · 0 评论 -
Java必知必会系列:并发编程与线程安全
作者:禅与计算机程序设计艺术 1.背景介绍对于大多数开发人员来说,java是最熟悉的语言之一。在java中,实现并发编程的主要方式就是通过多线程的方式。随着多核CPU的出现,java虚拟机也支持了多线程并行处理。但是,正确地管理多线程,尤其是在高并发情况下,对提升应用的性能和稳定性有着至关重要的作原创 2023-10-24 01:45:35 · 49 阅读 · 0 评论 -
SpringBoot编程基础教程:Spring MVC框架
作者:禅与计算机程序设计艺术 1.背景介绍随着互联网的发展和业务的不断迭代,网站应用开发越来越复杂。如今,基于Java的全栈开发技术已经成为主流,而Spring Boot框架也成为一个热门选择。本系列教程将从零开始教会您如何利用Spring Boot框架开发Spring MVC应用,包括基础配置、原创 2023-10-08 00:40:37 · 661 阅读 · 3 评论 -
SpringBoot编程基础教程:Spring MVC框架
Apache Software Foundation(ASF)于2017年9月推出了开源框架SpringBoot。SpringBoot是一个基于Spring Boot、Spring Framework和Project Reactor等开放源代码软件(OSS)组件的全新框架,其目的是为了简化企业级Java应用开发的初始设定流程,消除重复工作,加快交付节奏,让开发人员关注业务逻辑的实现。从这一点上来说,SpringBoot就是Spring的一个增强版本。原创 2023-10-23 00:26:21 · 73 阅读 · 0 评论 -
电商系统的详细设计,包括核心模型,系统分层,API 设计,微服务架构等,并给出代码实例
微服务可以在不同的服务器上运行,使得各个服务可以根据自身的特性和需求选择最合适的资源,例如CPU密集型的服务可以部署在CPU性能较高的服务器上,I/O密集型的服务可以部署在带宽和硬盘性能较高的服务器上。实际上,电商系统的设计相当复杂,涉及到众多的模块和子系统,比如:搜索,推荐,评论,支付,物流,营销活动等等。微服务的治理是微服务架构的重要部分,主要包括服务的注册与发现、负载均衡、熔断降级、链路追踪等,同时也需要实现集中式日志系统和监控系统,以便对各服务的运行状态进行管理和监控。请稍等,我正在准备中。原创 2023-10-24 01:31:24 · 48 阅读 · 0 评论 -
架构师必知必会系列:分布式系统与微服务架构
随着互联网技术的不断进步、物联网(IoT)技术的出现、云计算、移动互联网(Mobile Internet)、区块链技术的飞速发展以及人工智能、大数据等新兴技术的涌现,越来越多的企业和个人对架构设计提出了更高的要求。传统单体架构模式正在被淘汰,转而采用微服务架构模式进行应用开发。微服务架构模式将应用程序拆分成一个个独立的服务模块,每个服务模块独立运行在自己的进程或容器中,彼此之间通过轻量级通信协议如HTTP进行通信。因此,微服务架构模式可以有效地解决单体架构模式面临的可扩展性、易维护性、伸缩性、可用性问题。原创 2023-10-23 01:04:21 · 109 阅读 · 0 评论 -
SpringBoot编程基础教程:Spring MVC框架
Spring是一个开源的Java开发框架,它提供了基于Java的轻量级WEB开发的最佳实践。在WEB应用开发中,SpringMVC是其中的一个重要组件。它基于Servlet API构建,帮助开发者快速创建、测试及部署WEB应用。但是,学习SpringMVC并不是一件容易的事情。对于初级到中级开发人员来说,掌握SpringMVC可能比较困难。因此,本文将从以下几个方面进行讲解:1.Spring Boot简介:这是一种快速启动的Java应用程序框架,可以轻松创建独立运行的Spring应用。原创 2023-10-16 01:31:36 · 252 阅读 · 1 评论 -
Java编程基础教程:GUI编程入门
随着互联网、移动互联网、人工智能的蓬勃发展,计算机图形用户界面(GUI)已成为实现多媒体应用和数字化信息处理的重要组成部分。本文将为读者提供一套完整的GUI编程教程,全面讲述GUI编程的基本知识和方法技巧,并通过实际案例展示如何用Java进行GUI开发。文章基于JDK 1.8及以上版本,介绍了Java中最常用的GUI组件及其特性,包括菜单栏、工具栏、窗口、对话框、控件等,以及事件处理机制、布局管理器、图形用户界面设计模式等核心技术。原创 2023-10-16 01:52:27 · 297 阅读 · 1 评论 -
SpringBoot编程基础教程:Spring Boot Actuator
作者:禅与计算机程序设计艺术 1.背景介绍作为一个快速、敏捷的开发框架,Spring Boot 在成为事实上的“王者”之后,其提供的一系列优秀特性也促进了微服务架构的迅速发展。基于 Spring Boot 的微服务应用非常流行,能够很方便地实现服务治理、服务发现、配置管理等功能。但是对于开发者来说原创 2023-10-16 01:13:20 · 247 阅读 · 1 评论 -
编程基础教程:面向对象编程入门
面向对象编程(Object-Oriented Programming,简称OOP)是一种面向数据、面向功能的程序设计方法,是计算机编程的一项主要分支。它将程序的执行流程通过抽象成一组对象的形式进行表示,从而使程序更加易于理解、维护和扩展。同时,OOP也解决了软件开发过程中遇到的诸如重用代码、数据隐藏等难题。所以,了解OOP并掌握一些基本语法和特性对于程序员来说都是必不可少的技能。另一方面,在互联网公司,面向对象编程已经成为主流编程范式,例如Java、C++、Python等语言都支持面向对象编程。原创 2023-10-16 01:11:41 · 232 阅读 · 0 评论