xiaochen

xiaochen

简介

小陈

发布 85 篇文章
加入于 2026-03-26 13:46
面试题(二)

置顶面试题(二)

面试题

置顶面试题

框架封装

框架封装

本文介绍Maven依赖管理:创建父pom,通过dependencyManagement统一管理Spring Boot、Spring Cloud及Alibaba版本,并继承父pom实现依赖复用;同时提供公共代码,如结果码接口和枚举类,用于统一操作结果返回。

分布式事务

分布式事务

本文介绍了微服务核心组件:服务发现(Nacos原理)、客户端负载均衡策略、OpenFeign声明式调用及其动态代理实现。重点阐述了分布式事务的多种方案:2PC/XA的性能问题、TCC的编码补偿、AT模式利用undo_log自动补偿、Saga长事务补偿,并提及重试幂等方案。强调各方案优缺点及适用场景,需根据业务权衡。

微服务调用

微服务调用

本文介绍了基于 Nacos 的服务发现与调用方案,解决硬编码 IP:端口 带来的配置困难和地址变化问题。通过注册中心动态获取服务地址,实现提供方与调用方解耦;结合 Spring Cloud LoadBalancer 实现负载均衡,并讲解 OpenFeign 声明式调用的核心原理:动态代理与反射。

微服务入门

微服务入门

本文回顾了Java后端技术栈及企业级架构从单体、SOA到微服务、云原生、AI原生的演进,指出业务增长驱动分布式需求。介绍了微服务与分布式系统关系、CAP定理和BASE理论,并重点讲解Spring Cloud作为微服务工具集,涵盖Nacos、Sentinel、Gateway等组件,以及服务分层与独立数据库的设计要点。

电商SPU与SKU详解

电商SPU与SKU详解

电商 SPU 与 SKU 详解 一、概念定义 1. SPU(Standard Product Unit,标准产品单位) SPU 是商品的"属性集合",代表"是什么商品",是商品的最小聚合单位。 它是一组可复用、易检索的标准化信息的集合,描述的是商品的核心属性(如品牌、型号、名称、类目),但不包含具体

nacos面试题

nacos面试题

nacos的临时实例和持久化实例的区别 临时实例:注册时向nacos发起注册,并隔一段时间就发送健康检测,健康检测内容:服务名+ip+端口+更新内存中的lastUpdatedTime(nacos就是根据这个时间隔了多久还没有更新来判断是否存活的),因为状态是由实例自己传来的,nacos不能保证其真实

微服务概述

微服务概述

本文梳理了从单体架构、SOA到微服务的演进历程,指出微服务通过去中心化治理、细粒度拆分和基础设施下沉解决传统架构痛点。同时介绍了分布式系统核心理论(CAP定理、BASE理论)及服务治理概念,强调微服务落地需要组织、流程与文化的同步变革。

33-多线程使用

33-多线程使用

本文介绍了多线程的概念、应用场景(防止主线程阻塞、提高CPU利用率),以及三种实现方式:继承Thread、实现Runnable、使用线程池。重点讲解了ThreadPoolExecutor的核心参数(核心/最大线程数、队列、拒绝策略)和工作原理(有界/无界队列、同步移交),并给出了Spring MVC中配置和使用线程池的方法。

32过滤器和拦截器的区别

32过滤器和拦截器的区别

过滤器和拦截器都能在请求前后执行逻辑,但本质不同:过滤器基于Servlet规范,工作在容器层,通过责任链模式执行,不依赖Spring;拦截器基于Spring MVC框架,通过动态代理实现,依赖IoC容器,可访问Controller方法及注解。请求先经过过滤器链,再到DispatcherServlet,最后进入拦截器链。过滤器适合通用处理(如编码、静态资源),拦截器适合业务相关操作(如权限校验、日志记录)。

31AOP使用场景学习笔记

31AOP使用场景学习笔记

AOP是一种编程范式,通过将日志、事务等横切关注点模块化为“切面”,实现与业务逻辑的分离。核心概念包括切面、连接点、切入点、通知和织入。Spring AOP默认使用JDK动态代理或CGLIB代理实现运行时织入,支持前置、后置、异常、最终和环绕通知。常见应用场景有日志记录和事务管理,有效减少代码重复与耦合。

springboot+websocket实时聊天(二)

springboot+websocket实时聊天(二)

