自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

倾蝶羽裳,漫雨疏狂

拂壬雨文,欢迎大家

  • 博客(42)
  • 收藏
  • 关注

原创 面试常问笔记整理

哈希冲突是哈希表的固有问题,核心解决思路是。

2025-10-23 19:00:47 1002

原创 关于监控与部署

Zipkin链路追踪有什么用?能帮你发现什么问题?“项目是用Docker部署的吗?了解K8s吗?

2025-10-22 20:30:07 298

原创 关于数据库和分库分表

为什么要对MySQL进行分库分表?你们是按照什么维度分的?(例如:用户ID)”“分库分表之后,你们是怎么处理全局唯一ID的?(Snowflake算法等)”“分库分表后的查询(比如非分片键查询)怎么处理?

2025-10-22 20:13:53 238

原创 消息队列Kafka

你们在哪些场景下使用了Kafka?“如何保证消息不被重复消费?(幂等性)”“如果消息积压了怎么办?“Kafka为什么能支持高吞吐量?“谈谈你对Kafka副本机制的理解。

2025-10-22 19:26:42 1257

原创 高并发与Redis

你为什么用Redis?具体缓存了哪些数据?缓存策略(过期时间、淘汰策略)是怎么设置的?能具体描述一下命令吗?(例如INCRHINCRBY或 Lua脚本)”“如何保证缓存与数据库之间的数据一致性?(经典难题)”“如果缓存雪崩、穿透、击穿了,你的系统会怎样?你做了什么预防措施?“Redis持久化机制了解吗?RDB和AOF有什么区别?

2025-10-21 15:09:05 722

原创 微服务架构

Spring Cloud Alibaba是一套基于Spring Cloud的微服务解决方案,它整合了阿里巴巴的开源组件,帮助开发者快速构建,部署和管理分布式系统。Nacos:用于用户服务注册与发现,以及配置管理。它可以帮助我们实现服务的动态注册和发现,同时支持动态配置更新,让微服务架构更加灵活。Sentinal:流量控制,熔断降级组件。它可以保护系统不被突发大规模流量冲垮,实现服务的稳定性和高可用性。Seata:分布式事物解决方案。

2025-10-20 19:39:07 547

原创 一、十天速通Java面试(第三天)

本文系统梳理了Java核心概念与关键技术点,主要包括:线程本地存储ThreadLocal原理、终结机制(finalize/finally区别)、对象序列化机制、异常处理体系、Socket网络通信原理、IO流体系对比(字节流/字符流)、泛型与通配符应用、枚举类实现机制、注解系统等核心技术。重点解析了对象传递机制(值传递/引用传递)、运行时类Runtime设计模式、接口与抽象类区别、静态内部类特性等关键概念,并提供了典型代码示例说明。文章还对比了Comparable与Comparator接口的应用场景,详细阐述

2025-10-09 19:31:46 1123

原创 一、十天速通Java面试(第二天)

本文系统梳理了Java核心技术面试要点,涵盖JDK/NDK对比、static/final特性、集合框架、Session/Cookie机制、IO/NIO模型等核心内容。重点解析了:1)static变量线程安全方案;2)Map/List/Set应用场景;3)BIO/NIO/AIO性能差异;4)DirectByteBuffer内存优化;5)NIO多路复用原理。通过典型代码示例和对比表格,深入浅出地阐释了高并发场景下的技术选型依据,如Selector如何实现单线程管理万级连接,为开发者构建高性能系统提供了实用指导。

2025-09-30 09:02:32 1306

原创 一、十天速通Java面试(第一天)

本文摘要主要介绍了Java编程中的核心知识点,包括: Java的8种基础数据类型及其特性,装箱拆箱机制,以及String转int的方法; 面向对象特性(封装、继承、多态)和重写重载的区别; 集合框架中的PriorityQueue实现原理及堆结构; String、StringBuffer和StringBuilder的区别及String不可变性; 反射机制原理及三种获取Class对象方式的区别; 面向对象设计六大原则和创建对象的四种方法; 文件I/O操作和哈希码相关问题。

