Java期末复习专区(基础知识点)

目录

Java的概述

Java的语言特点

JDK和JRE

Java注释

Java标识符

Java常见关键字

变量的数据类型(两种)

各数据类型的内存空间

Java运算符

while循环语句与do…while循环语句的区别

Java中的方法

Java中的重载和重写

Java中的封装、继承,多态

数组的遍历

java中的四种访问控制权限

java中的成员变量和局部变量

什么是引用数据类型

Java中的构造方法

this关键字

super关键字

final关键字

Object类

Java中的内部类

Throwable的两个直接子类

Java中的异常类

Java中封装字符串的类

Random类

Java中的包装类

Pattern类

Java中的集合

Properties集合

Java中的泛型

java中的I/O流

多线程实现方式

线程的生命周期

setPriority方法

线程的休眠、插队、让步

死锁现象

Java中的JDBC

Java中的GUI

Swing的顶级容器

Java中的布局管理器

Swing常用事件

Java中的面板组件

网络通信协议

java中的抽象类

java中的接口


Java的概述

Java是一种高级计算机语言,是由Sun公司在1995被重命名为Java,最初的名字是OAK。

Java是支持跨平台和完成面向对象的程序设计语言。

Java的语言特点

①简单性  ②面向对象  ③安全性  ④跨平台性  ⑤支持多线程  ⑥分布式


JDK和JRE

●JDK(Java Development kit):是一套Java开发环境,它包含了Java编译器,Java调试等工具。

●JRE(Java Rutime Environment):Java程序的运行环境


Java注释

单行注释  ( 符号“//”)

int a = 2;  //定义一个整形变量

多行注释   (符号以 “/*”开头,“*/”结尾)

/*

int a = 1;
int b = 2;  

*/

文档注释 (符号以“/**”开头,“*/”结尾)

int a,b,c;

/**
hello
*/

Java标识符

组成:Java中的标识符可以由任意顺序的字母、下划线(_)、美元符号($)、数字组成;

注意:标识符不能以数字开头,也不能是Java中的关键字,true、false和null虽然不是关键字,但具有特殊意义,也不可作为标识符使用。


Java常见关键字

intthisabstractforcontinuenew
publicfinallybooleanreturnfloatif
switchdefaultprivateprotectedthrowthrows
longshortassertgotopackagesynchronized
dodoubleimplementsbyteelseimport
caseenuminstanceoftransientcatchextends
trycharfinalinterfacestaticvoid
classstrictfpvolatileconstnativewhile
super

注意:所有关键字是小写


变量的数据类型(两种)

①基本数据类型

●数值型(可以分为整数类型和浮点类型)

1.整数类型:byte、int、long、short

2.浮点类型:float、double

●字符型(char)

●布尔型(boolean)

②引用数据类型

●接口、类、枚举等引用数据类型


各数据类型的内存空间

知识点:一个字节等于8位内存空间

整型数据类型
数据类型内存空间取值范围
byte8位-128~127
short16位-32768~32767
int32位-2的31次方~2的31次方减1
long64位-2的63次方~2的63次方减1

浮点数据类型
数据类型内存空间取值范围
float32位(4个字节)1.4E-45~3.4028235E38
double64位(8个字节)4.9E~1.7976931348623157E308

字符型(char):占用16位(两个字节)的内存空间。


Java运算符

①算术运算符

+(加号)、-(减号)、*(乘号)、/(除号)、%(取模;即取余数的意思)、++(自增)、--(自减)

②赋值运算符

=(赋值)、+=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)、%=(取余等于)

③比较运算符

>(大于)、<(小于)、==(比较左边是否等于右边,判断等于)、>=(大于等于)、<=(小于等于)、!=(不等于)

④逻辑运算符

&(与)、|(或)、!(非)、^(异或)、&&(短路与)、||(短路或)

知识点:&(与)和&&(短路与)的区别:

&(与):与&&不同,&不会跳过执行第二个操作数,无论第一个操作数的值如何,都会对第二个操作数进行求值

&&(短路与): 当使用&&时,如果第一个操作数为假(false),则不会执行第二个操作数,因为整个表达式已经为假,这被称为“短路”特性。这意味着,如果第一个条件不满足,程序将不会执行后续的条件判断或语句。