本文介绍了Spring Boot + WebSocket实时聊天系统的前端实现。核心包括:WebSocket连接管理工具类(支持单例模式、自动重连、心跳检测)和聊天窗口组件。通过WebSocket实现实时消息收发,采用指数退避重连策略,30秒心跳保活,支持文本和图片消息展示。

springboot+websocket实时聊天(一)

springboot+websocket实时聊天(一)

本文介绍基于Spring Boot WebSocket实现实时聊天功能的通用模板,涵盖功能概述、技术选型、数据库设计及后端实现。支持在线用户收发文字/图片消息,消息异步持久化至MySQL,离线用户通过REST拉取历史,按业务维度(如订单、群组)管理会话。推荐使用MQ异步写入、对象存储图片,并提供无MQ变体方案。

30-3阶内容-1.8-雪花算法

30-3阶内容-1.8-雪花算法

雪花算法是Twitter开源的分布式ID生成算法,生成64位全局唯一、有序、高性能的ID。其结构包括1位符号位、41位毫秒时间戳、5位机房ID、5位机器ID和12位序列号,支持每毫秒每机生成4096个ID。相比数据库自增和UUID,雪花算法存储小、有序且性能高。核心问题为时钟回拨可能导致ID重复,解决方法包括等待、更换workId或调用其他服务。

29-3阶内容-2.2.5-接入千问与RAG

29-3阶内容-2.2.5-接入千问与RAG

本文介绍了RAG(检索增强生成)的概念与流程:通过向量化文本并计算余弦相似度,实现本地知识库与大模型结合,提升回答准确性。详细说明了余弦相似度计算公式及其意义,梳理了RAG查询的七个步骤。同时讲解了接入阿里云千问大模型的密钥获取和模型选择,以及Spring AI Alibaba集成chatclient的依赖与配置方法。

28-3阶内容-2.2.4-SpringAI-千问接入

28-3阶内容-2.2.4-SpringAI-千问接入

本文介绍了在Spring AI中接入阿里通义千问大模型的方法:首先创建API Key,然后添加`spring-ai-alibaba-starter-dashscope`依赖并配置api-key和模型(如qwen3-max),最后通过配置类创建ChatClient bean,在控制器中注入使用,实现对话功能。

27-3阶内容-2.7.1-xxljob

27-3阶内容-2.7.1-xxljob

本文介绍了定时任务的概念、使用场景,以及Spring Boot中通过@Scheduled注解实现定时任务的三种方式(fixedRate、initialDelay、cron)。重点引入XXL-JOB分布式任务调度平台,它将调度与执行解耦,解决了分布式环境下@Scheduled可能导致的重复执行问题,并概述了其架构(调度中心与执行器)及集成配置方法。

26-3阶内容-2.3.1-Minio

26-3阶内容-2.3.1-Minio

本文介绍了Minio,一个基于Apache License 2.0、兼容AWS S3接口的轻量级对象存储服务,适合存储图片、视频等非结构化数据。核心概念包括Bucket(存储桶)、Object(对象)和Endpoint。安装方式提供了Docker和Windows两种方法,并给出了详细的命令和环境配置步骤。文章旨在帮助读者理解Minio并掌握其安装与基本使用。

25-3阶内容-2.2.1.4-MQ消息不丢失与幂等性

25-3阶内容-2.2.1.4-MQ消息不丢失与幂等性

本文介绍MQ消息丢失的三种情况:生产端(网络或业务失败)、Broker端(异步刷盘或主从复制丢数据)、消费端(自动ACK后业务失败),并给出对应解决方案:生产端同步回滚或异步补偿,Broker端同步刷盘或主从同步,消费端手动ACK并抛出异常。同时指出手动ACK可能引发重复投递,需通过幂等性设计保证业务仅处理一次。

24-3阶内容-9.9.9-邮件发送

24-3阶内容-9.9.9-邮件发送

本文介绍了SpringBoot集成邮件发送的实现步骤:添加spring-boot-starter-mail依赖,配置QQ邮箱的SMTP参数(host、port、username、password等),并开启邮箱的POP3/SMTP服务获取授权码;通过JavaMailSender实现简单文本邮件的发送,示例代码展示了基本用法。核心观点是正确配置邮箱授权码和SMTP参数即可快速实现邮件发送功能。

23-3阶内容-9.9.9-短信

23-3阶内容-9.9.9-短信

