自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Java---FileReader 和 FileWriter 介绍

摘要:FileReader和FileWriter是Java中用于字符流操作的类。FileReader提供read()方法读取单个字符或批量读取到char数组;FileWriter提供多种写入方式,包括写入字符、数组、字符串及其指定部分。使用时需注意:FileWriter必须调用close()或flush()才能确保数据写入文件。示例演示了如何读取文件内容以及如何将字符串"风雨之后,定见彩虹"写入文件。两个类都需在finally块中关闭资源。

2025-12-31 11:29:21 309

原创 Java---IO流原理和分类

Java IO流是处理数据传输的核心技术,主要用于文件读写和网络通信。流分为字节流(8bit)和字符流(按字符),按流向分为输入流和输出流,按角色分为节点流和处理流。Java IO流体系基于四个抽象基类:InputStream、OutputStream、Reader和Writer。常用子类包括FileInputStream、BufferedInputStream等。文件读取可通过单字节或字节数组方式,后者效率更高。使用IO流需注意异常处理和资源释放。示例代码演示了如何使用FileInputStream读取文

2025-12-30 18:47:53 222

原创 Java-文件

本文介绍了文件操作的基本概念和Java中的实现方法。文件是存储数据的基本单位,程序通过文件流(输入/输出流)与文件交互。文章详细讲解了三种创建文件对象的方法:直接路径构建、父目录+子路径构建,以及文件对象+子路径构建。同时展示了获取文件信息的方法,如获取文件名、路径、大小等属性。最后介绍了目录操作,包括创建单级/多级目录(mkdir/mkdirs)和删除文件/目录的操作。这些方法通过JUnit测试案例进行了演示,为Java文件操作提供了实用参考。

2025-12-29 11:18:19 285

原创 JAVA-线程

本文介绍了线程的基本概念和使用方法。主要内容包括:1.线程与进程的区别,线程是进程的执行实体;2.创建线程的两种方式(继承Thread类和实现Runnable接口);3.线程常用方法(start、run、sleep等)和状态(NEW、RUNNABLE等);4.线程同步机制,通过synchronized关键字实现互斥锁;5.线程死锁概念及避免方法;6.两个练习案例:线程间通信和账户取款的线程同步问题。文章通过代码示例详细说明了多线程编程的基本原理和实践方法。

2025-12-24 10:31:25 574

原创 Java---事件处理机制

Java采用"委派事件模型"处理事件,由事件源产生事件对象并传递给事件监听器处理。该机制包含三个核心要素:事件源(如按钮、窗口)、事件对象(承载状态信息)和事件监听器(实现特定接口的类)。不同事件类型(键盘、鼠标等)对应不同监听器接口,一个类可实现多个接口处理多种事件。相关接口定义在java.awt.event和javax.swing.event包中,开发者通过实现这些接口来创建自定义事件处理器。

2025-12-14 21:55:41 212

原创 Java---小球移动案例(附代码)

【代码】Java---小球移动案例(附代码)

2025-12-14 16:07:18 151

原创 Java---泛型

Java泛型是JDK5.0引入的特性,通过类型参数实现代码重用和类型安全。泛型类、接口和方法可以处理多种数据类型,在编译时检查类型,避免运行时类型转换异常。主要特点包括:1)只能使用引用类型;2)支持类型推断;3)可定义泛型上限(? extends)和下限(? super)。泛型提高了代码安全性、减少了类型转换,但静态成员不能使用泛型。通过自定义泛型类DAO<T>的案例演示了泛型的实际应用,包括保存、查询、更新和删除操作。JUnit单元测试简化了泛型方法的验证过程。

2025-12-12 18:24:18 808

原创 Java---集合

本文介绍了Java集合框架的核心概念和使用方法。主要内容包括:1)集合的基本概念和分类(单列集合Collection和双列集合Map);2)Collection接口的常用方法(add、remove、contains等)和两种遍历方式(迭代器和增强for循环);3)List接口特点(有序、可重复)及其实现类ArrayList、LinkedList和Vector的对比;4)Set接口特点(无序、不可重复)及其实现类HashSet和LinkedHashSet;5)底层数据结构分析,包括数组、链表和红黑树的应用场景