while循环语句与do…while循环语句的区别

while 循环语句

while 循环先进行条件判断,如果条件为假,则一次循环都不执行;

●可能会出现零次循环的情况;

●循环体执行与条件判断是分离的,即先判断条件,再执行循环体。

do…while循环

do...while 循环先执行一次循环体,再进行条件判断;

●至少会执行一次循环体;

●循环体执行与条件判断是在一起的,即先执行循环体,再判断条件。


Java中的方法

方法(Method):是一段可重复调用的代码块,用于执行特定的任务或操作。方法封装了一系列的语句,可以接收输入参数并返回一个值。它是面向对象编程的核心概念之一。

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){

执行语句
...
return 返回值;


}

Java中的重载和重写

重载:同一个作用域内方法名想同,参数个数或参数类型不同的方法。

重写:指的是子类重新编写父类中的方法,方法名、返回类型和参数列表都必须相同

区别:   重载是在同一个类中定义多个同名方法,根据不同的参数列表进行区分;而重写是子类重新定义父类的方法,方法名、返回类型和参数列表必须相同,实现了多态性的特性。重载提供了更灵活的方法调用方式,而重写则是实现多态性的重要手段。


Java中的封装、继承,多态

封装(Encapsulation):

①:封装是指将数据和方法打包到一个单一的单元(类)中,并对外部隐藏对象的工作方式。这意味着一个类的内部实现细节对外部是不可见的,只有通过类提供的公共接口(方法)才能与对象进行交互。


②:在Java中,封装可以通过访问修饰符(public、private、protected)来实现。通常,类的成员变量被声明为私有(private),并通过公共(public)方法来访问和修改这些变量。

继承(Inheritance):

①:继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。子类可以拥有父类的所有属性和方法,并且可以在其基础上进行扩展或修改。


②:继承在Java中通过使用关键字extends来实现,子类可以继承父类的非私有成员(字段和方法)。Java中只支持单继承,即一个类只能继承自一个父类,但可以通过接口实现多继承。

多态(Polymorphism):

①:多态是指同一类型的对象在不同情况下表现出不同的行为。在Java中,多态有两种形式:编译时多态(静态多态)和运行时多态(动态多态)。

②:编译时多态是通过方法重载(Overloading)实现的,即同一个方法名但参数列表不同,编译器根据参数类型来决定调用哪个方法。

③:运行时多态是通过方法重写(Overriding)和对象的绑定实现的。当子类重写了父类的方法时,可以在运行时根据对象的类型来确定调用哪个方法,实现了多态性。


数组的遍历

含义:依次访问数组中的每个元素


java中的四种访问控制权限

public(公共的):

①:公共的访问权限,被声明为public的类、接口、变量或方法可以在任何地方被访问,无访问限制。
②:public修饰的成员可以被同一类、同一包以及不同包中的其他类访问。

private(私有的):

①:私有的访问权限,被声明为private的类、接口、变量或方法只能在定义它们的类内部访问。
②:private修饰的成员只能被同一类中的其他成员访问,对外部是不可见的。


protected(受保护的):

①:受保护的访问权限,被声明为protected的类、接口、变量或方法可以在同一包内以及该类的子类中被访问。
②:protected修饰的成员对于同一包中的其他类是可见的,同时也对于子类是可见的。


default(默认的):

①:默认的访问权限,没有指定访问修饰符时,默认为default访问权限(也被称为包级访问权限)。
②:默认访问权限限制了同一个包中的类可以访问该成员,但对于不同包中的类是不可见的。


java中的成员变量和局部变量

成员变量:定义在类中的变量。

局部变量:定义在方法中的变量。


什么是引用数据类型

含义:内存空间可以同时被多个栈引用。


Java中的构造方法

特点:

①:对象创建和初始化: 构造方法在对象创建时被调用,用于初始化对象的状态、属性和数据成员。

②:与类同名: 构造方法的名称必须与类名完全相同,且大小写也要一致。

③:无返回类型: 构造方法没有返回类型(包括void),因为构造方法的主要目的是创建新的对象,而不是返回值。