本文介绍了云短信接入的完整流程:先申请企业资质、添加签名和模板,再创建访问密钥;随后通过SDK进行Demo测试;最后在代码中添加Maven依赖,编写发送短信的Java代码,配置认证信息和请求参数,实现短信发送功能。

22-3阶内容-2.2.1.1-MQ(springboot)

22-3阶内容-2.2.1.1-MQ(springboot)

本文回顾了MQ的核心作用(削峰、解耦、异步)及组成,重点讲解RocketMQ集成SpringBoot:生产者支持同步、异步、单向三种发送方式,通过RocketMQTemplate实现;消费者分推/拉模式,可配置自动或手动ACK。涵盖依赖、配置及消息对象示例。

21-3阶内容-2.2.1.1-MQ-SpringBoot集成(编写生产者)

21-3阶内容-2.2.1.1-MQ-SpringBoot集成(编写生产者)

本文介绍了SpringBoot集成RocketMQ实现消息生产与消费:生产者支持同步(阻塞等待确认)、异步(回调处理结果)、单向(不关心结果)三种发送方式;消费者分为拉模式和推模式。集成步骤包括添加依赖、配置命名服务器和生产者组,并通过RocketMQTemplate编写生产者Service及消费者监听器,支持自动ACK和手动ACK。

20-3阶内容-2.2.1.0-MQ安装

20-3阶内容-2.2.1.0-MQ安装

本文介绍了消息队列(MQ)的核心概念、异步/解耦/削峰的三大特点,以及常见MQ(RocketMQ、Kafka、RabbitMQ)的对比。重点讲解了RocketMQ的组成(NameServer、Broker、Producer、Consumer等)与基本原理,并明确课堂目标包括理解MQ特点、原理、使用场景及安装部署。

19-3阶内容-2.1.2-nginx

19-3阶内容-2.1.2-nginx

本文回顾了Docker基础,重点讲解Nginx:高性能HTTP和反向代理服务器,具有内存少、并发能力强(支持5万并发)的特点。Nginx通过反向代理和负载均衡解决单体系统高并发问题,是现代应用架构中前后端转发、负载均衡、跨域、缓存等功能的必备工具。文章还介绍了常用命令和配置要点。

18-3阶内容-2.1.1-docker

18-3阶内容-2.1.1-docker

Docker是一种轻量级容器化部署工具,相比VM省去了完整操作系统,共享系统内核,实现隔离、快速部署。它由主机、客户端和镜像市场组成,可将应用打包成镜像一键部署,解决中间件安装重复繁琐问题。文章还详细介绍了Docker的安装步骤和常用命令。

17-3阶内容-1.7.5-布隆过滤器

17-3阶内容-1.7.5-布隆过滤器

本文介绍了Redis的核心应用场景、持久化方式、高可用架构及哨兵原理,重点分析了缓存击穿、雪崩与穿透的成因及解决方案:通过同步锁、随机过期时间、多级缓存、熔断降级等应对;针对缓存穿透,提出布隆过滤器(快速但可能误判)与空值缓存策略,并给出了Redisson集成示例。

16-3阶内容-1.7.3-redis哨兵模式补充

16-3阶内容-1.7.3-redis哨兵模式补充

# Redis 哨兵模式:主观下线和客观下线 ## 1. 基本概念 ### 哨兵模式(Sentinel) Redis Sentinel 是 Redis 的高可用性解决方案,它主要提供以下功能: - \*\*监控\*\*:持续检查主从服务器是否正常运行() - \*\*通知\*\*:当被监控的 Redis 实例出现问题时...

15-3阶内容-1.7.2-redis主从搭建

15-3阶内容-1.7.2-redis主从搭建

### 课堂目标 1. 理解主从集群概念 2. redis主从如何搭建 3. 哨兵模式(可选) # 一、什么是Redis主从(集群) 部署多个服务,组成的集合,成为集群; 对外的性能、并发、数据安全更加的可靠; 其中主库出现了故障,可以迅速升级从库,替换主库的功能 集群目的:读写分离和负载均衡 !\[image-202...

14-3阶内容-1.4-logback日志配置

14-3阶内容-1.4-logback日志配置

# 本节要点 - LogBack集成使用 - 了解logback.xml的配置含义 logj4 # 一、什么是logback? https://logback.qos.ch/ 最早的是log4j,后来发展优化后Logback !\[image-20251020141636487\](https://woniumd.os...