2025-12-04 16:35:29 553

原创 Java---Collection 工具类

Java中的Collections工具类提供了操作集合的静态方法,主要包括排序、查询和修改等功能。常用方法包括:reverse()反转列表顺序,shuffle()随机排序,sort()自然排序或按比较器排序,swap()交换元素位置,max()/min()查找最值,frequency()统计元素出现次数,copy()复制集合内容,以及replaceAll()替换元素值。这些方法适用于List、Set和Map等集合类型,通过Collections类名直接调用,极大简化了集合操作。

2025-12-04 16:33:16 259

原创 Java---Map 接口

Java中的Map接口是用于存储键值对的双列集合,常见实现类包括HashMap、TreeMap和LinkedHashMap。Map的特点包括:键不可重复但值可重复;允许键值为null(键null只能一个);常用String作为键;通过get()方法实现键到值的单向映射。Map提供了put()、remove()、get()、size()等基本操作方法,以及keySet()、entrySet()、values()三种遍历方式。HashMap底层采用数组+链表+红黑树结构,默认初始容量16,负载因子0.75,当链

2025-12-01 20:04:25 1006

原创 Java---Date 类---简单了解

Java日期处理类的演进与应用 摘要: Java提供了三代日期处理类:1)Date类(第一代)用于基本时间戳表示,需配合SimpleDateFormat进行格式化;2)Calendar类(第二代)提供更丰富的日历操作功能,但存在可变性和格式化限制;3)LocalDateTime等(第三代,JDK8引入)解决了前两代问题,支持不可变对象和更灵活的操作,通过DateTimeFormatter进行格式化,还包含Instant时间戳转换功能。第三代类还提供plus/minus方法进行日期计算,是当前推荐使用的日期处

2025-11-05 10:41:17 1016

原创 BigInteger 类 和 BigDecimal 类

Java提供了BigInteger和BigDecimal类来处理高精度数值计算。BigInteger用于处理任意长度的整数运算,支持加减乘除等操作,解决了基本整数类型范围限制的问题。BigDecimal则用于高精度浮点数运算,特别适合金融等需要精确计算的场景,可以控制舍入行为。两个类都提供了add()、subtract()、multiply()和divide()等基本运算方法,其中BigDecimal除法需要指定精度以避免异常。通过这两个类,开发者可以处理基本数据类型无法满足的大数和精确计算需求。

2025-11-02 20:55:30 216

原创 Java---System 类

Java的System类是一个工具类,提供静态方法和变量进行系统级操作,包括程序退出、数组复制、时间获取和垃圾回收等功能。常用方法:1)exit()终止程序;2)arraycopy()高效复制数组;3)currentTimeMillis()获取1970年至今的毫秒数;4)gc()触发垃圾回收。这些方法通过JNI与操作系统交互,是Java系统编程的基础工具。

2025-11-02 18:16:53 176

原创 Java---Arrays类

Java中的Arrays类是一个用于操作数组的工具类,提供了一系列静态方法。主要功能包括:1)toString方法将数组转为字符串;2)sort方法支持自然排序和定制排序;3)binarySearch通过二分查找元素;4)copyOf复制数组元素;5)fill填充数组元素;6)equals比较数组内容;7)asList将数组转为List集合。通过Book类案例演示了如何使用定制排序对对象数组按价格或书名长度进行排序。Arrays类简化了数组操作,是Java集合框架的重要工具。

2025-11-01 21:32:57 323

原创 Java---Math类

Java的Math类提供了常用数学运算方法,包括:abs()求绝对值、pow()求幂、ceil()/floor()向上/下取整、round()四舍五入、sqrt()开平方、random()生成0-1随机数等。这些方法的返回值类型需注意,如pow()和ceil()返回double类型。文章通过代码示例展示了每个方法的具体使用方式,并特别说明了random()方法生成随机数的范围和应用场景。

2025-10-28 21:17:22 188

原创 Java---StringBuilder

1)一个可变的字符序列。此类提供了一个与 StringBuffer 兼容的 API ,但不保证同步(StringBuilder 不是线程安全)。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 更快2)在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据StringBuilder 常用方法。

2025-10-27 21:47:21 569

原创 Java---StringBuffer类