④:可以重载: 类可以定义多个构造方法,只要它们的参数列表不同,即构成方法重载。

⑤:默认构造方法: 如果没有显式定义任何构造方法,Java会提供一个默认的无参构造方法(没有任何参数),用于创建对象。


this关键字

作用:

①:可以使用this关键字调用本类中的属性。

②:可以使用this关键字调用成员方法。

③:可以使用this关键字调用本类的构造方法。

注意事项:

①:当在构造方法中使用this()调用其他构造方法时,它必须是构造方法的第一条语句,且只能在构造方法内部使用。

②:不能在一个类的两个构造方法中使用this互相调用。


super关键字

作用:可以在子类中调用父类的普通属性、方法和构造方法。

①: 子类可以使用super关键字来引用父类的成员变量和成员方法,以及调用父类的构造方法。这可以解决子类中与父类同名的成员变量或方法的调用冲突问题。

②:子类的构造方法可以使用super关键字来调用父类的构造方法。这样可以在子类的构造方法中先调用父类的构造方法,执行父类的初始化操作,然后再执行子类自己的初始化操作。


final关键字

作用:

①: 如果一个类被声明为final,则表示该类不能被继承。

②: 如果一个方法被声明为final,则表示该方法不能被子类重写(覆盖)。

③: 如果一个变量被声明为final,则表示该变量的值只能被赋值一次,之后不能再修改。这样可以创建一个常量,其值在初始化后不能被更改(常量不可修改)。


Object类

含义:通常称为超类,是所以类的父类,每个类都直接或者间接继承Object类。


Java中的内部类

4种内部类:成员内部类、局部内部类、静态内部类、匿名内部类。


Throwable的两个直接子类

Error类(错误类)和Exception类(异常类)


Java中的异常类

  1. 编译时异常(Checked Exception):继承自Exception的异常类,表示程序中可能出现的可预测的非致命性异常情况。这些异常必须在代码中进行处理,要么通过捕获并处理异常,要么通过在方法上声明并抛出异常。
  2. 运行时异常(Unchecked Exception):继承自RuntimeException的异常类,表示程序中可能出现的非预期的异常情况。这些异常通常是由程序错误或错误的使用方式引起的,不需要在代码中显式地捕获或声明。但是,也可以捕获并处理这些异常,以提高程序的健壮性。


Java中封装字符串的类

3个:String类、StringBuffer类、StringBuilder类

  1. String类: String类是不可变的,一旦创建了字符串对象,其值就不可修改。当对字符串进行拼接、替换等操作时,实际上是创建了一个新的String对象,原对象并不会改变。这种不可变性使得String对象具有线程安全性,并且可以被多个线程共享而不需要额外的同步。
  2. StringBuffer和StringBuilder类: StringBuffer和StringBuilder是可变的字符串类,可以通过添加、删除、插入等操作修改字符串内容。

  3. StringBuffer线程安全的,可以在多线程环境中使用,

  4. StringBuilder不是线程安全的,适用于单线程环境。

  5. StringBuffer和StringBuilder在使用上基本一致,提供了相似的方法,如拼接、插入、删除等。其中,StringBuffer类的方法都是同步的(线程安全),而StringBuilder类的方法则是非同步的。


Random类

作用:在指定的取值范围内随机产生数字。


Java中的包装类

  1. Byte: 包装byte类型的数据。
  2. Short: 包装short类型的数据。
  3. Integer: 包装int类型的数据。
  4. Long: 包装long类型的数据。
  5. Float: 包装float类型的数据。
  6. Double: 包装double类型的数据。
  7. Character: 包装char类型的数据。
  8. Boolean: 包装boolean类型的数据。

Pattern类

作用:用于创建正则表达式。


Java中的集合

  • 集合类都位于Java.util包中
  1. 单列集合(Collection):
  • List接口: 继承自Collection接口,表示有序的集合,可以有重复元素。常用的实现类有ArrayList、LinkedList(集合内部维护了一个双向循环链表)、Vector等。

特点:(元素有序,可重复)

  • Set接口: 继承自Collection接口,表示不允许重复元素的集合。常用的实现类有HashSet、LinkedHashSet、TreeSet等。