2025-09-29 09:00:15 797

原创 安装MySQL后的基础使用

MySQL数据库操作指南:登录使用mysql -uroot -p,创建数据库CREATE DATABASE 数据库名 charset=utf8,注意语句结尾加分号。常用命令包括SHOW DATABASES查看数据库,USE选择数据库,SHOW TABLES查看表。用户管理涉及创建用户CREATE USER、授权GRANT、撤销权限REVOKE和删除用户DROP USER。权限管理可通过SHOW GRANTS查看。退出使用exit或quit。操作需注意分号结尾和权限设置。

2025-09-10 09:00:00 507

原创 MySQL安装教程,手把手教你安装MySQL

本文简要介绍了MySQL 8.0.31的安装与配置步骤:1.下载解压后配置环境变量;2.以管理员身份初始化并生成data文件;3.注册和启动MySQL服务;4.设置root账户密码;5.提供卸载方法。最后说明了登录(mysql -uroot -p)和退出(exit/quit)数据库的基本操作。全文简明扼要地概括了MySQL的安装配置流程及基础使用方法。

2025-09-09 09:00:00 631

原创 网络编程:传输 Student 对象与多线程服务器实战

本文介绍了Java网络编程中对象传输与多线程服务器的实现方法。主要内容包括:1)通过实现Serializable接口实现Student对象的序列化传输,包含客户端发送对象和服务器接收处理的完整流程;2)多线程服务器设计,通过为每个客户端创建独立线程实现并发处理,并建议使用线程池优化性能。文章强调了类路径一致性、资源释放、异常处理等关键点,并提供了文件格式示例和常见问题解决方案,帮助开发者构建高效的网络通信应用。

2025-08-27 09:35:51 677 3

原创 【保姆级教程】[特殊字符]Java 网络编程从入门到实战:TCP/UDP 核心原理 + 完整案例

该文档围绕网络编程展开,先介绍计算机网络定义与网络编程目标,讲解 C/S(需装客户端、速度优但不跨平台)和 B/S(依赖浏览器、跨平台)软件结构及对比。阐述通信三要素(IP 地址、端口、协议),详解 IP 地址分类(IPv4/IPv6)、域名、公 / 内网 IP,端口号范围与分类,OSI 和 TCP/IP 模型及常见协议。对比 UDP(无连接、高效但不可靠)与 TCP(面向连接、可靠,含三次握手建连、四次挥手断连),最后通过 Java 案例展示 TCP与 UDP 编程实现,强调两者核心差异与适用场景。

2025-08-27 08:45:00 1503 2

原创 [特殊字符] Java IO 流深入学习:异常处理与序列化进阶

本文聚焦其异常处理与序列化进阶内容。异常处理部分,解析传统 try-catch-finally(需在 finally 判流非空、独立关流)与 JDK7 try-with-resource(自动逆序关流)方案;序列化部分,明确类需实现 Serializable 接口,详解 serialVersionUID(保证类结构变化后反序列化兼容)、transient(忽略敏感属性),演示对象序列化 / 反序列化及多对象集合序列化(避 EOFException),助读者掌握文档进阶核心。

2025-08-26 09:00:00 1100 3

原创 [特殊字符] 保姆级 Java IO 流教程:从 File 类到缓冲流,吃透文件操作核心(附实战案例 + 避坑指南)

本文基于《11-File、IO 流.pdf》核心内容,专为 Java 初学者拆解 File 类与 IO 流知识体系。先解析 File 类的本质(文件 / 目录路径抽象表示)、3 种构造方法及 “查、判、创、删、遍历”5 大功能;再讲解 IO 流核心概念,按 “流向 + 数据类型” 梳理分类与四大抽象父类;重点实战字节流(万能处理所有文件)、字符流(专处理文本)的用法,及缓冲流的性能优化逻辑,搭配文档中经典案例(文件拷贝、逐行读写),附避坑提示,帮助读者快速掌握文件操作核心,代码可直接运行。