【摘要】StringBuffer是Java中可变的字符序列,相比不可变的String效率更高。主要特点:1)可对字符内容增删改;2)字符数组存放在堆中,修改时无需重新分配地址;3)提供append、delete、replace、insert等方法操作字符串。与String转换:通过构造器或append()转为StringBuffer;通过toString()或构造器转回String。注意:构造StringBuffer时若参数为null会抛出空指针异常,而append(null)会添加"null&q

2025-10-27 20:12:51 812

原创 Java---String类

本文介绍了Java中String类的基本概念和常用方法。String类用于保存字符串序列,字符使用Unicode编码,每个字符占2个字节。创建String对象有直接赋值和构造器两种方式,前者指向常量池地址,后者指向堆中空间地址。String是不可变类,内容一旦分配不可修改。文章详细讲解了equals、length、indexOf、substring等常用方法,并比较了字符串拼接时StringBuilder的效率优势。最后介绍了字符串分割、比较、格式化等操作,以及toCharArray等方法的应用场景。全文通

2025-10-25 21:41:48 765

原创 Java---包装类

本文介绍了Java包装类的基本概念和使用方法。主要内容包括:1)8种基本数据类型的对应包装类(如Integer、Character等);2)包装类与基本数据类型的相互转换(手动/自动装箱拆箱);3)包装类与String的转换方法;4)重点讲解了Integer和Character类的常用静态和实例方法,如parseInt()、isDigit()、toUpperCase()等。通过代码示例展示了这些方法的实际应用场景,帮助理解包装类在类型转换和数据处理中的重要作用。

2025-10-16 21:15:59 971

原创 Java---异常

Java异常机制是处理程序运行时错误的强大工具。异常分为Error(严重错误)和Exception(可通过代码处理的问题)。Exception又分为运行时异常(如空指针、数组越界)和编译时异常(如文件操作异常)。Java提供了try-catch-finally和throws两种主要处理方式:前者用于捕获处理异常,后者将异常抛给调用者。开发中还可自定义异常类,通过继承RuntimeException创建运行时异常更为便捷。异常处理使程序更具健壮性,能优雅处理错误而非直接崩溃。

2025-10-14 20:32:26 568

原创 Java---注解

摘要:Java注解(Annotation)是一种元数据,用于为代码元素提供补充信息。常用注解包括:@Override(方法重写验证)、@Deprecated(标记过时元素)和@SuppressWarnings(抑制编译器警告)。元注解用于修饰其他注解,包括@Retention(指定作用范围)、@Target(限定适用元素)、@Documented(生成文档)和@Inherited(继承性)。这些注解在编译和运行时处理,不影响程序逻辑,但能增强代码的可读性和可维护性,在JavaEE中尤其重要。

2025-10-07 22:50:51 841

原创 Java---枚举类

Java枚举类是一种表示固定常量的特殊类,如季节、月份等。可以通过自定义类或enum关键字实现枚举。自定义类需要私有化构造器、使用final+static修饰对象,并提供getter方法。enum关键字更简洁,默认继承Enum类,支持values()、valueOf()等方法。枚举类可以实现接口但不能继承其他类。文章还介绍了枚举对象定义、常用方法以及普通/增强for循环的用法。

2025-10-02 15:21:11 523

原创 Java---面向对象编程---内部类

内部类是定义在另一个类内部的类,是类的五大成员之一(属性、方法、构造器、代码块、内部类)。主要分为四种:局部内部类(定义在方法内)、匿名内部类(无类名)、成员内部类(非静态)和静态内部类(static修饰)。内部类可直接访问外部类的私有成员,体现了类之间的包含关系。匿名内部类语法特殊,既是类定义又是对象,常用作实参传递。成员内部类可添加访问修饰符,作用域为整个外部类;静态内部类只能访问外部类的静态成员。当内外类成员重名时,默认就近访问,可通过"外部类名.this.成员"或"外部

2025-09-27 21:41:50 794

原创 Java---接口