特点:(元素无序,不可重复)

     2.  双列集合(Map):

不属于Collection接口的一部分,表示键值对的映射关系。常用的实现类有HashMap、LinkedHashMap、TreeMap等。

特点:(元素的键值是无序,不可重复的)


Properties集合

作用:用来存储字符串类型的键和值。


Java中的泛型

Java的泛型使用尖括号<>来指定类型参数,在使用泛型的类、接口或方法中,将具体的类型传递给类型参数。例如<T>


java中的I/O流

  • InputStream和OutputStream: 是所有字节输入输出流的基本类。用于处理二进制数据。
  • FileInputStream和FileOutputStream: 用于读写文件的字节流类。
  • Reader和Writer: 是所有字符输入输出流的基本类。用于处理字符数据。
  • FileReader和FileWriter: 用于读写文件的字符流类。
  • BufferedInputStream和BufferedOutputStream: 提供缓冲功能的字节流。
  • BufferedReader和BufferedWriter: 提供缓冲功能的字符流。
  • DataInputStream和DataOutputStream: 用于读写基本数据类型的字节流。
  • ObjectInputStream和ObjectOutputStream: 用于读写Java对象的字节流。

多线程实现方式

  1. 继承java.lang包下的Thread类。
  2. 实现java.lang.Runnable接口。

线程的生命周期

  • 新建状态(New): 当线程对象被创建但还未调用start()方法时,线程处于新建状态。此时线程还没有被启动,处于不可运行状态。
  • 就绪状态(Runnable): 当调用了start()方法后,线程进入可运行状态。在可运行状态下,线程可以被线程调度器(Scheduler)选中执行,并不意味着线程一定在运行中,可能在等待CPU资源。
  • 运行状态(Running): 线程被选中执行并开始运行时,处于运行状态。此时线程正在执行其任务代码。
  • 阻塞状态(Blocked): 当线程试图获取一个锁时,如果锁已经被其他线程占用,线程会进入阻塞状态。只有当获取到所需的锁时,线程才能进入可运行状态。
  • 死亡状态(Terminated): 线程执行完其任务代码或者因异常退出后,线程进入死亡状态。处于死亡状态的线程不可再次启动或执行。

setPriority方法

作用:设置线程的优先级。


线程的休眠、插队、让步

  • sleep()方法:用于线程休眠。
  • join()方法:用于线程插队。
  • yield()方法:用于线程让步。

死锁现象

含义:指两个或多个线程互相持有对方所需要的资源,并且都在等待对方释放资源,导致所有线程都无法继续执行的情况。


Java中的JDBC

含义:JDBC(Java Database Connectivity)是一种用于连接和访问数据库的Java API。它提供了一种标准的方式,使Java应用程序能够与各种关系型数据库(如MySQL、Oracle、SQL Server等)进行交互。

  • 加载数据库驱动程序: 在使用JDBC之前,需要通过Class.forName()方法加载并注册相应数据库的驱动程序。
  • 建立数据库连接: 使用DriverManager.getConnection()方法创建一个与数据库的连接,并提供数据库的URL、用户名和密码等连接信息。
  • 创建Statement或PreparedStatement对象: 通过连接对象,可以创建Statement或PreparedStatemnt对象,用于执行SQL语句。
  • 执行SQL语句: 使用Statement或PreparedStatement对象的executeQuery()、executeUpdate()或execute()方法执行SQL语句。
  • 处理结果集: 如果执行的是查询语句,可以通过ResultSet对象获取返回的结果集,并根据需要进行处理。
  • 释放资源: 在使用完JDBC对象之后,需要手动关闭ResultSet、Statement、PreparedStatement和Connection等对象,以释放关联的数据库资源。

Java中的GUI

GUI(Graphical User Interface):图形用户界面。

GUI主要类位于:java.awt(简称AWT)和javax.swing(简称Swing)包中

Swing组件的所以类都继承于Container类。