13-3阶内容-1.7-redis key淘汰策略

13-3阶内容-1.7-redis key淘汰策略

### 课堂目标 1. 理解redis的淘汰策略 2. 如何进行配置 # 一、什么是Redis淘汰策略 如果没有淘汰策略,redis的key就会用不过期,有可能导致redis就会导致oom。 当 Redis 所使用的内存达到 配置的阈值时,Redis 会根据设定的淘汰策略来删除一些键,以便为新数据腾出空间。 ### 核...

12-3阶内容-1.7.1-redis持久化

12-3阶内容-1.7.1-redis持久化

### 课堂目标 1. 理解redis的两种持久化的方式 2. RDB和AOF区别 3. 如何进行配置 # 一、redis持久化 什么叫持久化?把数据保存在磁盘,保证不丢失 # 二、redis持久化方式 !\[image-20251012002323652\](https://woniumd.oss-cn-hangzh...

11-3阶内容-1.3-2-mybatisplus查询构造器

11-3阶内容-1.3-2-mybatisplus查询构造器

# 本节要点 - map.xml查询编写 - 熟练运用两种查询器 - 多数据源配置 - 认识Druid连接池 # 一、Mybatis plus的查询 写mapper.xml查询(范例),通过名字去查询 ## 1、编写 map.xml \`\`\` id,username,password,real_name,dept_...

10-3阶内容-1.3-1-Spring Boot整合mybatisplus

10-3阶内容-1.3-1-Spring Boot整合mybatisplus

# 本节要点 - 认识Mybatis Plus - 学会安装Mybatis Plus插件 - 用插件生成代码 - 开启日志排查SQL # 一、什么是Mybatis Plus 官网:https://baomidou.com/ 在当今的Java开发领域,Spring Boot凭借其便捷的开发特性和强大的生态系统,成为了构建...

09-3阶内容-1.5.3-Spring Boot集成redis-2

09-3阶内容-1.5.3-Spring Boot集成redis-2

redis常用的几大类数据结构 1、String ,token存储、分布式锁、计数 、json存储 2、Hash,购物车。。。 3、List 4、Set 集合,不重复,抽奖、朋友圈... ,交并集 5、Zset score ,做排行榜... key \*condition scan count 1000 set key...

08-3阶内容-1.5.3-Spring Boot集成redis-1

08-3阶内容-1.5.3-Spring Boot集成redis-1

本文介绍Spring Boot集成Redis的完整流程:创建项目、添加依赖(spring-boot-starter-data-redis及连接池)、配置Lettuce连接参数、通过配置类设置Key/Value序列化(使用RedisSerializer.string和json)以确保数据可读,最后在Controller中测试五大数据类型API。

07-3阶内容-1.5.1-linux常用命令

07-3阶内容-1.5.1-linux常用命令

# 本节要点 - 了解操作系统 - 了解Linux - 认识linux文件系统 - 理解linux和Window系统文件差异 - 各类命令 # 一、什么是操作系统 1、操作系统(OS),是管理计算机硬件和软件的资源的系统。 2、操作系统是人与计算机交互的接口 3、操作系统核心功能包括:管理CPU、内存(RAM)、存储设...

06-3阶内容-1.5.2-redis介绍

06-3阶内容-1.5.2-redis介绍

# 本节要点 - 认识什么是Redis - 为什么要用Redis - 理解非结构化数据 - window和linux下Redis安装和配置 # 一、什么是Redis https://redis.io/ 内存的一个数据库 所有的IO都是需要消耗时间的! !\[image-20260130095358889\](https...

05-3阶内容-1.5.2-mysql安装

05-3阶内容-1.5.2-mysql安装

# mysql安装步骤 一般linux下安装mysql几种方法: 1、源码安装,gcc,make \*\*2、yum ,官方仓库\*\* 3、docker ## \*\*1. 配置官方 YUM 源\*\* 必须先添加官方源,否则会提示 \`No package mysql-community-server availa...

04-3阶内容-1.5.1linux-jdk17

04-3阶内容-1.5.1linux-jdk17

1、目录相关 mkdir(-p)、touch、vi、cat、cd、ls、ll( -a)、cp(-a)、rm ./1.txt、rm -rf 、rmdir、 mv、rm 2、编辑相关 vi、 vim 命令模式 , dd、yy、pp, u、b、e、g ,hjkl 编辑模拟:i ,a , o ;ESC -\>命令模式 命令模式...