Java接口是一种抽象规范,定义了方法的签名(JDK7前仅支持抽象方法,JDK8后新增默认方法和静态方法)。接口通过implements关键字被类实现,实现类必须重写所有抽象方法(抽象类除外)。接口支持多继承(可extends多个接口),属性默认public static final,方法默认public。接口与继承的区别在于:继承体现is-a关系,接口体现like-a关系,提供更灵活的多态特性(如多态参数、多态数组)。注意事项包括:不可实例化、属性必须初始化、修饰符限制等。接口通过标准化方法定义实现代码解

2025-09-14 18:32:29 802

原创 Java---抽象类最佳实例---模板设计模式

1)有多个类,完成不同的任务job2)要求统计得到各自完成任务的时间3)编程实现1.先用最容易想到的方法2.分析问题,提出使用模板设计模式

2025-09-12 18:57:22 91

原创 Java---面向对象编程---抽象类

本文介绍了Java中抽象类的定义与使用要点。抽象类是用abstract修饰、不能被实例化的类,主要作为其他类的基类使用。关键特点包括:1)可以包含抽象方法(无方法体)和普通方法;2)抽象类不一定包含抽象方法;3)继承抽象类的子类必须实现所有抽象方法(除非子类也是抽象类);4)抽象方法不能用private、final或static修饰;5)抽象类可以有构造器、属性等普通成员。抽象类常用于设计模式,通过定义公共结构让子类实现具体功能,体现了面向对象的多态特性。

2025-09-11 21:34:04 335

原创 Java---面向对象编程---final关键字

本文介绍了Java中final关键字的使用方法和注意事项。final可修饰类、属性、方法和局部变量,用于限制继承、重写和修改。重要特性包括:final修饰的属性必须初始化且不可修改;final类不可继承但可实例化;final方法不可重写但可继承;final与static搭配可提高效率。注意事项:final类无需再修饰方法为final;不能修饰构造器;包装类和String类都是final类。合理使用final能增强代码安全性和性能优化。

2025-09-10 21:42:45 387

原创 Java---面向对象编程---单例设计模式

设计模式是经过实践验证的代码结构和问题解决方式的总结。单例模式确保一个类只有一个实例,并提供全局访问点。实现方式分为饿汉式(类加载时创建,线程安全但可能浪费资源)和懒汉式(使用时创建,存在线程安全问题)。通过私有构造器、静态实例和公共访问方法实现,如Java中的Runtime类就采用单例模式。

2025-09-08 21:29:24 396

原创 Java---面向对象编程---代码块

代码块详解 代码块是类的成员,用于封装逻辑语句,通过{}包围。分为普通代码块(非静态)和静态代码块(static修饰)。静态代码块在类加载时执行一次,普通代码块在每次创建对象时执行。 使用场景: 作为构造器的补充,统一初始化逻辑; 复用多个构造器中的重复代码。 执行顺序: 父类静态代码块 → 子类静态代码块; 父类普通代码块 → 父类构造器 → 子类普通代码块 → 子类构造器。 注意事项: 静态代码块优先执行,仅加载一次; 普通代码块需实例化对象后触发; 构造器隐含super()和调用普通代码块。 适用于优

2025-09-07 15:32:42 611

原创 Java---面向对象编程(高级)---类方法

类方法(静态方法)是Java中通过static修饰的方法,可直接通过类名调用。其特点是不依赖对象实例,常用于工具类方法(如Math类)。案例展示了一个学生学费统计的静态方法应用,以及自定义工具类的实现。注意事项:1)静态方法不能使用this/super;2)只能访问静态成员;3)普通方法可访问静态和非静态成员。实际开发中,通用功能(如排序、计算等)常设计为静态方法以提高效率,避免实例化对象。静态方法通过类名.方法名()调用,需遵守访问权限控制。

2025-09-05 21:51:26 406

原创 Java---面向对象(高级)---类变量

类变量(静态变量)是使用static关键字修饰的变量,在类加载时初始化,生命周期与类相同。特点包括:所有对象共享(修改后全局可见)、优先于对象存在、可通过类名直接访问。示例中通过Child.count统计游戏人数,验证了类变量的共享性。定义语法为"访问修饰符 static 数据类型 变量名",推荐通过"类名.变量名"访问。与实例变量的区别在于作用范围(共享vs独享)。适用场景是需要对象间共享数据的场合(如统计总数)。类变量随类加载而初始化,无需实例化即可使用。

