- 博客(52)
- 收藏
- 关注
原创 掌握Request对象:请求行与参数获取技巧
本文摘要主要介绍了Servlet中Request对象的概念与使用方法,包括请求行、请求头和请求体的数据获取,以及请求转发的实现。文章首先概述了Request和Response对象的作用,Request用于获取请求数据,Response用于设置响应数据。接着详细讲解了Request对象的继承体系,重点介绍了获取请求行、请求头和请求体数据的方法,如getMethod()、getHeader()和getReader()等。此外,还介绍了通用的请求参数获取方式,通过getParameterMap()、getPara
2026-06-10 20:11:54
287
原创 Java订单管理系统:轻松打印商品信息
摘要:本文实现了一个订单管理系统,通过集合嵌套和双重循环处理多个订单及其商品项。系统包含ProductItem类存储订单项信息(ID、编号、商品编号、名称、价格),Test02类创建订单集合并使用随机数生成订单编号。通过双重for循环遍历订单集合,将每个订单项的商品信息格式化输出到控制台,最终展示各订单项的完整信息并以分隔线区分不同项。
2026-06-09 19:52:54
233
原创 Java进阶io流
以前是因为知识储备还不够,无法解释,到现在就可以给同学们揭晓谜底了,因为System里面有一个静态变量叫out,out的数据类型就是PrintStream,它就是一个打印流,而且这个打印流的默认输出目的地是控制台,所以我们调用。打印流可以实现更加方便,更加高效的写数据的方式。打印流,这里所说的打印其实就是写数据的意思,它和普通的write方法写数据还不太一样,一般会使用打印流特有的方法叫。接下来,学习ObjectInputStream流,它也是一个包装流,不能单独使用,需要结合原始的字节输入流使用。
2026-06-03 19:46:17
224
原创 Java缓冲流原理与应用解析
本文介绍了Java中的缓冲流和转换流。缓冲流(包括字节缓冲流和字符缓冲流)通过内置8KB缓冲区提高原始流的读写性能,需要包装原始流使用。字节缓冲流使用字节数组,字符缓冲流使用字符数组,并提供了readLine()等便捷方法。转换流(InputStreamReader和OutputStreamWriter)解决字符编码不一致导致的乱码问题,可将字节流按指定编码转为字符流。文章通过代码示例演示了如何使用缓冲流复制文件、按行读取文本,以及转换流正确处理不同编码文件的方法。
2026-06-02 20:24:11
224
原创 Java IO流:字节流实战与性能优化
本文摘要主要介绍了Java IO流中的字节流和字符流操作。首先阐述了IO流的基本概念和作用,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer)两大体系。重点讲解了FileInputStream的三种读取方式(单字节、多字节、全字节读取)及各自优缺点,以及FileOutputStream的写操作和文件复制应用。随后详细说明了资源释放的两种方式:JDK7之前的try-catch-finally和JDK7引入的try-with-resources自动关闭机制。
2026-06-01 20:12:11
289
原创 字符集与IO流
本文介绍了字符集的基础知识及其在Java中的应用。主要内容包括:1. 字符集的发展历程,从ASCII字符集到各国本地字符集(如GBK),再到统一字符集Unicode及其常用编码方案UTF-8;2. 不同字符集的存储特点,如GBK中汉字占2字节、UTF-8中汉字占3字节;3. Java中通过String类实现编码(字符串转字节数组)和解码(字节数组转字符串)的操作方法,强调编码与解码字符集必须一致;4. 指出英文字符和数字通常不会乱码,因为多数字符集兼容ASCII编码。这些知识是学习IO流前的重要基础。
2026-05-31 19:27:25
496
原创 递归算法:从入门到精通
本文介绍了递归算法的基本概念和应用。递归是指方法调用自身的过程,分为直接递归和间接递归两种形式。文章通过阶乘计算的例子详细讲解了递归的执行流程,强调递归必须包含终止条件以避免死循环和栈溢出。最后演示了如何利用递归算法实现文件搜索功能,通过遍历文件夹及其子文件夹来查找指定文件。递归算法的核心要素包括:递归公式、终止条件和递归方向。该技术在文件系统遍历等场景中具有重要应用价值。
2026-05-26 15:51:57
741
原创 Java File类操作指南
本文介绍了Java中File类的基本用法,主要包括:1)File类的作用是操作文件和文件夹,但不能操作文件内容;2)创建File对象的三种方式(绝对路径、相对路径和使用File.separator);3)File类提供的判断方法(exists()、isFile()、isDirectory())和获取信息方法(getName()、length()等);4)文件和文件夹的创建与删除方法(createNewFile()、mkdir()、mkdirs()、delete());5)遍历文件夹的方法(list()和li
2026-05-25 20:02:06
740
原创 面向对象和集合编程题 ( 二 )
本文介绍了图书管理和订单商品统计两个Java编程案例。图书管理部分通过TreeSet实现图书的去重和排序,重写equals()和hashCode()方法确保ISBN唯一性,并实现Comparable接口定义价格升序和书名字典序的多条件排序规则。订单统计部分展示了对象聚合关系,使用Stream API进行订单分组、金额统计和商品销量分析,包括按用户ID分组订单、计算总消费金额、平台总营业额以及找出销量最高商品。两个案例都提供了完整的代码实现和运行结果验证,涵盖了集合操作、对象比较、流式处理等核心Java编程技
2026-05-24 19:15:01
760
原创 面向对象和集合编程题 ( 一 )
类的成员变量私有化,提供 getter/setter 访问构造方法、toString()重写,规范对象的创建与输出:Lambda 表达式简化比较器写法,避免直接减法的精度问题多条件排序:先主条件,后次要条件,用if-else实现extends关键字实现类的继承,子类复用父类代码;super关键字:子类调用父类构造、成员变量、方法;父类属性私有化,子类通过getter访问,符合封装规范。
2026-05-21 19:13:29
795
原创 Java Map集合详解与实战
本文摘要: 本文系统介绍了Java中Map集合和Stream流的核心知识。主要内容包括: Map集合基础 Map是键值对集合,键唯一,值可重复 常用实现类:HashMap(无序)、LinkedHashMap(有序)、TreeMap(排序) 核心方法:put/get/remove/containsKey等 Map集合进阶 HashMap底层哈希表原理(数组+链表/红黑树) 自定义对象作为键需重写hashCode和equals方法 集合嵌套应用示例 Stream流操作 创建方式:集合.stream()/Arra
2026-05-20 19:14:38
394
原创 JDK8 Stream流:高效集合操作新利器
JDK8 Stream流是操作集合/数组的新API,结合Lambda语法实现简洁高效的数据处理。主要特性包括:1. 创建方式:集合通过stream()方法获取,数组通过Arrays.stream()或Stream.of();2. 中间方法(链式调用):如filter过滤、sorted排序、limit截取等;3. 终结方法(返回非流结果):如count计数、collect收集到集合、toArray转为数组等。通过案例对比可见,Stream流能以更简洁的代码实现复杂的数据处理,如过滤姓张的三字姓名只需一行链式调
2026-05-18 20:55:27
600
原创 深入解析HashMap、LinkedHashMap与TreeMap
比如有如下案例:往HashMap集合中存储Student对象作为键,学生的家庭住址当做值。要求,当学生对象的姓名和年龄相同时就认为键重复。// this o@Override// 年龄升序排序@Override@Override//...get,set方法自己补全....@Override'}';写一个测试类,在测试类中,创建HashMap集合,键是Student类型,值是Stirng类型/**
2026-05-17 19:19:52
883
原创 Java Map集合详解与实战
摘要:本文介绍了Java中的Map集合(双列集合),其元素以键值对(key=value)形式存储,键不允许重复。Map集合的实现类包括HashMap(无序)、LinkedHashMap(有序)和TreeMap(排序)。文章详细讲解了Map集合的常用方法,如put、get、remove等,并展示了三种遍历方式:键找值、键值对和forEach方法。最后通过一个统计投票人数的案例,演示了Map集合的实际应用。Map集合适用于需要存储一一对应数据的场景,是Java集合框架中的重要组成部分。
2026-05-14 20:23:20
799
原创 LinkedHashSet与TreeSet底层原理详解
本文详细介绍了Java集合框架中的LinkedHashSet和TreeSet两种集合的实现原理及使用方法。LinkedHashSet通过哈希表+双向链表结构实现有序存储,保证元素插入顺序;TreeSet基于红黑树实现自动排序,支持自定义排序规则(通过Comparable接口或Comparator比较器)。文章还讲解了Collections工具类的常用方法(如排序、洗牌等)和可变参数特性,并通过斗地主案例演示了集合的综合应用。最后总结了Collection集合体系的特点及适用场景,包括ArrayList、Li
2026-05-13 20:21:20
760
原创 Java集合进阶:Set与Collections详解
本文介绍了Java中Set集合及其实现类的特点与底层原理。Set集合具有无序、不重复的特点,主要包含HashSet、LinkedHashSet和TreeSet三种实现。HashSet基于哈希表实现,通过hashCode()和equals()方法确保元素唯一性;LinkedHashSet在哈希表基础上增加双向链表维护元素顺序;TreeSet则通过红黑树实现自动排序。文章详细解析了哈希表的结构演变(JDK8引入红黑树优化)、哈希值计算原理以及HashSet去重机制,强调重写hashCode()和equals()
2026-05-12 20:03:53
638
原创 Java集合框架:List集合详解与应用
本文介绍了Java中List集合的相关知识,包括ArrayList和LinkedList的实现原理及应用场景。ArrayList基于数组实现,查询快但增删慢,适合索引查询和小数据量操作;LinkedList基于双向链表实现,首尾操作高效但查询较慢,适合实现队列和栈结构。文章详细演示了List集合的常用方法、四种遍历方式,并通过代码示例展示了如何用LinkedList模拟队列(先进先出)和栈(先进后出)结构。最后总结了两种List实现的特点及适用场景,为开发者选择合适的数据结构提供了参考。
2026-05-11 20:07:49
1044
原创 Java集合进阶:Collection与List详解
本文介绍了Java集合框架中的Collection集合及其常用方法。主要内容包括:1. 集合分类:单列集合(Collection)和双列集合(Map),其中Collection又分为List(有序可重复)和Set(无序不重复)两大体系。2. Collection常用方法:add()、size()、contains()、remove()、clear()等,这些方法适用于所有Collection实现类。3. 集合遍历方式:迭代器遍历(Iterator)、增强for循环(适用于集合和数组)、forEach方法(J
2026-05-10 19:12:57
665
原创 Java方法引用与排序算法精讲
本文介绍了Java中的方法引用、常见算法及异常处理的核心知识点: 方法引用: 特定类型方法引用语法(ClassName::methodName) 构造器引用语法(ClassName::new) 通过Lambda表达式简化代码示例 常见算法: 选择排序实现原理及代码示例 二分查找算法实现(要求有序数组) 基本查找与二分查找的性能对比 异常处理: 异常分类(Error/Exception,运行时/编译时异常) 自定义异常实现(继承RuntimeException或Exception) 异常处理方式(throws
2026-05-07 16:59:54
693
原创 Java8新特性:Arrays与Lambda实战解析
本文介绍了Java中Arrays工具类的基本使用方法,包括数组遍历、拷贝、排序等操作,重点讲解了如何通过实现Comparable接口或使用Comparator比较器对对象数组进行排序。随后详细阐述了JDK8的Lambda表达式特性,展示了如何逐步简化匿名内部类的写法,包括参数类型省略、单行代码省略大括号等简化规则。最后介绍了方法引用的两种形式:静态方法引用(类名::方法名)和实例方法引用(对象名::方法名),通过具体案例演示了如何用方法引用进一步简化Lambda表达式。这些新特性在保证功能完整性的同时,显著
2026-05-06 19:32:51
527
原创 Java日期处理:从Calendar到JDK8新特性
本文介绍了Java中处理日期时间的核心类及其使用方法。首先讲解了Calendar类相比Date类的优势,包括更方便的日期运算和更丰富的API。然后详细阐述了JDK8新增的日期时间API,包括LocalDate、LocalTime、LocalDateTime等不可变类,以及时区处理类ZoneId和ZonedDateTime。文章还介绍了Instant类用于精确时间记录,DateTimeFormatter用于日期格式化,以及Period和Duration类分别用于计算日期间隔和时间间隔。这些新API解决了传统D
2026-04-23 16:46:27
711
原创 Java 四大常用 API:Runtime 运行时、BigDecimal 高精度计算、Date 日期、SimpleDateFormat 格式化
本文介绍了Java中几个常用API的使用方法: Runtime类:用于获取JVM信息,包括可用处理器数、内存情况等,并能执行外部程序。 BigDecimal类:解决浮点数运算精度问题,提供精确的四则运算方法,支持保留指定小数位。 Date类:表示日期时间,基于1970年1月1日开始的毫秒值计算,提供时间获取和修改方法。 SimpleDateFormat类:实现日期格式化和解析,可将Date对象转换为指定格式字符串,或将字符串解析为Date对象,支持自定义日期格式。 这些API分别处理JVM运行时环境、精确数
2026-04-22 19:03:55
793
原创 Java Math类核心用法全解析
Math是静态工具类,无需实例化,直接调用静态方法;取整、随机数、绝对值、最大 / 最小值、幂 / 开方;三角函数需注意角度转弧度,浮点运算注意精度问题。Math是数学的意思,该类提供了很多个进行数学运算的方法,如求绝对值,求最大值,四舍五入等。话不多说,直接上代码。// 目标:了解下Math类提供的常见方法。// 1、public static int abs(int a):取绝对值(拿到的结果一定是正数)// 12// 123// 3.14。
2026-04-21 19:43:20
704
原创 Java StringBuilder 高效字符串操作指南
Java 8+ 专用,用于分隔符拼接字符串分隔符 + 前缀 + 后缀add()toString()String.join(分隔符, 列表)比更适合带格式的字符串拼接接下来,我们学习一个类叫做StringJoiner,学习这个类干嘛用呢?是因为我们前面使用StringBuilder拼接字符串的时,代码写起来还是有一点麻烦,而StringJoiner号称是拼接神器,不仅效率高,而且代码简洁。下面演示一下StringJoiner的基本使用//结果为: java1,java2,java3。
2026-04-20 19:24:33
577
原创 掌握Java API:从Object类开始
本文介绍了Java中常用API的使用方法,重点讲解了Object类、Objects工具类和基本类型包装类的核心功能。主要内容包括:1. Object类的toString()、equals()和clone()方法的使用及重写;2. Objects工具类提供的安全对象操作方法;3. 基本类型包装类的自动装箱/拆箱机制以及字符串与基本类型间的转换方法。文章通过代码示例详细演示了如何正确使用这些API,并强调了多练习的重要性。这些API是Java编程的基础工具,掌握它们能够有效提升开发效率和代码质量。
2026-04-19 19:21:11
584
原创 Java枚举与泛型实战指南
本文介绍了Java中的枚举和泛型两个重要概念。枚举是一种特殊的类,用于表示一组固定的常量值,其特点是构造器私有、不可继承、第一行只能罗列枚举项。枚举适用于表示有限选项的场景,如性别选择。泛型通过在类、接口或方法中声明类型变量,实现对数据类型的约束和自动检查,避免强制类型转换错误。文章详细讲解了自定义泛型类、泛型接口和泛型方法的使用方式,并介绍了泛型限定(通配符)和泛型擦除的特性。泛型只支持引用数据类型,在编译后会被擦除。这些特性使代码更安全、可读性更好。
2026-04-16 19:09:28
595
原创 Java面向对象编程实战:薪资系统与交通调度
本文摘要: 本文通过三个面向对象编程案例,系统性地展示了Java核心特性的应用。案例一构建员工薪资管理系统,使用抽象类定义规范,通过继承实现代码复用,利用多态统一调用,static实现全局共享。案例二设计交通工具调度系统,通过继承搭建类层级,final保护核心规则,方法重写实现差异化逻辑,多态完成统一调度。案例三实现商品库存统计系统,综合运用抽象类、继承、多态、static和final五大特性,完成商品统一管理、自动库存统计与总价值计算。三个案例层层递进,完整呈现了面向对象编程的封装、继承、多态三大特性,以
2026-04-15 19:25:52
691
原创 Java接口与内部类深度解析
摘要:本文系统讲解了Java面向对象高级特性中的接口、内部类、枚举和泛型。重点介绍了接口的定义、实现及其优势(弥补单继承不足、支持多业务切换),通过学生管理系统案例展示了接口的实际应用。详细解析了四种内部类(成员、静态、局部和匿名内部类)的特点与使用场景,特别强调匿名内部类作为方法参数的常见用法。此外,简要介绍了JDK8接口新特性(默认方法、私有方法和静态方法)以及枚举和泛型的基础知识。这些知识点构成了Java面向对象编程的核心内容,对提升代码灵活性和可维护性具有重要意义。
2026-04-14 19:29:29
743
原创 Java薪资系统:抽象类与多态实战
摘要:本文通过三个Java案例系统讲解面向对象编程核心概念。案例一(员工薪资系统)展示抽象类Employee定义规范,子类FullTimeEmployee/PartTimeEmployee实现多态薪资计算,static共享公司名,final确保工号唯一。案例二(交通调度系统)强化继承与多态应用。案例三(商品库存系统)使用final保证商品信息不可变,static自动统计库存,抽象方法强制子类实现定价策略。三个案例均体现:1)抽象类定义统一规范;2)继承实现代码复用;3)多态统一处理子类;4)static管理
2026-04-08 19:06:11
963
原创 Java final关键字与抽象类深度解析
本文介绍了Java中final关键字和抽象类的核心概念与应用。final关键字可修饰类、方法和变量:修饰类表示不可继承,修饰方法表示不可重写,修饰变量表示只能赋值一次。static final联合使用可定义常量,编译时会进行宏替换优化性能。 抽象类通过abstract关键字定义,可包含抽象方法(无方法体)和普通成员。其核心特点是:1)不能实例化,必须由子类继承实现;2)子类必须重写所有抽象方法,否则自身也需声明为抽象类。抽象类适用于提取共性代码、支持多态和系统扩展。 文中还介绍了模板方法设计模式,通过抽象类
2026-04-07 19:31:57
771
原创 Java多态、final与抽象类:面向对象编程进阶指南
本文介绍了面向对象编程中的多态、final和抽象类等高级特性。重点讲解了多态的概念、实现方式及其优势:1)多态表现为对象多态和行为多态,前提是存在继承关系、父类引用子类对象和方法重写;2)多态提高了代码的扩展性和维护性,使程序解耦合;3)通过类型转换可以调用子类特有方法,但需注意类型转换异常。此外还提及了final关键字和抽象类的使用,这些特性共同增强了Java代码的灵活性和复用性。
2026-04-06 19:19:11
710
原创 Java方法重写:子类如何覆盖父类
本文介绍了Java中方法重写和子类构造器的核心概念。方法重写是指子类重新定义与父类同名同参数的方法,通过@Override注解确保正确性,需遵循访问权限不小于父类、返回值类型相同等规则。子类构造器会默认调用父类无参构造器super(),也可手动调用父类有参构造器super(参数)初始化父类成员。同时可通过this()调用本类其他构造器,但需注意this()和super()都必须在构造器首行。这些特性实现了父子类成员的差异化处理和初始化逻辑的灵活控制,是面向对象继承体系的重要机制。
2026-04-05 19:05:07
428
原创 23种设计模式全解析
23种设计模式核心知识点精要 设计模式是解决软件工程中常见问题的成熟方案,由GoF四人组提出,分为三大类: 一、创建型模式(5种) 单例模式:确保类唯一实例 工厂方法:子类决定实例化对象 抽象工厂:创建相关对象族 建造者:分步构建复杂对象 原型:通过克隆创建对象 二、结构型模式(7种) 适配器:接口转换 桥接:抽象与实现分离 组合:树形结构处理 装饰器:动态添加功能 外观:简化子系统接口 享元:共享细粒度对象 代理:控制对象访问 三、行为型模式(11种) 责任链:请求传递链 命令:封装请求为对象 解释器:语
2026-04-02 19:17:31
613
原创 Java继承入门:掌握代码复用技巧
本文介绍了Java面向对象编程中的继承机制。主要内容包括:1)继承的基本概念和使用方法,通过extends关键字建立父子类关系,子类可继承父类非私有成员;2)继承的优势,如提高代码复用性,减少重复代码;3)四种权限修饰符(private、缺省、protected、public)的作用范围;4)Java单继承特性及Object类的特殊地位,所有类都直接或间接继承自Object类。通过代码示例展示了继承的具体应用,包括子类访问父类成员的限制、不同包下的访问权限等,帮助理解继承在Java编程中的实际运用。
2026-04-01 21:01:37
639
原创 Java面向对象高级:static与extends精讲
本文讲解了Java面向对象编程中static关键字的用法及其应用场景。主要内容包括:1) static修饰成员变量(类变量)和成员方法(类方法)的区别及调用方式;2) 工具类的概念和使用方法;3) static的注意事项,包括类方法中不能访问实例成员等限制;4) 静态代码块和实例代码块的特点及执行时机;5) 单例设计模式的两种实现方式(饿汉式和懒汉式),以及单例模式的应用场景和优势。文章通过代码示例详细说明了static在Java编程中的各种用法,强调这些知识点是Java面向对象编程的核心内容,掌握它们可以
2026-03-31 21:11:28
926
原创 学生成绩管理系统设计与实现
本文介绍了一个基于Java的控制台版学生成绩管理系统,采用三层架构设计,包含学生端和管理员端两大角色。系统实现了学生信息管理、成绩管理、登录验证、数据排序等功能,核心功能包括:随机生成唯一学号、密码修改、成绩范围校验、按总分排序等。技术实现上运用了面向对象编程、ArrayList集合、流程控制语句等Java基础技术,并借鉴ATM系统的设计模式进行权限控制。该系统结构清晰,模块化程度高,体现了Java面向对象编程的核心思想,是一个典型的Java入门综合实践项目。
2026-03-30 19:48:15
873
原创 Java实现银行ATM模拟系统全流程(解题思路 + 核心知识点整理)
先设计账户实体类,封装所有属性;搭建ATM 操作类,定义集合、扫描器、登录变量;实现系统入口,展示登录 / 开户菜单;逐一对接核心功能,先完成基础流程,再补充校验逻辑;测试所有功能,修复空指针、输入异常等问题。面向对象 + 集合存储 + 流程控制,先理清业务流程再写代码;ArrayListScanner、字符串比对、方法封装、循环校验;设计思想:数据与操作分离,代码复用,提升系统健壮性和易用性。
2026-03-24 17:26:09
746
原创 手机充值系统开发全解析(解题思路分析+知识点总结)
本文设计实现了一个基于Java的手机充值系统,采用面向对象思想将系统拆分为用户管理、充值记录、业务逻辑和交互界面四个模块。系统核心功能包括手机号格式校验、充值金额范围检查、用户自动创建、余额查询和充值记录查询。通过控制台菜单实现用户交互,使用正则表达式验证手机号,采用集合存储用户和充值记录数据。重点解决了参数校验、业务解耦和异常处理等问题,确保了系统的健壮性。代码实现中严格遵循封装原则,避免直接暴露属性,并通过单元测试验证了各种正常和异常场景下的系统行为。
2026-03-23 19:43:41
891
原创 ATM系统开发(二):开户与登录功能详解
唯一卡号生成:通过「随机数拼接 + 循环校验」保证卡号唯一性,循环是实现 “直到生成唯一值” 的关键;集合的遍历与查找:利用ArrayList存储账户,通过索引遍历 +equals()方法实现卡号精准查询;登录逻辑设计:分层校验(先查账户是否存在 → 再查卡号 → 最后查密码),双层循环处理用户输入错误的情况,loginAcc变量维护登录状态;面向对象封装Account类封装账户属性(卡号、密码、余额等),通过方法访问和修改属性,符合 Java 封装特性。
2026-03-22 19:12:51
621
原创 Java基础项目(ATM系统一)
本文介绍了ATM系统开发项目,通过控制台模拟实现银行ATM机的基本功能。项目采用面向对象编程思想,使用Java语言开发,主要功能包括用户登录、开户、查询等操作。系统架构包含Account类封装账户信息、ATM类管理业务逻辑、以及测试类启动系统。重点讲解了开户功能的实现过程,包括用户信息录入、数据校验(性别、密码一致性等)及账户存储。项目综合运用了面向对象封装、集合容器、流程控制等核心技术,体现了模块化设计和数据安全性原则,适合Java初学者实践核心编程概念。
2026-03-19 17:26:37
614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