03-3阶内容-1.5.2-redis介绍与基本命令

03-3阶内容-1.5.2-redis介绍与基本命令

# 本节要点 - 认识什么是Redis - 为什么要用Redis - 理解非结构化数据 - window和linux下Redis安装和配置 - 五大数据类型与使用场景 # 一、什么是redis https://redis.io/ !\[image-20260130095358889\](https://woniumd....

02-3阶内容-1.5.1-阿里云测试使用

02-3阶内容-1.5.1-阿里云测试使用

### 课堂目标 1. 了解什么是服务器 2. 如何拥有一台服务器 3. 阿里云账号注册 4. 阿里云ECS使用 # 本节要点 - 阿里云账号注册与使用 - ECS服务器申请与防火墙管理 1、什么是服务器 游戏服务器、web应用服务器、图片服务器 --\>7x24小时不间断运行 服务器的扩展性强:有很多插槽、ECC内存...

01-Windows下Ubuntu安装

01-Windows下Ubuntu安装

本文详细介绍了在Windows系统下通过VMware虚拟机安装Ubuntu 24.04 LTS的完整步骤:首先下载并安装VMware Workstation Player,然后下载Ubuntu ISO镜像,最后在VMware中创建虚拟机并完成Ubuntu安装。重点包括虚拟机硬件配置建议(内存2-4GB、处理器2-4核、网卡NAT)及安装过程中的典型与自定义选项说明。

04_RBAC+AOP-权限(动态菜单)

04_RBAC+AOP-权限(动态菜单)

# 1 基于rbac+AOP实现权限控制 rbac:基于角色控制权限 每一个公司都不一样 rbac基础班 有不同的变种版 ## 1.1 rbac之5张表 \~\~\~sql -- 用户 drop table if exists tb_user; CREATE TABLE tb_user ( id bigint(20) ...

03_Vue2进阶-ElementUI+Axios+Git基础+Gitee

03_Vue2进阶-ElementUI+Axios+Git基础+Gitee

本文介绍了Vue2进阶需掌握的四项技术:ElementUI组件库、Axios异步请求、Git基础及Gitee远程仓库。重点详解了ElementUI的安装、导入及使用,包括布局、表格、按钮等常用组件的用法。

02_Vue2高级-组件+路由+脚手架

02_Vue2高级-组件+路由+脚手架

# Vue2高级-组件+路由+脚手架 - vue组件(掌握) - vue-router路由(掌握) - vue-cli脚手架(掌握) ## 一. Vue组件 ### 1. 什么是组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自...

01_Vue2基础-ES6语法+Vue表达式+Vue指令

01_Vue2基础-ES6语法+Vue表达式+Vue指令

# Vue2基础-ES6语法+Vue表达式+Vue指令 - 前端技术了解(了解) - ES6常见语法(掌握) - Vue入门(掌握) - Vue表达式(掌握) - Vue指令(掌握) - 计算属性与侦听器(了解) ## 一. 前端技术了解 \*\*1. NodeJs:js运行环境\*\* Node.js 的出现吸引了很...

09 maven高级

09 maven高级

# 1 分模块开发与设计 场景:公司有两个项目都需要用户管理功能: ## 方式一:单体项目(包管理) !\[image-20250917023725074\](https://woniumd.oss-cn-hangzhou.aliyuncs.com/web/wangyongcheng/20250917023725.pn...

08_springai_alibaba_agent_开发教程_markdown版

08_springai_alibaba_agent_开发教程_markdown版

# Spring AI Alibaba Agent 开发教程 ## 1. AI 基础概念 ### 1.1 什么是 LLM LLM(Large Language Model,大语言模型)是一种通过海量文本数据训练得到的人工智能模型,能够理解并生成自然语言。 常见模型: - GLM(智谱AI) - DeepSeek - O...

07_springboot+日志+aop+swagger+拦截器+jwt登录

07_springboot+日志+aop+swagger+拦截器+jwt登录

# springboot+日志+aop+swagger+拦截器+jwt登录 # 1 日志门面和日志的实现 ## 1.1日志门面 ### 什么是日志门面 类比:JDBC(Java Database Connectivity) 日志门面就像 JDBC,它只是一个接口(Interface),定义了一组日志操作的方法(如 in...