2025-09-03 21:34:28 330

原创 Java---一个很能体现面向对象(OOP)编程的案例

本文展示了一个Java继承案例,包含Employee父类及其Worker和Teacher子类。Employee类包含基本工资属性,Worker类直接继承并重写printSalary()方法添加"工人"标识。Teacher类新增课时费和上课天数属性,重写方法计算总工资(基本工资+课时费×天数)。测试类实例化工人和教师对象,输出不同计算结果:工人年工资96000元,教师年工资544000元。该案例演示了继承、方法重写和属性扩展的面向对象编程特性。

2025-08-30 15:17:59 178

原创 Java---Object类---finalize方法

Java中finalize()方法是对象被垃圾回收前自动调用的方法,子类可以重写它以执行资源释放等操作。当对象没有任何引用时,JVM会将其视为垃圾对象并销毁,在此之前会调用finalize()。示例代码展示了如何通过将对象引用置为null并调用System.gc()来触发垃圾回收,同时重写finalize()方法实现自定义销毁逻辑。但要注意垃圾回收的时机由系统决定,System.gc()不保证立即执行回收。

2025-08-25 21:40:51 225

原创 Java---Object类---toString方法

Java中Object类的toString()方法默认返回"全类名@hashCode十六进制值"。子类通常会重写该方法以显示对象属性信息。示例展示了Monster类未重写时输出默认格式,重写后输出自定义属性格式。当直接打印对象时,系统会自动调用toString()方法,其效果与显式调用toString()相同。重写toString()方法便于调试和日志记录,是Java开发中的常见实践。

2025-08-24 23:03:16 304

原创 Java---hashCode方法

Java中HashCode的作用与特点:HashCode是用于快速定位的32位整型值,能提升HashMap等集合的性能,通过取模运算实现O(1)查找并减少equals调用。关键特性包括:相同对象HashCode必相同,不同对象HashCode通常不同(但不等于地址)。示例代码展示了不同对象和相同引用情况下的HashCode差异。

2025-08-24 22:07:08 191

原创 Java---==运算符和equals方法

Java中==和equals的区别:==可以比较基本类型(值)和引用类型(地址),而equals是Object类方法,默认比较地址,但常被重写为比较内容(如String、Integer)。示例中,obj1==obj2为false(不同地址),obj1==obj3为true(相同地址)。

2025-08-23 19:02:54 220

原创 Java---面向对象编程---多态

【摘要】本文演示了Java多态特性的实际应用。通过Person、Student和Teacher三个类的继承关系,展示了如何创建多态数组(父类类型数组存放子类对象)。基础案例中,数组元素统一调用重写的say()方法;进阶案例则通过instanceof判断对象类型,调用子类特有的study()和teach()方法。代码示例完整展示了多态的动态绑定机制,以及类型检查与向下转型的操作,体现了面向对象编程中"同一接口,不同实现"的特性。(149字)

2025-08-23 16:30:56 182

原创 Java---面向对象编程---动态绑定机制

本文简要说明了Java里的动态绑定机制

2025-08-21 16:27:10 332

原创 Java---面向对象编程---instanceOf 的使用

本文介绍了Java中的instanceof操作符,用于判断对象是否为指定类型或其子类型。通过示例代码演示:当B继承A时,B的实例既属于B类型也属于A类型。即使将B实例赋给A类型变量,instanceof检查仍能正确识别其实际类型。这体现了Java运行时类型检查的特性,适用于多态场景下的类型判断。

2025-08-21 15:58:51 130

原创 Java---面向对象编程---多态的向上转型,向下转型

本文介绍了面向对象编程中的多态特性,重点讲解了向上转型和向下转型。向上转型是父类引用指向子类对象,其特点是编译看左边、运行看右边,可以调用父类成员但实际执行子类实现。向下转型则是将父类引用强制转换为子类类型,要求父类引用必须原本指向目标子类对象。文章通过Animal、Cat、Dog等类的继承关系和代码示例,演示了这两种转型的语法规则和使用场景,并指出错误转型会引发异常。这些内容为理解Java多态机制提供了基础指导。

2025-08-21 15:42:18 187

空空如也

空空如也

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

TA关注的人

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