![](https://img-blog.csdnimg.cn/direct/8552c7eaebc347039e505b30c7c6f047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA
文章平均质量分 88
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
HC-KAY
这个作者很懒,什么都没留下…
展开
-
Java - 多态
在编译的时候,编译器使用Employee类中的mailCheck()方法验证该语句, 但是在运行的时候,Java虚拟机(JVM)调用的是Salary类中的mailCheck()方法。还可以引用和它类型相同的或者相兼容的对象。Java中所有的方法都能以这种方式表现,借此,重写的方法能在运行时调用,不管编译的时候源代码中引用变量是什么数据类型。因为e是Employee的引用,所以调用e的mailCheck()方法则有完全不同的结果。当子类对象调用重写的方法时,调用的是子类的方法,而不是父类中被重写的方法。原创 2024-06-27 13:42:59 · 949 阅读 · 0 评论 -
Java - 包(package)
而且在实际开发中这样做是值得提倡的,当你自己完成类的实现之后,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注释等是相关的。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个package的声明放在这个源文件的开头。编译之后的.class文件应该和.java源文件一样,它们放置的目录应该跟包的名字对应起来。编译的时候,编译器为包中定义的每个类、接口等类型各创建一个不同的输出文件,输出文件的名字就是这个类型的名字,并加上.class作为扩展后缀。原创 2024-06-27 13:41:03 · 904 阅读 · 0 评论 -
Java - 接口
正如EventListener接口,这是由几十个其他接口扩展的Java API,你可以使用一个标记接口来建立一组接口的父接口。这种情况是标记接口最初的目的,实现标记接口的类不需要定义任何接口方法(因为标记接口根本就没有方法),但是该类通过多态性变成一个接口类型。以上的程序片段是合法定义的子接口,与类不同的是,接口允许多重继承,而 Sports及 Event 可能定义或是继承相同的方法。Hockey接口自己声明了四个方法,从Sports接口继承了两个方法,这样,实现Hockey接口的类需要实现六个方法。原创 2024-06-27 13:40:22 · 696 阅读 · 0 评论 -
Java - 封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。要访问该类的代码和数据,必须通过严格的接口控制。原创 2024-06-27 13:39:41 · 264 阅读 · 0 评论 -
Java - 抽象类
在 Java 面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。尽管我们不能实例化一个Employee类的对象,但是如果我们实例化一个Salary类对象,该对象将从Employee类继承3个成员变量和7个成员方法。继承抽象方法的子类必须重写该方法。如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。原创 2024-06-27 13:38:59 · 333 阅读 · 0 评论 -
Java - 重写(Override)与重载(Overload)
方法的重写 (Overriding) 和重载 (Overloading) 是 java 多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载 (Overloading)。(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写 (Overriding)。原创 2024-06-27 13:37:51 · 863 阅读 · 0 评论 -
Java - 继承
如果类 A 是类 B 的父类,而类 B 是类 C 的父类,我们也称类 C 是 A 的子类,类 C 是从类 A 继承而来的。所有 Java 的类均是由 java.lang.Object 类继承而来的,所以 Object 是所有类的祖先类,而除了 Object 外,所有类必须有一个父类。作为子类,类 B 的实例拥有类 A 所有的成员变量,但对于 private 类型的成员变量类 B 却没有访问权限,这保障了类 A 的封装性。以上的代码片段说明,类 B 由类 A 继承而来的,类 B 是类 A 的子类。原创 2024-06-27 13:36:35 · 687 阅读 · 0 评论 -
Java - 基础语法
一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。原创 2024-06-18 17:57:03 · 736 阅读 · 0 评论 -
Java - 注释
- 在计算机语言中,注释是计算机语言的一个重要组成部分,用于在源代码中解释代码的作用,可以增强程序的可读性,可维护性。- Java 注释是一种在 Java 程序中用于提供代码功能说明的文本。- 注释不会被编译器包含在最终的可执行程序中,因此不会影响程序的运行。- 注释是良好的编程习惯,它们帮助程序员更容易地理解代码的用途和功能,并且在团队协作中非常有用。原创 2024-06-18 11:19:55 · 358 阅读 · 0 评论 -
Java - 对象和类
使用 Object 类型声明变量只能在编译时访问 Object 类中的方法和属性,但在运行时,你可以通过强制类型转换将其转换为特定类型,以便访问特定类型的方法和属性。在本节的最后部分,我们将学习源文件的声明规则。程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。语句就是用来提供一个合理的路径,使得编译器可以找到某个类。中,如果给出一个完整的限定名,包括包名、类名,那么。类有若干种访问级别,并且类也分不同的类型:抽象类和。来创建一个新的对象。还有一些特殊的类,如:内部类、匿名类。原创 2024-06-18 11:59:47 · 957 阅读 · 0 评论 -
Java - 基本数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。原创 2024-06-18 14:31:10 · 749 阅读 · 0 评论 -
Java - 变量类型
在Java中,变量是存储数据的基本单元。Java支持多种数据类型,这些数据类型可以分为两大类:原始类型(primitive types)和引用类型(reference types)。原创 2024-06-18 15:25:45 · 969 阅读 · 0 评论 -
Java - 变量命名规则
- 在 Java 中,不同类型的变量(例如实例变量、局部变量、静态变量等)有一些命名规则和约定。- 遵循一些基本规则,这有助于提高代码的可读性和维护性。原创 2024-06-18 15:49:36 · 429 阅读 · 0 评论 -
Java - 修饰符
抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。抽象类可以包含抽象方法和非抽象方法。实例//抽象方法。原创 2024-06-18 17:40:31 · 841 阅读 · 0 评论 -
Java - 运算符
虽然都是自增(他们的运算结果都是等于B+1),但B++和++B还是有所区别,++B是左值,直接原地操作(可以理解为直接在变量B上+1),B++是右值,在编译器中运算的时候会先构建一个临时变量,用临时变量运算+1后再赋值给B。所以,在下面实例代码中,打印d++的时候发现结果并没有+1(这个时候打印的是d这个变量,运算的是d的临时变量),但是后一条打印的语句显示的结果又是+1后的结果(临时变量的值赋给变量d了)。下表列出了所有的算术运算符。下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。原创 2024-06-18 17:51:12 · 813 阅读 · 0 评论 -
Java - 循环结构 - for, while 及 do…while
*注意:**布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。**声明语句:**声明新的局部变量,该变量的类型必须和数组元素的类型匹配。while循环和while循环相似,不同的是,do…while循环中,程序立即跳转到布尔表达式的判断语句。**表达式:**表达式是要访问的数组名,或者是返回值为数组的方法。break跳出最里层的循环,并且继续执行该循环下面的语句。for循环执行的次数是在执行前就确定的。原创 2024-06-18 18:34:41 · 244 阅读 · 0 评论 -
Java - 分支结构 - if…else/switch
使用嵌套的 if-else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。if 语句后面可以跟 else 语句,当if语句的布尔表达式值为 false 时,else 语句块会被执行。如果布尔表达式的值为 true,则执行if语句中的代码块。否则执行 If 语句块后面的代码。if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。你可以像 if 语句一样嵌套 else if…原创 2024-06-19 13:06:40 · 564 阅读 · 0 评论 -
Java - Number 类
相似的,编译器也可以把一个对象拆箱为内置类型。Number 类是 java.lang 包下的一个抽象类,提供了将包装类型拆箱成基本类型的方法,所有基本类型(数据类型)的包装类型都继承了该抽象类,并且是final声明不可继承改变;对应的包装类型也有八种:Byte、Integer、Short、Long、Double、Float、Character、Boolean;一般情况下我们会使用数据的基本数据类型:byte、int、short、long、double、float、boolean、char;原创 2024-06-19 13:40:09 · 762 阅读 · 0 评论 -
Java - Character 类
例如,将一个 char 类型的参数传递给需要一个 Character 类型参数时,那么编译器会自动地将 char 类型参数转换为 Character 对象。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。本章节我们主要向大家介绍一下Java Character类,以及Character类的用法。对于方法的完整列表,请参考的 java.lang.Character API 规范。这三个句子里的boolean代表,这三个方法使用后的返回值是 boolean 型。原创 2024-06-19 13:44:12 · 487 阅读 · 0 评论 -
Java - String 类
String 类使用静态方法 format() 返回一个 String 对象而不是 PrintStream 对象。:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。原创 2024-06-19 13:51:51 · 845 阅读 · 0 评论 -
Java - StringBuffer 和 StringBuilder 类
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。和String类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。原创 2024-06-19 13:55:29 · 602 阅读 · 0 评论 -
Java - 数组
在以后的实际开发之中,会更多的使用数组概念,而直接使用,大部分情况下都只是做一个 for 循环输出。但是千万要记住,数组属于引用数据类型,所以在数组使用之前一定要开辟空间(实例化),如果使用了没有开辟空间的数组,则一定会出现。数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 foreach 循环。java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。原创 2024-06-19 14:05:23 · 762 阅读 · 0 评论 -
Java - 日期时间
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。因此,可以利用一个格式化字符串指出要被格式化的参数的索引。使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。把c1对象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的数值会被重新计算。把c1对象的日期减去10,也就是c1所表的日期的10天前的日期,其它所有的数值会被重新计算。原创 2024-06-19 14:08:29 · 631 阅读 · 0 评论 -
Java - 正则表达式
要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。Start方法返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引,end方法最后一个匹配字符的索引加1。PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。例如,正则表达式(dog) 创建了单一分组,组里包含"d",“o”,和"g"。原创 2024-06-19 14:12:06 · 806 阅读 · 0 评论 -
Java - 方法
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用修饰符 返回值类型 方法名 (参数类型 参数名){...方法体...return 返回值;方法包含一个方法头和一个方法体。修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。原创 2024-06-19 14:19:58 · 915 阅读 · 0 评论 -
Java - 流(Stream)、文件(File)和IO
BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。**注意:**write() 方法不经常使用,因为 print() 和 println() 方法用起来更为方便。一个流可以理解为一个数据的序列。创建了 InputStream 对象,就可以使用下面的方法来读取流或者进行其他的流操作。原创 2024-06-19 15:02:12 · 875 阅读 · 0 评论 -
Java - Scanner 类
java.util.Scanner是Java5的新特征,我们可以通过 Scanner 类来获取用户的输入。可以看到 com 字符串并未输出,接下来我们看 nextLine。可以看到 com 字符串输出。原创 2024-06-19 15:06:37 · 369 阅读 · 0 评论 -
Java - 异常处理
程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?在Java中,异常就是Java在编译或运行或者运行过程中出现的错误。异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;原创 2024-06-19 15:10:00 · 934 阅读 · 0 评论 -
JWT 使用教程
JSON Web Token (JWT)是一个开放标准(RFC 7519) ,它定义了一种紧凑和自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。此信息可以进行验证和信任,因为它是经过数字签名的。JWT 可以使用机密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。虽然可以对 JWT 进行加密,以便在各方之间提供保密性,但是我们将关注已签名的Token。签名Token可以验证其中包含的声明的完整性,而加密Token可以向其他方隐藏这些声明。原创 2024-05-12 11:01:38 · 583 阅读 · 0 评论