06_springboot自定义start

06_springboot自定义start

# Springboot自定义start ## 1.bean的管理 在springboot中既没有用到 也没用到@ComponentScan 的原因是@SpringBootApplication是一个组合注解,里面已经有了@CompnentScan \`\`\`java @SpringBootApplication \...

05_spirngboot

05_spirngboot

# springboot的快速应用 ## 1.springboot是什么 本阶段采用spring3.5.3版本 !\[image-20260514172330965\](D:\\课件\\07_springboot\\img\\image-20260514172330965.png) ## 2 传统方式构建spring应...

04_SSM整合、统一封装、全局异常处理、spring事务入门、pageHelper、拦截器、跨域、文件上传

04_SSM整合、统一封装、全局异常处理、spring事务入门、pageHelper、拦截器、跨域、文件上传

# 1 整合SSM(springMVC+spring+mybatis) ## 1.1 依赖 \~\~\~xml 4.0.0 com.wyc ssm 1.0-SNAPSHOT war ssm 17 17 com.alibaba druid 1.2.23 com.mysql mysql-connector-j 8.0.33...

03_SpringMVC

03_SpringMVC

# 1 回顾web ## 阶段1:三层架构 !\[image-20250922141721473\](https://woniumd.oss-cn-hangzhou.aliyuncs.com/web/wangyongcheng/20250922141721.png) 1 浏览器发送一个请求给后端服务器,后端服务器使用S...

02_spring整合Mybatis,讲解事务,声明式事务,@Transactional、编程式事务、transactionTempl

02_spring整合Mybatis,讲解事务,声明式事务,@Transactional、编程式事务、transactionTempl

# 1 spring整合mybatis\&junit\&AOP\&事物 1. spring整合mybatis 2. 数据库操作中事物 3. AOP案例讲解 # 2.spring整合mybatis 大体需要做两件事 第一件事是:Spring要管理MyBatis中的SqlSessionFactory 第二件事是:Sprin...

01_spring(SpringlOC、SpringDI、常用注解、整合junit、SpringAOP)

01_spring(SpringlOC、SpringDI、常用注解、整合junit、SpringAOP)

# spring(SpringlOC、SpringDI、常用注解、整合junit、SpringAOP) # 1.课程介绍 - Spring相关的介绍 - IOC思想 - DI依赖注入 - 案例演示 # 2.spring家族 官网:\[https://spring.io\](https://spring.io/) 1 S...

8IO流

8IO流

## IO流 数据持久化 程序(缓存)===》硬盘中 OutputStream Writer 写出 程序中操作数据 硬盘中===》程序中 InputStream Reader 读入 ### File文件类 java提供了一套专门操作本机文件、文件夹的API #### 构造方法 new File(String path)...

查询、索引

查询、索引

# 0 复习 union all 在sql中可以使用 union all 来实现多个结果集的拼接,最终合并多个结果集为一个结果集 语法: \~\~\~ select .. from 表 where ... union all select .. from 表 where ... union all ...... 备注:...

mysql-修订

mysql-修订

## JDBC\&SQL ### 安装MySql配置流程 下载\[MySQL :: MySQL Downloads\](https://www.mysql.com/cn/downloads/) 一、首先 先补齐系统包 下载 VC_redist.x64.exe 运行安装 提供8.3安装版 二、安装图解:https://d...

mybatis开发流程

mybatis开发流程

## 开发流程 ### 前言 在前面JDBC的学习中,虽然我们能够通过JDBC来连接和操作数据库,但是这实在是太麻烦了,哪怕只是完成一个SQL语句的执行,都需要编写大量的代码,更不用说如果我还需要进行实体类映射,将数据转换为我们可以直接操作的实体类型,JDBC虽然进行了接口的定义,但是还不够方便,我们需要一种更加简洁高...

Lombok使用操作

Lombok使用操作

\*\*注意:\*\* 开始学习Lombok前至少需要保证完成JavaSE课程中的\*\*注解\*\*部分。 #### 以往操作一 代码量大 不便于维护 \`\`\`java public class Account { private int id; private String name; private int ...

Maven安装配置

Maven安装配置

## 安装配置 1.保证java环境正常 2.官网下载 3.解压 修改配置信息 首先确认某个位置声明一个文件夹作为本地仓库repmvn \~\~\~ java conf-\>settings.xml 1》修改本地仓库地址 后添加设置 D:\\soft\\repmvn 2》设置镜像(所需要的jar包也许在Maven官方地...