2025-08-26 08:45:00 1758 2

原创 Java入门必看十五:File 类与 IO 流基础详解(附实战案例)

本文介绍了Java文件操作的基础知识,包括File类和IO流的使用。File类用于管理文件和目录的路径、创建、查询和删除操作,但不涉及内容读写。IO流分为字节流和字符流,按流向分为输入流和输出流。重点讲解了文件字节流(FileInputStream和FileOutputStream)的读写方法,并通过文件拷贝案例演示了字节流的实际应用。文章还提供了File类的小练习和IO流的使用步骤,为后续学习字符流和缓冲流打下基础。

2025-08-25 09:02:29 1192 2

原创 线程的进阶秘籍:从属性到协作的全能指南

本文深入探讨Java线程的进阶应用,涵盖线程属性(名称、优先级、守护线程)、完整生命周期(6种状态转换)、核心操作(sleep/join方法)以及线程同步与协作机制。重点讲解了synchronized同步代码块/方法的实现原理,通过生产者-消费者模型演示wait/notify的线程通信,分析死锁产生条件及避免方法,并介绍线程池的资源复用优势。文中包含多个代码示例,如售票问题、包子生产消费案例等,帮助理解多线程编程中的关键概念和实用技巧。

2025-08-22 14:36:20 1371 2

原创 Java第十四课 多线程基础概念与入门操作

本文介绍了多线程编程的基础概念,重点讲解了进程与线程的区别、并发与并行的概念,以及Java中创建线程的两种主要方式。进程是内存中运行的应用程序,线程是进程内的执行单位,共享进程资源。文章通过生活实例解释了并发(单核CPU交替执行)和并行(多核CPU同时执行)的区别。详细说明了继承Thread类和实现Runnable接口这两种创建线程的方法,并比较了它们的优劣,推荐优先使用Runnable接口以获得更好的灵活性。最后还介绍了线程命名和构造器的使用,为后续学习线程通信和线程安全打下基础。

2025-08-21 08:59:35 1292 4

原创 异常处理---try

本文系统介绍了Java异常处理机制,重点讲解了try-catch-finally组合的使用方法。文章首先区分了自动抛出和手动抛出两种异常类型,并详细说明了throws声明异常和throw抛出异常的区别。核心部分通过代码示例演示了单异常捕获、多异常捕获的处理方式,强调异常类型应从小到大排列。特别讲解了finally块的执行特性,包括对基本类型、字符串和引用类型返回值的影响。文章最后指出合理的异常处理能提高代码健壮性,建议开发者充分考虑各种意外情况,写出更可靠的程序。全文采用理论讲解与代码示例相结合的方式。

2025-08-20 08:58:37 1167 1

原创 Java第十三课 异常(超简单)

本文介绍了Java异常的基本概念和处理机制。首先阐述了学习异常的重要性,指出异常处理能提高程序容错性和可维护性。然后详细讲解了异常体系:Throwable是顶级父类,分为Error(严重错误)和Exception(可处理异常)。Exception又分为编译时异常(必须处理)和运行时异常(编译不检查)。文章通过代码示例演示了常见异常类型如空指针、数组越界、算术异常等,并分析了异常传播机制。最后区分了自动抛出和手动抛出异常的方式,为后续学习异常处理打下基础。

2025-08-19 09:07:19 1136 4

原创 集合实现发牌功能

本文介绍了使用Java集合实现斗地主发牌功能的程序设计。通过封装Card类表示扑克牌(包含花色、点数和权重),利用TreeMap存储牌面与权重的映射关系,实现了54张牌的生成、洗牌和发牌功能。程序采用Collections.shuffle()方法随机打乱牌序,通过交替发牌方式分配给3名玩家各17张牌,并保留3张底牌。最后通过重写compareTo方法实现按权重排序输出玩家手牌和底牌。该案例展示了如何将集合知识应用于实际问题解决,为后续学习并发集合和Stream API打下基础。