Swing的顶级容器

  1. JFrame: JFrame是Swing中最常用的顶级容器之一,表示一个具有标题栏和边框的窗口。它可以包含其他Swing组件,并提供了许多方法来管理窗口的外观和行为,例如设置标题、大小、关闭操作等。
  2. JDialog: JDialog是一个模态或非模态对话框,通常用于显示警告、提示或用户输入等信息。与JFrame类似,JDialog也提供了一系列方法来管理对话框的外观和行为。
  3. JApplet: JApplet是用于创建Java Applet的顶级容器,通常用于在web浏览器中展示Java应用程序。与JFrame类似,JApplet也提供了一些方法来管理Applet的外观和行为。

Java中的布局管理器

  • FlowLayout(流式布局): FlowLayout按照添加组件的顺序在容器中从左到右排列组件,当一行空间不足时会自动换行。适用于需要按照顺序排列组件的情况。
  • BorderLayout(边界布局): BorderLayout将容器分为东、西、南、北和中间五个区域,每个区域只能包含一个组件。适用于需要在容器的不同位置放置不同类型组件的情况。
  • GridLayout(网格布局): GridLayout将容器划分为行和列,并将组件按照指定的行数和列数均匀排列。适用于需要将组件按照网格形式排列的情况。
  • GridBagLayout(网格包布局): GridBagLayout是一种灵活的布局管理器,可以实现各种复杂的布局。通过GridBagConstraints类来指定每个组件的布局信息,如位置、大小、对齐方式等。
  • BoxLayout(盒子布局): BoxLayout沿着容器的一个方向(水平或垂直)依次排列组件,可以嵌套使用以实现复杂的布局。适用于需要按照一定方向排列组件的情况。

Swing常用事件

窗体事件(WindowEvent)、鼠标事件(MouseEvent)、键盘事件(KeyEvent)、动作事件(ActionEvent)。


Java中的面板组件

面板:

  1. JPanel: 面板组件,用于组织和管理其他组件。
  2. JScrollPane: 滚动面板组件,用于容纳大量组件并提供滚动功能

组件:

  1. JButton: 按钮组件,用于触发某种操作或事件。
  2. JLabel: 标签组件,用于显示文本或图像。
  3. JTextField: 文本框组件,允许用户输入单行文本。
  4. JTextArea: 文本区组件,允许用户输入多行文本。
  5. JCheckBox: 复选框组件,允许用户选择或取消选择一个或多个选项。
  6. JComboBox: 下拉列表框组件,允许用户从预定义的选项列表中选择一个。(分为可编辑和不可编辑两种形式)
  7. JRadioButton: 单选按钮组件,允许用户从多个选项中选择一个。

网络通信协议

  • TCP/IP(传输控制协议/因特网互联协议)
  • UDP(用户数据报协议)
  • ICMP(控制报文协议)

java中的抽象类

  • 使用abstract关键字声明: 声明一个抽象类时需要使用关键字abstract
  • 不能被实例化: 抽象类不能直接创建对象实例。如果尝试实例化一个抽象类,会导致编译错误。
  • 可以包含抽象方法: 抽象方法是在抽象类中声明但没有实现的方法。子类必须实现(覆盖)这些抽象方法,除非子类自己也是抽象类。
  • 可以包含具体方法: 抽象类可以包含具体的方法(即有方法体的方法)。子类可以继承并重用这些具体方法。
  • 用于实现类的继承和多态: 抽象类通常用于定义一组相关的类的通用行为,并在其子类中实现特定行为。通过继承抽象类,子类可以共享和扩展抽象类的功能,从而实现代码的重用和灵活性。

java中的接口

  • 使用interface关键字声明: 在Java中,使用关键字interface来声明接口。
  • 属于纯抽象类: 接口是完全抽象的,它不能包含任何的具体实现。它只定义了方法的签名(方法名、参数列表和返回类型),没有方法体。
  • 通过实现来使用接口: 类可以通过关键字implements来实现(implement)接口,并提供接口中定义的所有方法的实现。一个类可以实现多个接口,但只能扩展(extend)一个类。
  • 多态性: 通过使用接口,可以实现多态性。一个类可以实现多个接口,从而可以在不同的上下文中使用不同的实现。
  • 用于解释和扩展: 接口有助于将方法和实现分离,使代码更加灵活和可扩展。接口可以被其他代码引用,而不需要依赖具体的实现类。

  • 35
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈溪纯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值