15.JavaScript基础

15.JavaScript基础

JavaScript是一种运行在客户端的脚本语言,无需编译即可被浏览器解析执行,用于增强HTML页面的交互性和动态效果。其核心由ECMAScript标准(统一客户端脚本语法)和特有的BOM+DOM组成。基本语法包括变量(var/let/const)、数据类型(number、string、boolean等)、运算符(一元、算术、比较、逻辑等)及流程控制语句。

14.JavaScript高级

14.JavaScript高级

1. JavaScript: 1. ECMAScript: 2. BOM: 3. DOM: 1. 事件 ### 案例1:图片切换 # BOM: ### 概念 Browser Object Model 浏览器对象模型 将浏览器的各个组成部分封装成对象。 ### 组成 \~\~\~html \* Navigator:浏览器...

12.CSS课堂笔记

12.CSS课堂笔记

## CSS:页面美化 ### 1.概念 \~\~\~\~ html Cascading Style Sheets 层叠样式表 \* 层叠:多个样式可以作用在同一个html的元素上,同时生效 \~\~\~\~ ### 2.样式表 \~\~\~\~ html 1. 功能强大 2. 将内容展示和样式控制分离 \* 降低耦合...

11.HTML课堂笔记

11.HTML课堂笔记

## web概念概述 \* JavaWeb: \* 使用Java语言开发基于互联网的项目 \* 软件架构: 1. C/S: Client/Server 客户端/服务器端 \* 在用户本地有一个客户端程序,在远程有一个服务器端程序 \* 如:QQ,迅雷... \* 优点: 1. 用户体验好 \* 缺点: 1. 开发、安装...

10线程

10线程

## 线程 Thread 进程包含多个线程 至少有一个线程 线程一定属于某一个进程 java多线程语言 主线程+垃圾回收线程(守护线程) ### 逻辑 CPU 的每一个时间片段 分配给每一个线程 同一时间片段 只能处理某一个线程的任务 多个线程快速的切换 多核处理器 提升了CPU每一个时间片段的使用效率 分配原则: 分...

9注解&反射

9注解&反射

## 注解\&反射 定义:直接通过类的字节码文件信息 反向创建为一个对象 也可以获取 类中的资源(公开的 私有的) 反射和注解是后期所有大型框架的核心 ### 字节码文件 \`\`\`java //1.获取某个类的字节码文件 //方案一 通过对象 获取字节码文件 User u = new User(); System....

IO流

IO流

本文介绍了Java IO流的核心知识,涵盖字节流(InputStream/OutputStream)和字符流(Reader/Writer)的分类,以及File类的构造方法(支持路径组合)和常用操作方法(创建、删除、判断、重命名、列表等)。通过示例展示了使用FileInputStream/FileOutputStream进行字节流文件复制,以及FileReader进行字符流读取的基本流程。

双列集合

双列集合

文章介绍了双列集合HashMap,其由键值对组成,键不可重复,重复键会覆盖。列出了常用方法如put、get、remove、replace等及其返回值,以及如何获取键集、值集和Entry映射关系。还说明了Entry类的getKey、getValue、setValue方法,并指出通过键集或Entry集操作会影响原集合。

单列集合

单列集合

本文介绍了Java单列集合的核心内容,重点讲解了Collection接口及其常用方法(add、remove、clear等),迭代器与增强for循环的区别及安全删除,ArrayList基于数组的底层模型(查询快、增删慢)及其特有方法,以及数组与集合的互相转换。

7.集合框架

7.集合框架

本文介绍了Java集合框架的核心概念:数组长度固定、集合长度可变且默认存储Object。详细讲解了单列集合Collection的架构,包括有序可重复的List(ArrayList、LinkedList、Vector)和无序去重的Set(HashSet、TreeSet、LinkedHashSet),以及常用方法(add、remove、contains等)。还涉及泛型的使用与受限边界,并通过练习演示了集合操作、迭代器和删除条件等实际应用。

异常类

异常类

本文介绍了Java中的异常分类和处理方式。运行时异常不影响编译但需避免;编译时异常必须处理,否则无法编译。throws用于方法后抛出异常,调用方需处理;try catch捕获异常,注意匹配顺序。自定义异常通过继承Exception实现,使用throw抛出。