2025-08-18 10:50:39 710 1

原创 结合题目具体讲解Map

本文通过三道Java编程题系统讲解了Map集合的应用。第一题演示了Map的基本操作,包括遍历、修改和删除;第二题利用Map统计字符出现次数;第三题综合应用Map处理学生数据,重点讲解了迭代器安全删除元素的方法。文章对比了增强for循环和显式迭代器在删除元素时的区别,强调了iterator.remove()的安全性。通过由浅入深的案例,帮助读者掌握Map的核心方法及其在实际开发中的应用技巧,为后续更复杂的集合操作打下基础。

2025-08-16 08:45:00 961 2

原创 多列集合---Map

本文介绍了Java中的Map集合及其工具类。Map作为多列集合,通过键值对(key-value)存储数据,具有key唯一、value可重复的特点。重点分析了三种实现类:HashMap(无序高效)、TreeMap(自动排序)、LinkedHashMap(保留插入顺序)。文章通过示例演示了Map的基本操作(增删改查)和三种遍历方式,并对比了Map与单列集合Set的差异。最后介绍了Collections工具类提供的排序、反转等静态方法。作者建议通过实践掌握集合的使用,并留下练习题供读者思考。

2025-08-14 20:45:08 1523 1

原创 自然排序VS比较器排序

本文深入探讨了Java中TreeSet的两种排序方式:自然排序和比较器排序。自然排序通过实现Comparable接口并重写compareTo()方法实现,适用于自定义类排序;比较器排序则通过Comparator接口实现,在不修改源代码的情况下支持多种排序规则。文章详细演示了两种排序方式在Integer、String和自定义类中的应用,对比了两者的特点(自然排序代码复用但规则单一,比较器排序灵活但需重复定义),并提供了三个典型练习及其完整解答。最后总结了不同集合类的排序特性,帮助开发者根据实际需求选择合适的集

2025-08-13 19:41:07 1542

原创 集合,完整扩展

本文梳理了Java集合框架中List和Set接口的核心特点与实现类。List接口有序、可重复、支持索引,包含ArrayList(查询快增删慢)、LinkedList(增删快查询慢)和Vector(线程安全)三种实现;Set接口无序、不可重复,包含HashSet(哈希表去重)、TreeSet(自动排序)和LinkedHashSet(保持插入顺序)三种实现。文章通过代码示例展示了各集合类的典型用法,并给出应用场景建议:有序需求用List,去重要求用Set;查询多用ArrayList,增删多用LinkedList

2025-08-12 18:32:44 1018

原创 Java第十二课 集合

本文介绍了Java集合框架的核心概念与应用。通过对比数组的局限性(长度固定、操作不便等),引出集合的优势:动态扩容、灵活存储和丰富操作方法。重点讲解了Collection接口及其实现类ArrayList的用法,包括add/remove/contains等核心方法,以及三种遍历方式(普通for、迭代器、增强for)。同时解答了集合不存基本类型、hashCode取值等常见问题,并揭示了ArrayList的扩容机制(初始10,1.5倍增长)。文章通过学生管理案例,演示了集合在实际开发中的应用场景。

2025-08-12 10:24:31 1233

原创 Java枚举类

Java枚举类(Enum)是一种特殊的类,用于表示固定常量集合。它提供了类型安全性、代码可读性和功能扩展性,解决了传统常量的类型安全问题。枚举类具有私有构造器,元素是唯一实例,可包含属性和方法,甚至支持抽象方法。与普通final类不同,枚举类不能外部实例化,内置values()等方法,且元素具有唯一性。典型应用场景包括表示性别、星期等固定集合。枚举类既保证了类型安全,又增强了代码可读性,是处理固定常量集合的理想选择。

2025-08-11 18:29:19 1001

原创 Java基础语法

