4、IntelliJ IDEA 之 JDK 的相关配置
4.1、打开项目结构
4.2、设置项目SDK
如上图所示,可以根据需要设置项目的 SDK 版本。
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/19679415
来源:https://www.cnblogs.com/Javaer1995/p/19679415
《小丑牌》游戏在Java上进行的模仿
突发奇想想写一个小游戏,看了看按我目前的水平能写出来的,打牌类算是能巩固我目前所学的方向。(注:我们当时是6个人来做,本人负责的是架构与出牌弃牌操作,其他都是同伴写的)
1.先把小丑牌的规则与想要实现的方向按文档写出来,就可以得到一张原型图与需求文案。原型图的链接https://rp.mockplus.cn/rps/t79wjqwSXy/k- ...
Tomcat Request请求处理:Container设计
理解思路
为什么我们说上面的是Container呢?我们看下几个Container之间的关系:
从上图上,我们也可以看出Container顶层也是基于Lifecycle的组件设计的。
在设计Container组件层次组件时,上述4个组件分别做什么的呢?为什么要四种组件呢?
如下是Container接口类的相关注释
* <li><b>Engine</b> - Representation ...
Tomcat 线程池的设计与实现:StandardThreadExecutor
理解思路
我们如下几个方面开始引入线程池的,这里主要从上文Service引入,保持上下文之间的衔接,会很好的构筑你的知识体系。
上文中我们了解到,Executor是包含在Service中的,Service中关于Executor的配置和相关代码如下:
server.xml中service里包含Executor的配置
<Service name="Catalina">
<!-- 1. 属性说明
na ...
Tomcat Service的设计和实现:StandardService
理解思路
第一:类比StandardServer, 抓住StandardService整体类依赖结构来理解
第二:结合server.xml中service配置来理解
见下文具体阐述。
第三:结合Service Config官方配置文档
http://tomcat.apache.org/tomcat-9.0-doc/config/service.html
Service结构设计
我们需要从高一点的维度去理解service的结构设计, ...
被头条爬虫单日狂爬5600万次后,我们的JT808车载监控服务器稳如磐石
作为深耕车载定位监控领域的技术团队,我们日常打交道最多的就是「高并发」——毕竟我们的核心业务是JT/T 808车载定位监控软件系统,每天要处理上千台车辆的定位数据上传、指令下发、轨迹解析,对服务器稳定性的要求近乎苛刻。而就在不久前,我们的官网(https://www.xlhd.info)意外遭遇了一场“免费的极限压力测试”,主 ...
开箱即用!一款企业级 AI 智能助手平台!
大家好,我是 Java陈序员。
之前给大家介绍过一款强大的全能 AI 对话服务助手。
全能 AI 对话管理平台!一款支持多模型切换的全能 AI 对话工具!
今天,再给大家介绍一款企业级的 AI 智能助手平台,开箱即用!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
ru ...
Tomcat Server的设计和实现:StandardServer
理解思路
第一:抓住StandardServer整体类依赖结构来理解
第二:结合server.xml来理解
见下文具体阐述。
第三:结合Server Config官方配置文档
http://tomcat.apache.org/tomcat-9.0-doc/config/server.html
Server结构设计
我们需要从高一点的维度去理解Server的结构设计,而不是多少方法多少代码;这里的理解一定 ...
Mybatis入门手册
介绍
MyBatis 是一个优秀的持久层框架,它简化了 Java 应用程序与关系型数据库之间的交互。MyBatis 通过 XML 或注解的方式将 SQL 语句与 Java 对象进行映射,避免了传统 JDBC 编程中的大量样板代码。
XML方式配置Mybatis
现在不常用,稍微了解一下即可,1对1,1对多等细节方面不作赘述
项目结构分析
Mybatis_1
└── src
& ...
3、IntelliJ IDEA 之 HelloWorld 的实现
3.1、新建工程
如上图所示,在欢迎界面点击“新建项目”按钮。
如上图所示,设置新项目的编程语言、名称、位置以及 JDK 版本;然后点击“创建”按钮即可新建一个工程。
注意:JDK 需要事先安装好,具体请参考 OracleJDK的下载安装与配置 。
提示:新建第一个工程后,会自动激活旗舰版的试用订阅;为验证社区版的功能范 ...
10、FileInputStream和RandomAccessFile的源码分析和使用方法详细分析(windows操作系统,JDK8)
一、FileInputStream的源码分析和使用方法详细分析
FileInputStream 是 Java IO 体系中文件读取的基础类,通过封装操作系统的文件操作,提供了简单易用的字节流读取接口。其设计融合了模板方法模式(统一接口)、适配器模式(屏蔽系统差异)和代理模式(资源生命周期管理),是面向对象设计原则的典型实践
FileInpu ...
从回调认识动态代理 (Java)
介绍
之前的动态代理篇幅写的不好,所以重写了一下(Java实现),作为个人的复习3。同时这一章承上启下,承接反射篇章,引出AOP思想和Spring AOP
了解AOP的前置知识(本人目前只了解Java AOP)
回调函数
静态代理
反射
jdk动态代理
回调方法 CallBack
将核心代码交给使用者编写
A想使用B设计的代码,其中的大部分功能符合A ...
LinkedList 源码深度解析
引言
LinkedList 的插入操作真的是 O(1) 吗?这个看似常识的答案,在实际生产中可能让你踩坑。
大多数开发者知道 LinkedList 基于双向链表,却忽略了它在真实场景中的性能陷阱:for 循环 + get(i) 会让时间复杂度退化到 O(n²),CPU 缓存不友好导致的性能下降,以及每个节点额外 ~32 字节的内存开销。
本文将从源码级别揭示 ...
使用 Java 提取 HTML 文件中的纯文本内容
在 Java 数据处理、文本清洗、内容解析等开发场景中,从 HTML 文件中剔除标签、样式、脚本等冗余格式,提取核心纯文本是高频需求。实现该需求的技术方案较多,本文将分享一种轻量、简洁的实现方式:使用 Free Spire.Doc for Java 库完成 HTML 纯文本提取,为开发者提供直接可复用的解决方案。
一、实现原理
Free Spire.Doc ...
keycloak~实现OAuth 2.0 Token Exchange
https://datatracker.ietf.org/doc/html/rfc8693
https://www.keycloak.org/securing-apps/token-exchange
Keycloak 的令牌交换功能如下:
在同一个领域中,客户端可以将为特定客户端创建的现有 Keycloak 令牌交换为针对不同客户端的新令牌。
客户可以将现有的 Keycloak 令牌兑换为外部令牌,例如关联的 Facebook 账户令 ...
Tomcat组件管理源码详解
生命周期管理:LifeCycle
我从以下几方面,帮助你构建基于上下文的知识体系和理解为什么要理解组件的生命周期管理(LifeCycle)
Server及其它组件
Server后续组件生命周期及初始化
Server的依赖结构
LifeCycle接口
理解Lifecycle主要有两点:第一是三类接口方法;第二是状态机。
一个标准的LifeCycle有哪些方法 ...
Tomcat的架构设计和启动过程详解
前面一篇文章,我们手写了了一个mini版的Tomcat,接下来我们从源码和架构的角度来学习Tomcat
引入
Tomcat和Catalina是什么关系?
Tomcat的前身为Catalina,Catalina又是一个轻量级的Servlet容器。在美国,catalina是一个很美的小岛。所以Tomcat作者的寓意可能是想把Tomcat设计成一个优雅美丽且轻量级的web服务器。Tomcat从4 ...
HashMap 源码深度解析
引言
为什么 HashMap 是 Java 中最常用、最重要的数据结构?
核心原因就一个:性能。常见的基础数据结构中,数组查询快但插入删除慢,链表插入快但查询慢。HashMap 综合了数组和链表的优点,将查询与插入的效率都控制在近似 O(1) 的复杂度内。
但 HashMap 的设计远不止于此。容量为什么是 2 的幂?哈希扰动函数 spread() 如 ...
Spring Boot 整合AI大模型实战:手把手带你接入DeepSeek API
前言
随着AI大模型的快速普及,越来越多的Java开发者希望将AI能力集成到自己的项目中。本文手把手带你用Spring Boot接入DeepSeek API,实现一个具备AI对话能力的后端服务。
一、环境准备
JDK 17+
Spring Boot 3.x
Maven 3.8+
DeepSeek API Key(到 platform.deepseek.com 免费申请)
二、添加依赖
<dependency>
<grou ...
InnoDB存储结构全解析:行页区段与单表2000W行的关系
逻辑存储结构
表空间由段(segment)、区(extent)、页(page)、行(row)组成,InnoDB存储引擎的逻辑存储结构大致如下图:
行(row)
数据库表中的记录都是按行(row)进行存放的,每行记录根据不同的行格式,有不同的存储结构。
页(page)
记录是按照行来存储的,但是数据库的读取并不以「行」为单位,否则一次读取( ...