Date、 LocalDate 、LocalTime 、LocalDateTime

Date、 LocalDate 、LocalTime 、LocalDateTime

本文介绍了Java中四种日期时间类:Date(过时,可格式化与解析)、LocalDate(仅日期,格式化为yyyy-MM-dd等)、LocalTime(仅时间,格式化为HH:mm:ss等)、LocalDateTime(日期+时间,格式化为yyyy-MM-dd HH:mm:ss等)。强调了各自默认输出格式、创建与赋值方法、使用DateTimeFormatter进行格式化和字符串解析。

单例模式和枚举类

单例模式和枚举类

单例模式通过私有化构造、静态变量和静态方法确保全局唯一实例。枚举类则强制限定实例数量,枚举值第一时间排列,构造方法私有,继承自Enum类(需重写toString),解决了单例模式实例可控性问题。

6.常用API

6.常用API

本文介绍了JDK常用API的核心概念,包括方法四要素(方法名、所属类、参数列表、返回值)。重点讲解了Object类:equals()和hashCode()的默认实现(基于地址)及重写规则(基于属性值),toString()和getClass()的用途,并通过字符串示例说明哈希碰撞。随后详述String类的构造方法(如new String(char[])等)和常用方法(equals、length、charAt、isEmpty、getBytes等),强调字符串常量池中地址比较的规则,以及null与空字符串的区别。

比较器

比较器

本文介绍了Java中的两种比较器:内部比较器通过实体类实现Comparable接口并重写compareTo方法,支持int、String、double等类型的排序;外部比较器通过创建实现Comparator接口的类,可定义多个比较规则,并支持Lambda表达式及三元运算符优化。两者均用于Arrays.sort()排序。

第二周总结

第二周总结

本周总结了面向对象编程的核心概念:类与对象的关系、类的组成(属性与方法)、方法的定义与四要素、访问修饰符(public/private等)、static关键字的作用与调用原则、方法重载、构造方法及super/this使用、代码块类型,以及三大特性——封装(属性私有化+get/set)、继承(单继承、重写)和多态。

mysql多版本安装与控制

mysql多版本安装与控制

本文介绍了在Windows上安装和管理多个MySQL版本的方法:下载zip解压,创建my.ini配置文件(指定端口、路径、字符集等),以管理员身份运行CMD,执行初始化命令获取临时密码,通过唯一服务名安装Windows服务,启动服务并修改root密码。核心是确保端口和路径不冲突,服务命名唯一。

5.面向对象三特性

5.面向对象三特性

面向对象三特性包括封装和继承。封装通过属性私有化、提供get/set方法控制访问,实现对属性的安全保护。继承是从多个实体类中抽取共有属性和方法的第二次抽象,遵循单继承原则。标准实体类要求属性私有化、提供构造方法、get/set方法和toString(),以规范代码结构。

4.面向对象

4.面向对象

文章介绍了面向对象编程的核心概念:类是对象的模板,对象是类的实例。阐述了类与对象的关系、类的组成(属性和方法)、方法的定义与四要素,以及访问修饰符(public、private等)和static静态资源的使用。通过学生类和Dog类练习,演示了对象的创建、数组批量保存及增强for循环遍历。

3.数组+循环

3.数组+循环

文章介绍了数组用于批量存储同类型数据,定义后长度不可变,通过下标访问元素;以及for循环和增强for循环的使用场景,强调普通for循环适合固定次数的迭代,增强for循环仅用于遍历展示,不能用于赋值或删除元素。

2.运算符 分支结构

2.运算符 分支结构

本文介绍了Java中的运算符和分支结构,重点讲解了赋值运算符(基本类型传值,引用类型传地址)、算术运算符(包括+的加法与连接作用、/的整数除法、%的取余、++/--的前后置区别等),并通过案例演示了百分比计算和复杂表达式求值。关系运算符返回boolean值,比较基本类型用==,字符串用equals()方法。内容强调运算符的优先级、类型转换和常见陷阱。

1.java基础

1.java基础

本文介绍了Java基础知识,包括项目架构(CS/BS)、技术板块(JDK/JRE/JVM)、Java流行原因(面向对象、跨平台等)、跨平台实现原理(虚拟机)、开发流程(编写、编译、运行)、环境变量配置、命名规范及数据使用。强调Java既是编译型也是解释型语言,并给出HelloWorld案例和代码规范。