本文系统介绍了Java编程基础语法,涵盖6大核心知识点:1.数据类型(8种基本类型及变量作用域)2.运算符(算术、逻辑、位运算等6类)3.流程控制(顺序/分支/循环结构)4.数组(定义、操作及常用算法)5.方法(定义、调用与方法重载)6.学习建议(实践为主,分享交流)。重点讲解了类型转换规则、运算符特性、循环结构应用场景、数组操作技巧等实用内容,并配有代码示例。适合Java初学者构建知识框架或开发者快速复习基础语法,强调动手实践与知识分享的重要性。

2025-08-08 17:27:37 1031 2

原创 Java第十一课 包装类

本文摘要:本文系统介绍了Java中的包装类、Object类和String类三大核心概念。首先讲解了基本类型与包装类的转换机制,包括手动/自动装箱拆箱原理和Integer常量池优化;其次剖析了Object类作为所有类父类的重要方法(toString()、equals()、getClass());最后深入解析String类的不可变特性、字符串常量池机制及拼接原理。通过内存图分析和代码示例,揭示了"=="与equals()的区别、自动装箱的常量池范围限制(-128~127)等面试常考点,为理解

2025-08-07 17:28:04 934

原创 Java第十课 内部类

本文介绍了Java中的四种内部类:成员内部类、静态内部类、局部内部类和匿名内部类。成员内部类可访问外部类的所有成员,但会造成高耦合;静态内部类只能访问外部类的静态成员;局部内部类作用域限于方法内部,访问的变量需为final;匿名内部类常用于快速实现接口和抽象类。每种内部类都有其适用场景:成员内部类适合表示包含关系,静态内部类适合独立功能,局部内部类适合方法内部使用,匿名内部类适合简化接口实现。理解这些内部类的特点有助于编写更清晰、高效的Java代码。

2025-08-06 18:23:57 1692

原创 Java第九课 抽象,接口

本文深入解析Java面向对象编程的四个核心概念,重点介绍抽象类和接口。抽象类通过abstract关键字定义,不能实例化但可包含普通属性和抽象方法,要求子类必须实现所有抽象方法。接口(interface)是完全抽象的"契约",只定义方法签名,支持多实现以突破单继承限制。两者的关键区别在于:抽象类体现"是什么"的关系,接口体现"能做什么"的能力。文章通过动物类继承和技能接口实现的生动案例,配合完整代码演示,阐明了如何利用抽象类和接口构建灵活、可扩展的J

2025-08-05 16:36:59 1097

原创 Java第八课 instanceof关键字详解

【摘要】本文详细讲解了Java中instanceof关键字的使用及其在多态编程中的重要作用。instanceof用于判断对象是否为某个类/接口的实例,语法为对象引用 instanceof 类名/接口名,返回布尔值。文章通过Animal-Dog-Cat示例演示了如何在向下转型前用instanceof确保类型安全,避免ClassCastException。特别说明了对null、接口类型和继承关系的处理方式,并对比了instanceof与getClass()的区别。最后通过实现一个通用isEqual方法的练习题,

2025-08-04 20:27:21 1334

原创 Java第七课 多态

本文详细介绍了Java中的多态概念及其应用。多态是面向对象编程的三大特性之一,指基于继承关系,同一事物表现出多种形态。实现多态需要满足继承、方法重写和父类引用指向子类对象三个条件。文章通过动物类示例展示了多态的具体实现,包括向上转型和向下转型的用法与特点。多态的核心优势在于提高代码灵活性、复用性和扩展性,使程序更符合开闭原则。文中还介绍了引用数据类型转型机制及注意事项,并提供了判断值相等的多态实现示例,帮助读者深入理解多态在实际编程中的应用价值。

2025-08-04 15:50:30 1315

原创 java第六课,重写与重载

