Java基础教程
文章平均质量分 96
从初学者的角度,以丰富的案例、通俗易懂的语言、简单清晰的图示,详细的介绍java开发中用到的各种知识与技术。包括:Java简介、程序基本概念、面向对象基本概念及高级知识、包及访问控制权限、Java新特性、异常处理、多线程、常用类库、IO流、网络编程、类集框架等全面丰富的内容。
小山code
19年开始从事JAVA研发相关工作,曾就职于QCTC、Newtouch,服务客户:国网重庆电力公司、上汽集团旗下赛创AI公司。有智慧交易及服务系统、电力计划系统等设计及开发经验,曾成功支持千万级客户量系统的上线及运维。
展开
-
【Java基础教程】Java学习路线攻略导图——史诗级别的细粒度归纳 ~
🍺🍺 各位读者朋友大家好!得益于各位朋友的支持和关注,我的专栏《Java基础教程》至今已经更新近半,我们一起探索了Java语言的许多核心概念和重要特性。在过去的文章中,我们一共涉及了入门介绍、程序基础概念、面向对象、包及访问控制权限、异常处理以及特别篇一共六个篇章,详细阐述了Java基础概念、关键字、各类运算、抽象类、接口、包、权限、异常处理等多个主题知识...原创 2023-07-19 21:11:33 · 19446 阅读 · 46 评论 -
【Java基础教程】(五十)JDBC篇:JDBC概念及操作步骤、主要类与接口解析、批处理与事务处理~
通过本文的介绍,我们了解了JDBC的基本概念和使用方法。我们学习了如何连接数据库,并使用Statement接口进行数据更新和查询操作。同时,我们也了解到了Statement接口的一些问题,并介绍了PreparedStatement接口的作用和优势。最后,我们还讨论了批处理和事务处理的重要性和使用方法。总之,JDBC是Java连接数据库的标准接口,它提供了方便、灵活和高效的方式来操作数据库。通过掌握JDBC的相关知识,我们可以更好地与数据库进行交互,并实现数据的更新、查询等操作。同时,使用Prepared原创 2023-07-31 21:35:03 · 1672 阅读 · 34 评论 -
【Java基础教程】(四十九)集合体系篇 · 下:双列集合解析——HashMap、Hashtable、LinkedHashMap、TreeMap、Properties ~
在本文中,我们探讨了双列对象保存的一些关键概念和技术。首先,我们比较了`HashMap`类和`Hashtable`类,它们都是常用的`Map`实现类,但有一些区别,例如线程安全性和对 null值的处理。接下来,我们介绍了使用迭代器(`Iterator`)来获取`Map`集合元素的方法,并演示了如何遍历`Map`中的键值对。然后,我们学习了自定义`Map`集合的键类型,并说明了为什么重写`equals()`和`hashCode()`方法对于正确的键值存储至关重要。我们还介绍了其他一些常见的`Map`实现类原创 2023-07-28 18:52:52 · 432 阅读 · 4 评论 -
【Java基础教程】(四十八)集合体系篇 · 上:全面解析 Collection、List、Set常用子接口及集合元素迭代遍历方式~【文末送书】
本文介绍了Java类集框架,重点关注了单列集合顶层接口`Collection`和其子接口`List`的特点和用法。我们比较了数组和列表(`ArrayList`)之间的区别,并深入探讨了`List`子类(`ArrayList`、`LinkedList`、`Vector`、`Stack`)之间的联系与区别。在`Set`子接口部分,我们介绍了`HashSet`和`TreeSet`的区别,并解释了数据排序和处理重复元素的方法。最后,我们讨论了取出集合元素的几种常见方式,包括迭代输出使用`Iterator`、原创 2023-07-27 23:11:49 · 1375 阅读 · 102 评论 -
【Java基础教程】(四十七)网络编程篇:网络通讯概念,TCP、UDP协议,Socket与ServerSocket类使用实践与应用场景~
本文介绍了网络编程的概念以及与之相关的TCP和UDP协议。我们探讨了Java中的Socket和类,这些重要的API用于实现网络通信。通过一个简单的实战示例——Echo程序,我们展示了如何使用Java进行网络编程,并解释了其工作原理。网络编程在现代应用开发中扮演着至关重要的角色。它允许不同主机之间的数据交互,使得分布式系统成为可能。同时,网络编程也适用于各种场景,包括客户端-服务器通信、网络爬虫和数据采集、文件传输和共享、远程过程调用等。原创 2023-07-26 22:00:50 · 1192 阅读 · 41 评论 -
【Java基础教程】特别篇:IO流合辑——这波知识归纳很细!肝了三万字,全面探索Java I\O流操作体系~
Java的IO流(Input/Output streams)用于处理输入和输出操作。它们提供了一种与外部设备(如文件、网络连接等)进行交互的方法。Java的IO流按照数据的流向分为输入流(InputStream)和输出流(OutputStream)。输入流用于从外部设备读取数据到程序中,输出流用于将程序中的数据写入外部设备。Java的IO流拥有通用性、支持多种类型的数据、灵活性和可扩展性等优点,因而可被用于文件操作、网络编程、数据库操作以及 性能分析与日志记录等场景。原创 2023-06-20 17:00:22 · 755 阅读 · 18 评论 -
【Java基础教程】(四十六)IO篇 · 下:System类对IO的支持:错误输出、信息输出、系统输入,字符缓冲流、扫描流和对象序列化流~
在本文中,我们详细探讨了Java中System类对IO操作的支持,以及字符缓冲流、扫描流和对象序列化流的应用。首先,我们了解到System类提供了三个重要的I/O流:错误输出(System.err)、信息输出(System.out)和系统输入(System.in通过这些流,我们可以方便地处理错误信息、输出结果和用户输入。接下来,我们研究了字符缓冲流(),它提供了高效读取文本数据的能力。通过使用缓冲机制,字符缓冲流可以减少磁盘或网络读取的次数,从而提高性能。我们还讨论了扫描流(Scanner...原创 2023-07-25 22:54:59 · 652 阅读 · 26 评论 -
【Java基础教程】(四十五)IO篇 · 中:转换流、内存流和打印流(探索装饰设计模式与PrintStream类的进阶),文件操作案例实践、字符编码问题~
在本文中,我们深入研究了几个与文件和字符编码有关的主题。首先,我们讨论了转换流,它提供了在字节流和字符流之间进行字符编码转换的功能。通过使用和,我们可以将字节流转换为字符流,并在不同的字符编码之间进行转换。接下来,我们通过一个案例演示了如何使用转换流实现文件复制。这个案例展示了转换流在处理大文件时的效率优势,并且通过适当地缓冲数据提高了性能。我们还探讨了内存流,它是基于内存操作的流类型。内存流允许我们在内存中读写数据,而无需依赖于物理存储介质。这对于一些特殊应用场景,例如内存数据交换或缓存操作非常有用。原创 2023-07-25 14:46:51 · 617 阅读 · 9 评论 -
【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~
在本文中,我们深入探讨了Java文件操作类:`File`、字节流和字符流。我们首先介绍了`File`类,它提供了处理文件和目录的基本功能。接着,我们讨论了字节流和字符流,分别涵盖了`InputStream`、`OutputStream`、`Reader`和 `Writer`。字节流主要操作字节数据,适用于处理二进制文件和网络数据传输。`OutputStream`用于写入字节数据到输出源,而`InputStream`则读取字节数据从输入源。这些流提供了丰富的方法,使我们能够有效地读写字节数据...原创 2023-07-24 21:59:32 · 5287 阅读 · 4 评论 -
【Java基础教程】(四十三)多线程篇 · 下:深入剖析Java多线程编程:同步、死锁及经典案例——生产者与消费者,探究sleep()与wait()的差异
本文主要介绍了多线程编程中的同步与死锁问题,以及经典的生产者与消费者案例,并分析了sleep()和wait()方法的区别。我们首先引出了线程同步问题,解释了多个线程同时访问共享资源时可能导致的数据不一致性和并发安全性问题。为了解决这些问题,我们介绍了关键字,说明了如何使用它来实现线程的同步操作,以确保只有一个线程可以访问共享资源,从而避免数据的争用和冲突。接下来,我们讨论了死锁问题,详细说明了死锁是由于多个线程相互等待对方释放资源而无法继续执行的情况。原创 2023-07-23 22:00:13 · 745 阅读 · 28 评论 -
【Java基础教程】(四十二)多线程篇 · 上:多进程与多线程、并发与并行的关系,多线程的实现方式、线程流转状态、常用操作方法解析~
本文主要介绍了多线程编程中的关键概念以及常用的操作方法。首先,我们了解了线程与进程之间的关系,明白了多进程、多线程、并发和并行之间的区别。接着,我们探讨了多线程的实现方式,包括继承Thread类、实现Runnable接口和利用Callable接口实现多线程,并对它们进行了比较和分析。然后,我们详细讲解了线程的操作状态,帮助读者理解线程在不同状态间的转换情况。最后,我们介绍了多线程常用的操作方法,如线程的命名与获取、线程的休眠、线程优先级、线程等待和线程让出执行权等。原创 2023-07-22 23:05:33 · 25625 阅读 · 588 评论 -
【Java基础教程】(四十一)常用类库篇 · 第十一讲:国际化支持类——解析 Locale 类与 ResourceBundle 类对国际化编程的支持~
国际化程序指的是同一套程序代码可以在不同的国家使用,那么在假设项目功能不变的情况下,文字就成为这一操作中最为重要的处理环节。所谓的国际化程序实际上指的就是同一套程序,可以根据其应用的国家自动在项目中显示出本国的相应文字信息,如下图所示。而在本操作中需要两个关键的技术实现点:如何确定当前的软件项目运行的语言环境;要想实现多语言切换,必须针对每一个语言提供一个资源文件,并 且可以根据语言环境选择不同的资源文件进行信息的读取。如果要对用户使用的语言环境进行定义,则可以使用类完成...原创 2023-07-21 17:34:42 · 18242 阅读 · 561 评论 -
【Java基础教程】(四十)常用类库篇 · 第十讲:反射机制——概念及优缺点、使用方式及底层原理 ~
Java的反射机制为开发人员提供了一种灵活而强大的工具,可以在运行时检查和操作类的结构信息。通过反射,我们可以动态地创建对象、调用方法、访问字段等,并能够实现一些高级功能如动态代理。然而,过度使用反射可能会增加代码的复杂性和性能开销,因此需要慎重使用并仔细权衡利弊原创 2023-06-19 14:02:25 · 702 阅读 · 577 评论 -
【Java基础教程】(三十九)常用类库篇 · 第九讲:比较器——Comparable和 Comparator的讲解~
Comparable 接口是在要比较的对象类中实现的,用于定义对象之间的自然顺序。它有一个compareTo()方法,用于比较当前对象与参数对象的顺序。实现了Comparable接口的类可以直接使用排序算法(如Arrays.sort()或Collections.sort())进行排序。Comparator 接口是独立于被比较的对象类的。它用于创建一个单独的比较器对象,并实现了compare()方法来定义不同对象之间的比较逻辑。通过提供自定义的Comparator对象,可以对任意对象进行排序...原创 2023-07-21 14:23:13 · 654 阅读 · 557 评论 -
【Java基础教程】(三十八)常用类库篇 · 第八讲:数组操作类——解析Arrays类中的全部操作方法,解锁Java数组操作技巧~
Java的数组类Arrays提供了丰富的数组操作方法,可用于对数组进行排序、查找、填充等常用操作。它的设计目的是简化数组操作的复杂性,并提供一些常用功能,以提升开发效率和程序性能。使用时需要注意索引越界、性能优化等问题,并根据具体业务场景合理选择适当的方法及技巧。原创 2023-06-28 11:05:57 · 783 阅读 · 446 评论 -
【Java基础教程】(三十七)常用类库篇 · 第七讲:日期时间处理类——三万字全面讲解 LocalDateTime和 DateTimeFormatter,Date、Calendar ~
本文介绍了Java日期时间处理类的概念,以及它们在日期和时间操作中的优势和缺点。我们讨论了Java提供的一些主要日期时间处理类,包括`Date`、`Calendar`、`SimpleDateFormat`、`LocalDateTime`和`DateTimeFormatter`等。我们分析了它们的使用方法,并提供了一些使用案例和技巧。这些Java日期时间处理类提供了丰富的功能和灵活性,使得我们可以方便地执行日期和时间的计算、格式化、解析和比较。然而,每个类都有自己的特点和适用范围...原创 2023-06-26 23:07:13 · 3608 阅读 · 531 评论 -
【Java基础教程】(三十六)常用类库篇 · 第六讲:数学运算类——全面讲解Java数学计算支持类库,BigDecimal、Math、Random、DecimalFormat...~
Java 的数学计算相关类提供了强大的数学运算和操作功能。开发人员可以根据实际需求,选择适当的类来执行简单或高精度的数学计算。但在使用过程中,需要注意选择合适的精度、性能优化和避免误差等问题。通过熟悉这些类的特性与用法,并灵活运用,我们能够更好地利用 Java 提供的数学计算能力解决实际问题。原创 2023-06-27 21:47:38 · 3167 阅读 · 516 评论 -
【Java基础教程】(三十五)常用类库篇 · 第五讲:System类——解析系统辅助工具System类,一个系统操作与资源管理工具类 ~
System类是Java标准库提供的重要工具类,可用于访问与系统相关的操作、信息和资源。它提供了易于使用且跨平台的接口,使得开发者可以更方便地与底层系统进行交互。合理并正确地使用System类,可以帮助实现更灵活、高效和可移植的Java应用程序。原创 2023-06-28 17:57:33 · 3070 阅读 · 517 评论 -
【Java基础教程】(三十四)常用类库篇 · 第四讲:Runtime类——API知识汇总分享,深入解析Runtime运行时环境访问支持类~
Java Runtime 类作为Java虚拟机的实例,对于动态地控制运行时环境至关重要。通过提供各种功能和方法,例如执行外部命令、管理内存和垃圾回收,以及动态加载和卸载类,Runtime 类使得Java程序能够更加灵活地与底层系统进行交互。然而,开发人员需要注意安全性、性能优化及平台依赖性等方面,以确保代码的可靠性和效率。熟练使用 Runtime 类,并根据具体需求进行合理的优化,将有助于实现更强大和高效的Java应用程序。原创 2023-06-28 15:30:04 · 2438 阅读 · 512 评论 -
【Java基础教程】(三十三)常用类库篇 · 第三讲:可变字符串支持类——解析 StringBuffer与 StringBuilder类~
StringBuffer类;StringBuilder类;String、StringBuffer和StringBuilder的对比...原创 2023-06-16 22:58:09 · 1696 阅读 · 519 评论 -
【Java基础教程】(三十二)常用类库篇 · 第二讲:包装类 Wrapper Class——概念及用途, 自动装箱与拆箱,常用操作方法~
在Java编程中,包装类(Wrapper Class)是一种强大的工具,它们在处理基本数据类型时提供了更多的灵活性和功能。掌握包装类及其相关知识对于开发Java应用程序非常重要,尤其是在处理用户输入、数据库操作和集合框架等方面。但同时,在使用包装类时,需要注意自动装箱和拆箱带来的性能方面的问题,因为装箱和拆箱操作涉及创建对象和类型转换,会带来额外的开销。原创 2023-06-16 14:23:13 · 11752 阅读 · 527 评论 -
【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~
Optional类是Java 8引入的强大工具,用于解决空值处理问题。它可以用于包装可能为空的引用,提供一种更优雅且可读性更高的方式来表示和处理可能为空的值。使用Optional类,我们可以明确表达值是可空的,并通过一系列简单的操作方法来避免潜在的空指针异常。尽管Optional并不适用于所有情况,但在正确的场景下,它可以大大提高代码的可读性和可维护性。然而,需要谨慎使用Optional,避免过度使用,以免引入额外的复杂性。了解Optional的基础和高级语法、Java操作API以及实现原理等方面的知识原创 2023-06-26 14:30:59 · 2466 阅读 · 518 评论 -
【Java基础教程】(三十)Java新特性篇 · 第十讲: Stream流——释放流式编程的效率与优雅,狂肝万字只为透彻讲清 Stream流!~
Java Stream流为我们提供了一种简洁而强大的方式来操作数据集合。它具有许多优点,如简化操作、惰性求值和并行处理。同时也有一些缺点,如学习成本稍高和可读性稍差。然而,在正确使用和优化Stream的情况下,可以极大地提高代码的可读性和维护性,并实现更高效的数据处理与计算。通过使用流,我们可以以更直观、简洁的方式对数据进行处理和操作,并发挥多核处理器的计算能力。然而,使用流也需要注意数据量、性能和适用场景等因素。原创 2023-06-25 23:38:21 · 17993 阅读 · 552 评论 -
【Java基础教程】(二十九)Java新特性篇 · 第九讲:函数式接口——概念及优缺点、语法形式及实战技巧、 内置函数式接口与应用场景~
本文深入介绍了Java的函数式接口。函数式接口是一种只定义了一个抽象方法的接口,可以用于Lambda表达式和方法引用,使得Java代码更加简洁、易读和灵活。首先,文章解释了为什么函数式接口在Java中如此重要。通过函数式接口,我们可以将行为作为参数传递给方法,从而实现更高层次的抽象和重用。这使得编写更具可读性和可维护性的代码成为可能。然后,文章详细讨论了如何创建和使用函数式接口。我们可以使用@FunctionalInterface注解来标识一个接口是函数式接口,并确保它只有一个抽象方法。此外,文章还原创 2023-06-24 15:42:03 · 2774 阅读 · 5 评论 -
【Java基础教程】(二十八)Java新特性篇 · 第八讲:方法引用——概念及优缺点、语法形式及使用案例、应用场景与注意事项 ~
方法引用是Java编程语言中的一个重要特性,它能够简化代码、提高可读性和复用性。通过灵活应用方法引用,可以使代码更加清晰、简洁,并减少开发的工作量。原创 2023-06-25 16:12:13 · 1691 阅读 · 12 评论 -
【Java基础教程】(二十七)Java新特性篇 · 第七讲:Lambda表达式——概念及优缺点、语法结构及各类案例、应用场景与优化技巧~
Java Lambda表达式为Java 8引入了强大的功能,通过简洁的语法使开发者能够更高效地编写代码。无论是在集合操作、多线程编程还是GUI事件处理中,都可以灵活应用Lambda表达式。但需要注意的是,在某些情况下它们可能导致性能问题,因此需要谨慎使用。原创 2023-06-24 23:02:12 · 1247 阅读 · 8 评论 -
【Java基础教程】(二十六)Java新特性篇 · 第六讲:注解——解码程序设计中的元数据利器,用小小的@符里做大大的开发~
Java注解提供了一种简洁、灵活和强大的方式来为代码添加额外的元数据信息。它们能够提高代码的可读性、可维护性和健壮性。尽管有一些缺点,但合理地使用注解将带来很多好处。随着时间的推移,注解已经成为许多流行框架和库的核心组成部分。原创 2023-06-22 23:36:55 · 2256 阅读 · 29 评论 -
【Java基础教程】(二十五)Java新特性篇 · 第五讲:正则表达式——概念及语法、Java操作API、使用技巧与应用场景 ~
正则表达式是一种基于文本的模式匹配方法,它用于搜索、检索和替换一个或多个字符序列。Java 提供了许多工具来支持正则表达式,包括 java.util.regex 包中的类。在本文中,我们将详细讲解 Java 的正则表达式语法、常见操作和技巧。原创 2023-06-14 07:58:50 · 1430 阅读 · 11 评论 -
【Java基础教程】(二十四)Java新特性篇 · 第四讲:枚举类——还在因为使用了魔法数而被老大怼吗,一起来看看枚举器的作用吧!~
关于Java枚举类的一些知识介绍,主要包括其概念、优势和缺点、使用方式和案例、 Enum类的常用方法、枚举类的特征及其应用场景等方面。通过使用枚举类,可以使代码更具有可读性、可维护性,并且降低错误发生的概率。在实际开发中,根据需求的不同,可以灵活运用枚举类来达到更好的编码效果。原创 2023-06-21 17:03:15 · 984 阅读 · 6 评论 -
【Java基础教程】(二十三)Java新特性篇 · 第三讲:泛型 Generics——泛型使用方式、通配符、类型擦除机制,对协变和逆变的支持 ~
泛型是 Java 语言提供的一种强大的功能,它允许在编译时对类型进行检查,并提高代码的类型安全性和可读性。通过在类、接口或方法的定义中使用类型参数,可以创建通用的数据结构和算法,并简化代码的开发过程。原创 2023-06-15 21:57:02 · 1922 阅读 · 20 评论 -
【Java基础教程】(二十二)Java新特性篇 · 第二讲:foreach循环——概念及优缺点、使用方式及应用场景~
本文中,我们详细介绍了Java的 foreach特性,从它的起源、概念,到优缺点、特征和基础语法进行了全面讲解。我们还提供了丰富的代码案例来演示其使用技巧,并探讨了foreach的应用场景和注意事项。通过合理地运用foreach特性,能够使代码更加简洁、易读,并且避免常见的错误。在日常开发中,我们建议熟练掌握foreach的用法,以便更高效地处理集合或数组的遍历操作。原创 2023-07-20 11:49:53 · 25376 阅读 · 124 评论 -
【Java基础教程】(二十一)Java新特性篇 · 第一讲:可变参数——概念及优缺点、特征及应用场景、使用技巧、构建动态日志工具实践~
Java提供了一项强大而灵活的特性——可变参数(Variable Arguments)。通过灵活运用可变参数,我们可以让代码更加简洁、高效,减少冗余。本文将带你深入了解Java的可变参数机制和其魔幻般的应用。当然,我们不能仅仅止步于表面,我们会深入探索可变参数的精髓。首先,我会向你介绍可变参数的基本语法,你将看到如何定义和使用这项魔法功能。原创 2023-06-22 15:43:24 · 1390 阅读 · 14 评论 -
【Java基础教程】(二十)异常捕获处理篇 · 下:全面解析断言机制 Assertion,自定义异常 ~
通过本章节的探索,我们了解了Java中异常的概念及其处理方式。学习了`try`、`catch`、`finally`、`throws` 和 `throw` 等关键字的用法,以及异常处理流程的说明。我们还了解了异常处理的标准格式,并深入探讨了`RuntimeException`类。异常处理的核心在于捕获并处理程序执行过程中可能出现的错误情况。通过使用 `try` 块来包裹可能引发异常的代码,通过`catch`块来捕获并处理异常的类型,而 `finally`块则为无论是否发生异常都需要执行的代码提供了一个机会原创 2023-06-14 15:12:50 · 4753 阅读 · 19 评论 -
【Java基础教程】(十九)异常捕获处理篇 · 上:异常的概念及处理流程解析,try、catch、finally、throws、throw的作用,RuntimeException类介绍~
异常的概念及处理流程解析,try、catch、finally、throws、throw的作用,RuntimeException类介绍~原创 2023-07-19 15:24:08 · 1884 阅读 · 3 评论 -
【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~
访问控制权限、单例设计模式 (Singleton)、多例设计模式介绍...原创 2023-07-18 22:25:05 · 634 阅读 · 10 评论 -
【Java基础教程】(十七)包及访问权限篇 · 上:包的定义及导入、常用系统包概览,javac、java和jar命令的作用,package和 import关键字的应用~
本文探讨了Java中的包的定义和导入机制,以及常用的系统包。学习了`javac`、`java` 和 `jar`命令的使用方法,并理解了`package`和 `import`关键字的重要性。通过包的定义和导入,我们能够更好地组织和管理Java代码。包提供了一种层次结构来分类和组织类文件,使得代码更易于维护和扩展。采用合理的包名和正确的 `import`语句,能够避免命名冲突并提高代码的可读性。同时,我们也介绍了常见的系统包,如`java.lang`、`java.util` 等,它们提供了丰富的类和功能原创 2023-07-18 15:56:56 · 867 阅读 · 6 评论 -
【Java基础教程】特别篇:面向对象合辑——掀开Java 的面向对象盖章时代,一起来发现OOP的编程秘密!~
本文主要总结介绍了面向对象编程(OOP)和面向过程编程(PP)各自的编程思想范式特征,面向对象中类和对象的概念关系,面向对象编程的三大特性:封装、继承和多态。以及类中一些相关概念及其区别:方法重载和方法重写、接口和抽象类、包和访问修饰符。此外,还包括类中成员的大致介绍:构造函数和析构函数、成员变量和局部变量。原创 2023-06-21 13:43:44 · 813 阅读 · 14 评论 -
【Java基础教程】(十六)面向对象篇 · 第十讲:解读Object类——定义、操作方法、深拷贝和浅拷贝的差异、多线程编程支持及使用场景~
Java是一种面向对象的编程语言,所有类都直接或间接地继承自Object类。Object类是Java中最基本的类之一,它提供了一些通用的方法,可以被任何Java类使用。本文将详细介绍Java的Object类及其重要方法。Object类位于Java的根层次结构中,即所有类都直接或间接地继承自它。每个对象在内存中都有一个对应的Object类实例,该实例包含了对象的状态信息以及操作该对象的方法。Object类的存在使得Java具有了统一访问对象的能力。原创 2023-06-19 00:12:16 · 788 阅读 · 36 评论 -
【Java基础教程】(十五)面向对象篇 · 第九讲:抽象类和接口——定义、限制与应用的细节,初窥模板设计模式、工厂设计模式与代理设计模式~
抽象类和接口是面向对象编程中重要的概念,在Java开发中起着关键作用。通过本文,我们深入了解了抽象类和接口的定义、相关限制以及它们的应用场景。抽象类是一种特殊的类,无法实例化,主要用于提供通用的实现或默认行为。它可以包含抽象方法和非抽象方法,并通过继承来扩展和重写这些方法。抽象类在模板设计模式中广泛应用,通过定义抽象类作为骨架,子类可以继承并实现具体的细节,从而实现代码复用和灵活性。接口是一种完全抽象的类,只包含抽象方法和常量。接口定义了一组行为规范,可以被多个类实现。接口在标准制定和多态性方面..原创 2023-07-17 17:07:52 · 5135 阅读 · 33 评论 -
【Java基础教程】(十四)面向对象篇 · 第八讲:多态性详解——向上及向下转型、关键字 final与 instanceof的作用~
首先,我们了解到`final`关键字可以应用于类、方法和属性。`final`类表示不可继承,`final`方法表示不可覆盖,而`final`属性表示不可修改。使用`final`关键字可以提高代码的安全性和性能,并明确表达设计意图。其次,我们探讨了多态性的概念。多态性是面向对象编程的重要特性,其中包括向上转型、向下转型和关键字`instanceof`。通过向上转型,我们可以实现参数的统一和代码的灵活性。而向下转型则允许调用子类的个性化操作方法。关键字`instanceof`则可用于检查对象是否属于某个..原创 2023-07-16 13:23:11 · 636 阅读 · 25 评论