自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java输入输出(I/O)流

Java I/O流主要分为两大类:字节流(和)和字符流(Reader和Writer字节流主要用于处理原始二进制数据,而字符流用于处理文本数据。

2023-12-22 20:32:08 368

原创 Java多线程编程

Java多线程编程是一个广泛使用的技术,它可以提高程序的性能和效率。通过继承Thread类或实现Runnable接口创建线程,以及使用关键字或Lock接口实现数据同步,我们可以更好地管理和控制多线程程序。在实际应用中,需要根据具体的业务场景选择合适的多线程方案,并注意避免常见的多线程安全问题。如果你有任何问题、建议或者想要分享自己的经验,欢迎在评论区留言!

2023-12-20 19:15:09 331

原创 面向对象-接口

在本次实验中,我们讨论了如何处理数组中某个元素为null的情况。我们使用了Comparator来对Person对象进行排序,并处理了null值的情况。具体而言,我们介绍了三种处理null值的方法:使用Comparator.nullsLast方法将null元素放在排序结果的末尾;使用Comparator.nullsFirst方法将null元素放在排序结果的开头;自定义比较器来处理null元素。我们还展示了如何使用匿名类和Lambda表达式来实现Comparator接口,以简化代码并提高可读性。

2023-12-19 17:43:56 806

原创 了解Java中的网络协议及实例代码解析

通过示例代码,我们可以了解到如何在Java中使用TCP和UDP协议进行网络通信。TCP服务器端示例代码中,通过ServerSocket类监听特定的端口,并通过accept方法接受客户端连接。TCP客户端示例代码中,通过Socket类与服务器建立连接,并通过输入流和输出流进行数据的读取和写入。UDP服务器端示例代码中,通过DatagramSocket类监听特定的端口,并通过receive方法接收客户端发送的数据报。

2023-12-16 20:05:29 552

原创 理解Java中continue和break语句的用法及区别

在Java中,continue和break语句是控制循环流程的重要组成部分。continue语句用于跳过当前迭代的执行,进入下一次迭代;break语句用于中断循环。通过灵活使用continue和break语句,可以使程序更加简洁、高效。在编写循环结构的程序时,需要根据具体需求选择合适的语句,将其应用于合适的位置,以达到预期的控制效果。如果您有任何疑问或意见,请随时与我进行交流!

2023-12-14 21:31:25 414

原创 Java中的“==“和“equals”

"=="操作符用于比较基本数据类型的值或引用类型的引用地址,而equals()方法用于比较对象的内容。当比较字符串对象和包装类对象时,建议使用equals()方法,因为它们重写了equals()方法以实现值的比较。对于自定义的类,可以选择重写equals()方法来实现自己的相等比较逻辑。在比较操作时,根据具体的需求选择合适的比较方式,以确保得到正确的结果。希望本篇博客对你理解Java中"=="和equals()的区别有所帮助。如有疑问或需进一步讨论,欢迎留言。

2023-12-12 20:13:39 324

原创 java-泛型

本篇博客深入探讨了Java泛型的基本概念和使用方法,并提供了相关代码示例。泛型是Java中一项强大的特性,它使得代码更加灵活、可读,并提高了类型安全性。通过使用泛型,我们可以编写更通用的类和方法,从而减少代码的重复性。使用泛型可以增强代码的类型安全性和重用性,使代码更加可读、可维护和可扩展。同时,泛型也为处理不同类型的数据提供了一种优雅的解决方案。

2023-12-09 19:32:44 385

原创 了解java-map

Map是Java集合框架中非常有用的一员,它以键值对的形式存储数据,支持高效的查找操作。通过使用Map,我们可以轻松地根据键查找对应的值,简化了数据的存储和访问操作。使用Map可以在需要键值对存储和查找的场景中提供优化的数据结构。它是处理数据映射和快速检索的理想选择。希望本文能够帮助您理解Map的基本概念和用法。如果您还有任何疑问,请随时提问。

2023-12-06 17:11:33 857

原创 java-HashSet

HashSet是Java集合框架中强大的一员,它提供了一种存储唯一元素的方式,并支持高效的插入、删除和查找操作。通过使用HashSet,我们可以轻松管理和操作元素集合,使我们的代码更加简洁和高效。通过HashSet存储和遍历集合,我们可以快速获取或检查集合中的元素,这给我们的开发带来了很多便利。希望本文能够帮助您理解HashSet的基本概念和用法。如果您还有任何疑问,请随时提问。

2023-12-05 20:51:26 743

原创 理解java集合

本文详细介绍了Java集合框架的基本概念,并给出了ArrayList、LinkedList和HashSet等常见集合类的使用示例。这些集合类能够满足不同的需求,提供了高效的数据存储和操作方法。通过合理选择和使用集合类,开发者能够提高代码的效率和可读性。不同的集合类适用于不同的场景,因此在开发过程中需根据需求选择最合适的集合类。同时,理解集合框架的设计原理和底层实现,能够更好地应用和优化代码。希望本文对您理解和使用Java集合框架有所帮助。如有任何问题或想法,请随时留言。

2023-12-02 19:57:36 860

原创 java-调试

Java调试是开发过程中不可或缺的重要环节。通过熟练掌握调试技巧,并结合合适的调试工具和方法,我们能够快速定位和解决问题,提高代码的质量和可维护性。针对不同问题的特点,灵活运用各种调试方式,有助于提高调试的效率和准确性。无论是使用断点、调试工具,还是日志输出和异常处理,关键在于善于观察、分析和沟通。记得要耐心和细致地检查代码,利用调试工具的各种功能进行定位问题,并且善于使用文档和与他人进行交流,互相学习和分享经验。希望本博客的内容能为你在Java调试的过程中提供帮助,并让你在开发中更加得心应手。

2023-11-29 10:31:09 871 1

原创 理解Java异常及其处理

在Java中,我们可以自定义异常类来满足特定场景下的异常处理需求。自定义异常类需要继承自Exception或其子类,并重写父类的构造方法。Java异常处理是一种强大的工具,可帮助我们识别和处理程序中的错误和异常情况。异常处理是编程中常见的任务,合理处理异常可以保证程序的正确性和健壮性。在Java中,我们可以使用try-catch语句、try-finally语句、throws关键字和自定义异常类等方式来处理异常。在实际开发中,需要根据具体场景和需求选择合适的处理方式,并遵循异常处理的原则。

2023-11-28 20:21:40 798

原创 理解Java中的String类

Java中的String类是一个非常常用的类,它提供了丰富的方法来处理字符串。在使用String类时,应该注意字符串的创建方式、比较方法和拼接方式,同时也要注意String对象的不可变性。熟悉和掌握String类的用法,可以让我们更加高效地处理字符串操作。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言!

2023-11-25 19:20:33 850

原创 Java包装类的使用

综上所述,通过包装类,我们可以方便地将基本数据类型转化为对象类型,以满足 Java 中只能使用对象的特点。同时,我们可以通过常用方法、自动装箱与拆箱的功能对包装类进行处理,在编写代码时更加灵活方便。希望本文的内容能够对你有所帮助,让你更加了解和掌握Java包装类的使用。

2023-11-23 15:29:28 22 1

原创 Java枚举类(Enum)的使用及特性

枚举类是一种非常方便、灵活,且易于维护的数据类型。定义枚举类可以避免使用一堆飘忽不定、随意变化的常量,使代码更加清晰。枚举类可以包含字段和方法,为每个enum实例提供额外信息或行为。使用枚举类型能够增强代码可读性,并在编译期间进行静态检查。通过Java中Enum这一特性(feature)的应用示例及其详细解释,相信您已经对Java中如何正确地定义、使用以及遍历一个简单enum有了初步了解。合理利用枚举类将大大提高你程序开发效率。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言!

2023-11-20 16:01:03 166 1

原创 Java ArrayList类的使用

ArrayList 是一个强大的数据结构,可以满足大多数 Java 开发需求。在实际应用中,需要导入,需要注意 ArrayList 的容量是否足够,避免频繁的扩容操作,以提高性能。希望本文能帮助读者更好地理解和使用 Java ArrayList。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言!

2023-11-18 14:08:50 137 1

原创 理解 Java 内部类

Java 内部类提供了一种灵活和封装的代码组织方式。通过内部类,我们可以访问外部类的成员,实现更加紧密的关联和更高的封装性。不同类型的内部类适用于不同的场景,成员内部类用于封装相似行为的类,静态内部类用于实现一种工具类,方法内部类用于实现特定功能等。深入理解内部类的使用和特性,将有助于编写更加灵活和模块化的 Java 代码。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言,我们将尽快回复。

2023-11-16 19:19:08 24 1

原创 了解 Java 接口(interface)

interfaceJava 接口是一种强大的工具,用于定义类之间的规范和行为。通过实现接口,类可以获得多态性,并扩展其功能。接口还可以帮助团队协作和代码组织,使代码更具可维护性和可扩展性。熟练掌握接口的使用将有助于提高 Java 程序的质量和可读性。如果您对本文内容有任何疑问、意见或建议,欢迎在评论区留言讨论!

2023-11-14 11:20:48 23 1

原创 理解abstract抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

2023-11-10 06:45:00 22 1

原创 Java中的final关键字

Final关键字是Java中的一种修饰符,它表示一个变量或方法不能被修改或重写。Final关键字在Java中有多种用途,其中最重要的用途是创建不可变对象和防止方法重写。总之,Final关键字是Java中的重要工具,它可以帮助我们创建不可变对象、防止方法重写以及改变变量的访问级别。正确使用final关键字可以提高代码的可读性和安全性。以上就是关于final关键字的博客总结。希望通过这次分享,大家能更深入地理解final关键字在Java编程中的重要性以及如何正确使用它。

2023-11-08 21:36:00 28 1

原创 理解单例模式:懒汉式与饿汉式的比较

单例模式是一种经典的设计模式,在软件开发中被广泛应用。它确保一个类只有一个实例,并且提供了一个访问该实例的全局访问点。某个类在整个系统中只能有一个实例对象可以被获取和使用。单例模式是一种重要的设计模式,用于确保一个类只有一个实例,并提供全局的访问点。懒汉式和饿汉式是两种常见的单例模式实现方式。选择适合自己需求的方式,可以更好地满足项目的要求。在实际使用中,需要考虑线程安全和性能等因素。希望本文能对你理解单例模式的懒汉式和饿汉式有所帮助。如果还有其他问题,欢迎继续提问。

2023-11-06 10:04:03 36

原创 房屋出租系统-java

本文介绍了一个基于面向对象编程思想的房屋出租系统的代码实现。通过不同的类之间的协作,实现了房屋信息的增删查改功能,并提供了一个工具类来处理用户输入,增加了程序的易用性和健壮性。

2023-11-05 06:30:00 32 1

原创 访问修饰符的学习总结

访问修饰符是面向对象编程中一个基础的概念。不同的访问修饰符提供了不同的访问权限,使得我们可以更好地组织代码和控制代码的可见性。通过掌握不同访问修饰符的含义,可以更好地编写出安全、灵活、可扩展的代码。希望本篇博客对你理解访问修饰符和其在面向对象编程中的重要性有所帮助。如果还有疑问或需要进一步讨论,请随时提问。

2023-11-04 06:30:00 21 1

原创 多态的简单理解

多态性的优点包括:灵活性:通过多态性,我们可以编写灵活的代码,可以在运行时通过指向不同对象的相同父类引用,实现不同的行为。可扩展性:通过继承和多态性,我们可以轻松地添加新的子类,并通过父类引用来访问这些子类对象的共同行为。可维护性:多态性使得代码结构更清晰,更易于理解和维护。通过将共同行为定义在父类中,可以避免代码的重复和冗余。总之,多态性是面向对象编程中的一种重要特性,它实现了代码的灵活性和可扩展性。通过将相同接口或抽象类作为父类引用,可以支持不同的子类对象具有不同的行为。

2023-11-03 06:45:00 20

原创 OOP练习2-继承与重写

在这个案例中,我们实现了三个类:Person、Student和Teacher。Person类是一个抽象类,它包含了名称、性别和年龄这些共同的属性,以及play()方法。Student类和Teacher类分别继承自Person类,并重写了play()方法,实现了各自特有的功能。通过合理封装和构造器的使用,我们可以在创建对象时将所有属性进行赋值。这样做的好处是可以维护数据的封装性和代码的可读性,同时避免了属性被直接修改。在每个类中,我们实现了相应的方法。

2023-11-02 06:45:00 77

原创 OOP练习

(2)扩展前一个练习的BankAccount类,新类SavingAccount每个月都有利息产生(earnMonthlyInterest方法被调用),并且有每月三次免手续费的存款或取款。(2)在新类SavingAccount添加参数count和rate,用于计数和计算利率,重写SavingAccount类中的deposit和withdraw方法,加入count的判断。(1)在上面类的基础上扩展新类CheckingAccount类,新类SavingsAccount对每次存款和取款都收取1美元的手续费;

2023-11-01 07:00:00 20

原创 小白学冒泡排序

冒泡排序是一种基本的排序算法,通过相邻元素的比较和交换来实现排序。它简单易懂,但效率相对较低。冒泡排序的优点是简单明了,容易理解,缺点是时间复杂度高。在实际应用中,冒泡排序往往被更高效的排序算法所取代,但它仍然有其特定的应用场景。

2023-10-31 07:15:00 17 1

原创 零钱通管理系统

创建一个简单的管理系统,帮助我们记录零钱的收入和支出,以及余额的变化。

2023-10-30 08:55:30 56 1

原创 有理数类的设计

封装特性:Java类提供了封装特性,能够将数据和对数据的操作封装在一个类中。这样可以隐藏内部实现细节,只暴露有限的接口给外部使用,使得类的使用更加安全、灵活和易于维护。代码复用:便于代码复用,编写有理数类方便在他人的代码中复用,提高了代码的复用性可维护性:通过将有理数相关的逻辑封装在类中,代码更加模块化和结构化,便于维护和修改。如果需要修改有理数的实现方式,只需要在有理数类内部进行修改,对外部调用者来说是透明的。

2023-09-22 10:37:43 20 1

空空如也

空空如也

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

TA关注的人

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