![](https://img-blog.csdnimg.cn/11c013ad27ed457b826bfe2f2c55dde0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础篇
文章平均质量分 85
Java基础篇
正在奋斗的程序猿
少年,就要止步于此了吗?
展开
-
Java 中的双冒号“::”
在 Java 中,双冒号 :: 是 Java 8 引入的一个新特性,称为方法引用(Method Reference)。方法引用可以看作是 Lambda 表达式的一种简化形式,适用于那些 Lambda 表达式只是简单地调用一个方法的情况。它依赖于编译器的支持,而不是 JVM 本身的支持,编译器会将方法引用转换为相应的 Lambda 表达式或接口实现对象,以便 JVM 能够无差别地执行字节码文件。示例:System.out::println 等价于 (x) -> System.out.println(x)原创 2024-09-08 16:29:14 · 52 阅读 · 0 评论 -
Java中 ==、equals() 、equalsIgnoreCase() 和compareTo() 方法对比详解
Java中 ==、equals() 、equalsIgnoreCase() 和compareTo() 方法对比详解原创 2023-11-15 20:12:51 · 1144 阅读 · 0 评论 -
Java基础篇--日志
总体来说,SLF4J是一个简单易用、高效可靠的Java日志门面框架,它为Java应用程序提供了一种标准的日志接口,使得应用程序可以以统一的方式记录日志,并且方便地切换不同的日志框架实现。它具有简单易用的配置方式、高性能的异步记录、多种Appender支持、强大的过滤机制等特点,适用于各种规模的Java项目。配置Log4j 2:选择适合的配置方式(XML、Properties、JSON、YAML或编程方式),并进行相应的配置,包括Logger、Appender、Layout、Filters等。原创 2023-10-01 21:45:34 · 299 阅读 · 0 评论 -
Java基础篇--Lambda表达式
接下来,我们编写了一个名为filterList()的辅助方法,该方法接受一个整数列表和一个Predicate接口作为参数,并返回满足Predicate条件的所有元素所组成的列表。接着,我们定义了另一个Function接口doubleToString,用于将整数加倍,并将结果转换为字符串。)是Java 8中引入的一种新特性,被誉为是该版本最强大的新特性之一,它允许我们将函数作为参数传递给方法,或者将代码视为数据。在上面的代码中,我们首先创建了一个整数列表numbers,包含一组整数。用于提供一个值或对象。原创 2023-08-31 08:54:18 · 447 阅读 · 0 评论 -
Java基础篇--YML简介
在Java中,可以通过支持YAML的库(如SnakeYAML,Jackson YAML等)将YAML文件解析为Java对象,或者将Java对象序列化为YAML文件。在这个例子中,有两个文档块,每个文档块包含一个键值对。第二个文档块的键是age,值为25。第二个文档块后面还有一个额外的---标记,表示文档块的结束。第二个文档块中,服务器端口被设置为8083,并且指定的Spring配置文件属于“dev”环境。第一个文档块中,服务器端口被设置为8081,并且激活的Spring配置文件是“prod”。原创 2023-08-30 15:28:31 · 1484 阅读 · 0 评论 -
Java基础篇--XML简介
例如,如果将名为"table"的Schema别名为"a",那么在XML文件中,所有名为"table"的元素都表示使用了名为"a"的Schema。例如,如果Schema中定义了一个名为"table"的元素,那么在XML文档中,如果使用了名为"table"的元素,那么这个元素就符合了Schema中对"table"的定义。ELEMENT> 声明了一个XML元素,定义了元素名称和它可以包含的内容。其中,元素名称是元素的标签名称,数据类型指定了该元素可以包含的内容类型,包含内容列出了该元素可以包含的其他元素或内容。原创 2023-08-29 17:35:31 · 2252 阅读 · 0 评论 -
Java基础篇--JSON
从Github中的统计来看,Jackson能够成为最流行的JSON解析器之一,Spring MVC的默认json解析器便是Jackson,这归功于它的诸多优点和灵活的API。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用的是键值对的方式,包含对象(或者叫记录、结构、字典、哈希表、有键列表或关联数组等)和数组两种结构。它使用了独创的算法来优化解析和生成JSON的速度,这使得它在速度上超过了其他所有的JSON库。原创 2023-08-30 10:54:46 · 6353 阅读 · 0 评论 -
Java基础篇--异常处理机制
在try块中编写可能会抛出异常的代码,如果发生了对应的异常,就会跳转到与之匹配的catch块中进行处理。针对这种情况, Java语言引入了异常,以异常类的形式对这些非正常情况进行封装,通过错误处理机制对程序运行时发生的各种问题进行处理。抛出异常的过程中,当前方法的执行将被中断,然后异常被传递给调用堆栈中的上一级调用方法。异常是在程序执行过程中出现的问题或错误的一种表示,它可以帮助我们识别和处理程序中的异常情况,从而保证程序的稳定性和可靠性。获取异常类名和异常信息,以及异常出现在程序中的位置,原创 2023-08-16 17:44:51 · 184 阅读 · 0 评论 -
Java基础篇--内部类
在Java中,允许在一个类的内部定义类,这样的类称作内部类,内部类所在的类称作外部类。在实际开发中,根据内部类的位置、修饰符和定义方式的不同,内部类可分为4种,分别是成员内部类、局部内部类、静态内部类、匿名内部类。原创 2023-08-16 15:51:19 · 85 阅读 · 0 评论 -
Java基础篇--多态性
使用父类类型的引用指向子类的对象:可以使用父类类型的引用来引用子类的对象,并且通过这个引用访问父类和子类中的方法。该引用只能调用父类中定义的方法和变量:虽然使用父类类型的引用指向子类对象,但只能访问父类中定义的方法和变量。如果子类中有重写父类方法的情况下,则会调用子类中的方法。方法重写(覆盖)和动态调用:如果子类中重写了父类中的方法,那么在运行时调用这个方法时,将会调用子类中的这个方法。这被称为动态绑定或动态调用,即在运行时根据实际对象的类型确定调用哪个方法。原创 2023-08-16 10:37:00 · 301 阅读 · 0 评论 -
Java基础篇--重写(Override)与重载(Overload)
方法的重写和重载是Java中多态性的不同表现形式。重载是一个类中定义多个方法名相同但参数数量、类型或次序不同的情况,而重写是子类存在与父类方法名相同、参数个数、类型和返回值均相同的方法。方法重载是一种静态多态性,主要通过在编译时根据方法的参数来确定调用哪个重载方法。方法重载允许在同一个类中定义具有相同名称但不同参数的多个方法,提供了更灵活和方便的方法调用方式。方法重写是一种动态多态性,通过父类和子类的关系,子类可以重写继承自父类的方法,实现方法的多态性。原创 2023-08-16 11:00:36 · 509 阅读 · 0 评论 -
Java基础篇--抽象类与接口
当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,前面在定义Animal类时,shout()方法用于描述动物的叫声,但是针对不同的动物,叫声也是不同的,因此在shout()方法中无法准确描述动物的叫声。针对上面描述的情况,Java提供了抽象方法来满足这种需求。抽象方法是使用abstract关键字修饰的成员方法,抽象方法在定义时不需要实现方法体。在抽象类或接口中可以包含抽象方法,用于定义一种行为的规范,具体的实现由子类来完成。原创 2023-08-15 21:45:49 · 314 阅读 · 0 评论 -
Java基础篇--继承性
当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,Java提供了super关键字,super关键字是Java中的一个特殊关键字,用于在子类中访问父类的成员变量、方法和构造函数。通过继承,子类可以重写父类的方法,并且根据需要添加新的属性和方法。子类可以实现父类的方法:子类可以根据自身的需要重新实现(覆盖)父类中的方法,从而给予该方法新的实现逻辑。子类拥有父类非私有的属性和方法:子类可以继承父类的公有和受保护成员,即可以访问和使用父类中被继承的非私有属性和方法,从而实现代码的重用。原创 2023-08-15 16:40:49 · 226 阅读 · 0 评论 -
Java基础篇--封装性
通过以上步骤,我们将属性私有化,并通过公有的setter和getter方法提供对属性的访问方式,实现了类的封装。总之,封装是Java面向对象编程的重要特性,通过隐藏和限制对数据的访问,提供清晰的接口和信息隔离,带来了数据安全性、代码复用性和系统灵活性等好处。构造代码块在每次创建对象时被执行,先于构造方法执行。在Java中,封装是一种面向对象编程的概念,用于将相关的数据和行为封装到一个单独的实体中,称为类。Java语言是一个纯的面向对象程序设计语言,所以它有封装,继承,多态的特性,今天要学习的是封装特性。原创 2023-08-15 15:13:46 · 286 阅读 · 0 评论 -
Java基础篇--正则表达式
在程序开发过程中,我们会对一些字符串做各种限制,比如我们常见的注册邮箱、手机号等操作,一般都会做限制长度、格式等。而这些做限制的操作就是用正则表达式做到的。所谓的正则表达式就是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。正则表达式由普通字符(例如字符a-z)和特殊字符(元字符)组成的文字模式,所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。常见的元字符如下表转义字符,例如"\n"原创 2023-08-15 09:38:49 · 572 阅读 · 0 评论 -
Java基础篇--日期时间类
在开发中经常需要处理日期和时间,Java提供了一套专门用于处理日期时间的API,在日期时间类中了包含LocalDate类、LocalTime类、Instant类、Duration类以及Period类等,这些类都包含在java.time包中。类的名称功能描述Instant表示时刻,代表的是时间戳LocalDate不包含具体时间的日期LocalTime不含日期的时间包含了日期及时间Duration基于时间的值测量时间量Period计算日期时间差异,只能精确到年月日Clock时钟系统,用于查找当前时刻。原创 2023-08-14 21:27:42 · 3632 阅读 · 0 评论 -
Java基础篇--SecureRandom(安全随机)类
类的实例使用了更加安全的随机数生成算法,这些算法通常经过密码学和安全专家的审查和认证。除了上述常用方法外,SecureRandom类还提供了许多其他方法和功能,它适用于需要高安全性和密码学强度的场景,如密码生成、密钥生成等。值得注意的是,由于SecureRandom类使用的是安全而耗费计算资源的随机数生成算法,因此相对于普通的。不同,它提供了一种可信赖的随机数生成器,用于生成具有高度随机性的随机数。类是Java中用于生成安全的随机数的一个类。:生成随机字节,并将其填充到指定的byte数组中。原创 2023-08-14 14:40:35 · 4922 阅读 · 0 评论 -
Java基础篇--Random(随机)类
相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数。两次产生的随机数序列是不一样的。这是因为当创建Random的实例对象时,没有指定种子,系统会以当前时间戳作为种子,产生随机数。Java的java.util包中有一个Random类,它可以在指定的取值范围内随机产生数字。Random类生成的是伪随机数,即看似随机但实际上是通过确定性算法计算得到的。返回的是0.0和1.0之间double类型的值。原创 2023-08-14 14:31:30 · 659 阅读 · 0 评论 -
Java基础篇--Runtime类(封装虚拟机)
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例。因此在Runtime类定义的时候,它的构造方法已经被私有化了(单例设计模式的应用),对象不可以直接实例化。由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。: 该静态方法返回当前Java应用程序的运行时对象。: 这个方法用于在操作系统中执行指定的命令。它创建一个新的进程并在其中执行给定的命令。原创 2023-08-14 10:09:12 · 537 阅读 · 0 评论 -
Java基础篇--System(系统交互)类
System类是Java核心库中的一部分,提供了与系统环境交互的属性和方法它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。取得当前的系统属性arraycopy()方法srcsrcPosdestdestPoslength接下来通过一个案例演示数组元素的拷贝。原创 2023-08-13 22:13:03 · 324 阅读 · 0 评论 -
Java基础篇--浅拷贝和深拷贝
选择使用浅拷贝还是深拷贝取决于实际需求。如果希望复制对象后的修改不会影响原始对象,应该使用深拷贝;如果可以接受复制对象的修改影响原始对象,或者对象较大且复制性能要求高,则可以使用浅拷贝。原创 2023-08-13 22:21:40 · 647 阅读 · 0 评论 -
Java基础篇--数组
数组是Java中的一种数据结构,用于存储相同类型的多个元素。它提供了一个连续的内存块来存储数据,并可以通过索引访问和操作数组中的元素。原创 2023-08-13 11:15:37 · 242 阅读 · 0 评论 -
Java基础篇--String(字符串)类
Java中的String类是用于处理字符串的核心类之一。它属于Java的标准库,并提供了许多操作字符串的方法。String类是不可变的,这意味着一旦创建了一个String对象,它的值就不能被改变。当对字符串进行操作时,实际上是创建了一个新的String对象。如果需要对字符串做很多修改,那么应该选择使用。原创 2023-08-13 08:43:16 · 797 阅读 · 0 评论 -
Java基础篇--StringBuffer 和 StringBuilder 类(处理可变字符串)
Java中的StringBuffer和StringBuilder类是用于处理可变字符串的核心类。它们提供了一系列方法来操作字符串,相比于,它们可以在原有字符串的基础上进行修改,而不需要创建新的对象。原创 2023-08-13 08:42:58 · 276 阅读 · 0 评论 -
Java基础篇--Character(字符)类
Character 类是用来操作单个字符的,它将 char 值包装在一个对象中。实际上,在 Java 中,char 是基本数据类型,而 Character 是 char 的包装类。通过 Character 类,可以使用一系列方法来操作字符。此外,在某些情况下,Java 编译器会自动地进行装箱(将 char 转换为 Character)和拆箱(将 Character 转换为 char)操作。原创 2023-08-12 17:00:37 · 2847 阅读 · 0 评论 -
Java基础篇--Number(包装)& Math (数学运算)类
Java中的Number类是一个抽象类,它是所有包装类(如Integer、Double、Long等)的父类。这个类提供了将基本数据类型(如int、double、long等)封装为对象,并在对象中进行数字值的操作。在Java中,将基本数据类型转换为其对应的包装类对象的过程称为装箱(Boxing),而将包装类对象转换为基本数据类型的过程称为拆箱(Unboxing)。类的这些方法,可以执行基本的数学运算,例如绝对值计算、取最大/最小值、四舍五入、三角函数计算以及指数和对数运算等。它作为其他具体数值包装类(如。原创 2023-08-12 16:04:42 · 674 阅读 · 0 评论 -
Java基础篇--循环和选择结构语句
循环和选择结构是 Java 程序中常用的控制语句,用于控制程序的执行流程。下面简要介绍循环和选择结构的语法和用法。原创 2023-08-12 10:02:45 · 265 阅读 · 0 评论 -
Java基础篇--运算符
在程序中经常出现一些特殊符号,如+、-、*、=、>等,这些特殊符号称作运算符。运算符用于对数据进行算术运算、赋值运算和比较运算等。在Java中,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符等。算术运算符在数学运算中最常见的就是加减乘除,被称作四则运算。Java中的算术运算符就是用来处理四则运算的符号,算术运算符是最简单、最常用的运算符号。原创 2023-08-11 21:23:00 · 638 阅读 · 0 评论 -
Java基础篇--修饰符
Java语言提供了很多修饰符,主要分为以下两类:访问修饰符和非访问修饰符原创 2023-08-11 16:56:35 · 483 阅读 · 0 评论 -
Java基础篇--变量类型
Java语言中支持的变量类型包括:局部变量(Local Variables):局部变量是定义在方法、构造方法或语句块中的变量,其作用域仅限于当前方法、构造方法或语句块。局部变量在使用前需要声明,并且不能被访问修饰符修饰。成员变量(Instance Variables):成员变量是定义在类中、方法之外的变量,其作用域为整个类,在类中的任何方法、构造方法和语句块中都可以访问。成员变量可以被访问修饰符修饰。原创 2023-08-11 10:03:16 · 528 阅读 · 0 评论 -
Java基础篇--基本数据类型
Java中的所有数据类型如下图。原创 2023-08-10 16:28:55 · 213 阅读 · 0 评论 -
Java基础篇--对象和类
在Java中,对象是根据类定义而创建的实例,类定义了对象的属性和行为。通过创建类的对象,我们可以访问对象的字段和方法,并对其进行操作。对象和类的概念是面向对象编程的基础,允许我们以更模块化、可维护和可扩展的方式编写代码。原创 2023-08-10 09:57:03 · 148 阅读 · 0 评论 -
Java基础篇--入门知识
Java是一种广泛应用的编程语言,具有简单、面向对象、跨平台等特点。它由Sun Microsystems(现在是Oracle Corporation)于1995年 5 月推出,并在全球范围内得到了广泛的应用和使用。Java的设计目标之一是让开发人员能够编写一次代码,随后在不同的操作系统和硬件平台上运行。Java语言具有丰富的类库和强大的功能,适用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序和嵌入式系统等。原创 2023-08-09 10:39:41 · 260 阅读 · 0 评论