本文总结了Java类的基础知识,重点讲解了封装、构造器、静态块和匿名块的使用。通过Employee类示例展示了成员变量封装、不同构造器的实现,以及静态块和匿名块的执行顺序。在继承方面,以Programmer和Manner类为例说明了super关键字的使用和构造器调用规则。最后详细区分了方法重写(Override)和重载(Overload)的关键区别,包括使用场景、参数列表、返回值、权限修饰符和异常处理等方面的对比,强调重写必须保持方法签名一致而重载需要参数不同。

2025-08-01 11:43:10 1027

原创 java第五课 继承

本文系统讲解了Java继承的核心知识,包括继承的特点、细节、优缺点和使用时机。重点阐述了单继承机制、成员访问规则、super和this关键字的使用方法,并通过代码示例展示了继承在提高代码复用性和维护性方面的优势。同时指出继承会带来耦合度增加、子类独立性降低等问题,强调应遵循"isa"关系合理设计继承结构。文章还介绍了Object类作为所有类的父类的重要性,以及继承的内存机制,最后总结了继承使用的最佳实践,为后续学习多态奠定基础。

2025-07-31 20:29:18 981

原创 java第四课 static关键字

static关键字用来表示某个成员属于类本身而不是类的实例。在 Java 世界里,static关键字就像一个 “特殊标记”,给成员(变量、方法、代码块等)赋予独特的能力。它能让成员跳出 “对象专属” 的限制,直接和类产生关联。接下来,咱们一步步揭开它的神秘面纱,学会用static写出更灵活、高效的代码!静态成员变量;静态方法;静态代码块;静态类。那么首先,从我们的静态变量开始介绍。对比项静态成员(static)非静态成员(非 static)所属者属于类,所有对象共享属于单个对象。

2025-07-31 15:50:46 831

原创 java第三课,对象与类

在我们的日常生活中,我们所能接触到的自然界的万事万物皆为对象。放眼望去,我们身边的能看到的东西,都是对象,例如桌子、话筒、笔记本电脑、电脑键盘、你、你的鞋子、眼睛等等。对象无处不在。了解对象(1)任何事物都是一个对象;(2)对象由对象组成;(3)每个对象都有属性(静态的描述行为)和方法(动态的功能描述);(4)具有相似属性和行为的对象可以归位一类。那么我有一个朋友,他有一个对象,请问他的对象对于我们来说算不算对象?

2025-07-30 23:08:10 1104

原创 java第二课,随机数Random

在生活中,我们大家都玩过掷骰子,抽过奖,洗过牌,那么这种“随机”有什么特点吗?我们java如何模拟这些行为。在java中,我们所生成的随机数都是伪随机数,因为计算机无法生成真随机数,真随机数需要依赖物理现象。(java通过算法生成,种子决定序列)

2025-07-30 12:00:46 1196

原创 java第一课,输入Scanner

/ 设置分隔符为逗号Scanner的本质是标记化解析器,默认以空白字符(空格、换行等)为分隔符,而useDelimiter(String pattern)允许通过正则表达式自定义分隔规则,将输入内容拆分为多个 "标记"。本代码中:输入字符串"Hello,World,Java"被逗号,分隔,将逗号设置为分隔符后,字符串被拆分为三个标记:Hello、World、Java。接下来,我会对本段代码进行拆解,以方便大家看懂。

2025-07-29 17:21:49 847

原创 java数组函数的应用,如复制,排序,查找,填充,转换,扩容。

在 Java 中,数组是一种基础的数据结构,针对数组的操作主要依靠Arrays类提供的工具方法以及数组对象自身的属性和方法。//System.arraycopy(被复制数组,从数组哪里开始复制,复制到的数组,复制到数组哪里,复制长度);//将arr数组中,从位置1(包括)到位置2(不包括)填充为10->{1,10,5}//将arr数组中的所有元素填充为10->{10,10,10}//将数组扩大为原来的两倍,结果->{1,6,5,0,0,0}//定义一个和要复制数组大小相同的数组。//获取数组的长度,为3;

2025-07-22 19:47:16 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除