Java基础知识复习

目录

一、Java语言基础知识,包括面向对象编程、语法特性等

0、什么是面向对象编程?

1、基本语法:

2、变量和数据类型:

3、运算符和表达式:

4、控制结构:

5、函数和方法:

6、类和对象:

7、继承和接口:

8、异常处理:

二、Java核心类库和异常处理机制

1、Java核心类库

2、Java异常处理机制


下面详细说明

一、Java语言基础知识,包括面向对象编程、语法特性等

0、什么是面向对象编程?

(Object-Oriented Programming,简称OOP)是一种编程思想和方法,它将程序中的数据和操作数据的行为封装在一起,形成一个称为对象的实体。Java是一种基于OOP思想的编程语言,它的面向对象编程的原理和概念主要包括以下几个方面:

①类和对象:Java中一切皆为对象,每个对象都是某个类的实例。类是对象的模板,定义了对象的属性和行为。对象是类的具体实例,可以通过new关键字来创建对象

②封装:封装是指将数据和对数据的操作封装在类中,对外部隐藏内部实现细节,只提供公共的方法(也称为接口)来访问和操作数据。封装可以提高代码的安全性和可维护性。

③继承:继承是指一个类可以继承另一个类的属性和方法。被继承的类称为父类或基类,继承的类称为子类或派生类。子类可以继承父类的非私有属性和方法,并可以扩展或重写父类的方法。

④多态:多态是指同一种行为具有多种不同的表现形式。在Java中,多态可以通过继承和接口实现。通过父类引用指向子类对象,可以实现对同一类对象的不同操作。(可以这样理解:指一个对象可以根据当前的上下文环境而表现出多种不同的形态。具体来说,多态性可以分为编译时多态和运行时多态)在编译时,编译器会根据方法的参数列表来确定具体调用哪个方法。运行时多态是通过方法的重写(覆盖)和父子类之间的继承关系来实现的。在运行时,根据对象的实际类型确定调用哪个方法。即使使用父类的引用指向子类的对象,在调用方法时也会根据对象的实际类型来确定调用哪个方法。这就是所谓的动态绑定。多态的好处是可以提高代码的灵活性和可扩展性。

⑤抽象:抽象是指将类的通用属性和行为提取出来形成抽象类或接口。抽象类不能被实例化,它只能被继承。接口是一种特殊的抽象类,它只包含抽象方法和常量,可以被类实现。

⑥封装、继承和多态是OOP的三大基本特性,它们共同构成了Java的面向对象编程模型。封装提供了数据和行为的隐藏和封装,继承提供了代码的重用和扩展,多态提供了灵活的接口和行为的变化。

1、基本语法

Java是一种面向对象的编程语言,它使用类(Class)和对象(Object)的概念来组织代码。在Java中,所有代码都必须包含在一个类中。一个Java程序由多个类组成,其中必须有一个主类(Main Class),程序的入口点是主类的main方法

  • Java语法特性

    • 关键字(Keywords):Java有一组保留的关键字,如classpublicvoidnew等,它们有特定的用途。
    • 数据类型(Data Types):Java是一种强类型语言,每个变量都必须有一个明确的类型。Java支持的数据类型有基本数据类型(如int, char, double等)、引用类型(如类、接口、数组等)和用户自定义类型。
    • 变量(Variables):变量是存储数据的容器。在Java中,变量必须先声明后使用。
    • 控制结构(Control Structures):Java支持条件语句(如if-else)、循环语句(如for, while, do-while)和选择语句(如switch)。
    • 函数和方法(Functions and Methods):函数是执行特定任务的代码块,而方法是类中定义的函数。方法可以有参数,可以有返回值,也可以没有。
    • 数组(Arrays):数组是一种可以存储固定数量相同类型元素的数据结构。
    • 异常处理(Exception Handling):Java提供了异常处理机制,用于处理程序运行过程中可能出现的错误或异常情况。
    • 包(Packages):包用于将相关的类和接口组织在一起。
    • 接口(Interfaces):接口是一种完全抽象的类,它定义了一组方法,但没有实现这些方法。
    • 反射(Reflection):反射是Java的一种特性,它允许程序在运行时检查和操作类、接口、字段和方法等元数据信息

2、变量和数据类型

Java是一种强类型语言,这意味着变量在声明时必须指定其类型。Java的变量必须先声明后使用。Java支持多种数据类型,包括基本数据类型【有8种基本数据类型,包括整型(byte、short、int、long)、浮点型(float、double)、布尔型(boolean)、字符型(char)以及引用数据类型(如字符串)】和引用数据类型包括类(class)、接口(interface)、数组(array)等。

  1. 类(class):类是Java中最基本的引用数据类型。它是一种用于创建对象的蓝图或模板。类是由属性(成员变量)和方法(成员函数)组成的,用于描述对象的状态和行为。

  2. 接口(interface):接口是一种约定,用于定义类应该实现的方法。接口中只包含方法的声明,而没有方法的具体实现。类通过实现接口来达到遵循一组规则的目的。

  3. 数组(array):数组是一种容器,用于存储相同类型的多个元素。数组在内存中是一个连续的存储空间,可以通过索引来访问其中的元素。数组的长度是固定的,无法动态改变。

3、运算符和表达式

Java支持多种运算符,包括算术运算符(如+、-、*、/等)、关系运算符(如==、!=、>、<等)和逻辑运算符(如&&、||、!等)。表达式是运算符和操作数的组合,用于计算并返回一个值。

4、控制结构

Java支持多种控制结构,包括条件语句(if-else、switch)、循环语句(for、while、do-while)和跳转语句(break、continue、return)。如:if语句、switch语句、for循环、while循环和do-while循环等。这些控制结构用于控制程序的流程。

5、函数和方法

Java中的函数和方法用于执行特定的任务。方法用于封装可重复执行的代码块,是类中的函数,而函数是一段独立的代码块。方法可以有参数和返回值,而函数通常没有返回值

6、类和对象

Java是一种面向对象的编程语言,它使用类(Class)和对象(Object)的概念来组织代码。类是对象的蓝图或模板,而对象是类的实例。每个对象都有其自己的属性和方法。

7、继承和接口

继承是面向对象编程的重要概念之一。在Java中,一个类可以从另一个类继承属性和方法。接口是一种特殊的类,它定义了一组方法,但没有实现这些方法。一个类可以实现多个接口。

8、异常处理

Java的异常处理机制用于处理程序中的错误和异常情况。当程序中发生错误或异常情况时,会抛出一个异常对象,然后通过try-catch语句来捕获和处理异常。

二、Java核心类库和异常处理机制

1、Java核心类库

Java核心类库是Java标准库的一部分,它提供了许多基本的类和接口,用于实现各种常见的编程任务。如:常见常用的类:

Math类:提供数学函数,如三角函数、指数函数、对数函数、最大/最小值。

String类:提供字符串处理函数,如字符串连接、分离、替换、截取、大小写转换等。

StringBuilder/StringBuffer类:提供可变字符串的操作,如字符串的添加、删除、替换等。

Arrays类:提供数组的排序、二分查找、比较、拷贝等操作。

Collection/List/Set类:提供集合的操作,如添加、删除、遍历等。

Map类:提供键值对的操作,如添加、删除、遍历、按键或值排序等。

Date类:提供日期和时间的操作,如获取当前时间、日期比较、格式化输出等。

File类:提供文件和目录的操作,如创建、删除、重命名、遍历等。

Random类:提供随机数的生成。

System类:提供访问系统属性、标准输入输出流、程序退出等操作。

以下是Java核心类库的一些主要部分:

  1. java.lang包:这是Java核心类库中最重要的包之一,它包含了Java语言的核心类和接口。例如,Object类是所有类的基类,String类是用于处理字符串的类,System类提供了与系统相关的功能,如输入/输出和时间管理等。
  2. java.util包:这个包包含了许多实用的工具类和集合类,如ArrayListHashMapHashSet等。这些类提供了对集合对象的操作和管理功能。
  3. java.io包:这个包提供了与输入/输出相关的类和接口,如FileInputStreamFileOutputStreamBufferedReader等。它们用于读取和写入文件、网络连接等。
  4. java.net包:这个包提供了与网络编程相关的类和接口,如URLSocketServerSocket等。它们用于实现网络通信和远程过程调用等功能。
  5. java.sql包:这个包提供了与数据库相关的类和接口,如ConnectionStatementResultSet等。它们用于与关系型数据库进行交互,执行SQL查询和更新操作。
  6. java.awt包:这个包提供了与图形用户界面(GUI)相关的类和接口,如JFrameJButtonJLabel等。它们用于创建窗口、按钮、文本框等GUI元素。
  7. javax.swing包:这个包是Java Swing框架的一部分,提供了更丰富的GUI组件和布局管理器。
  8. java.text包:这个包提供了与文本处理相关的类和接口,如CollatorNumberFormat等。它们用于对文本进行排序、格式化等操作。
  9. java.util.concurrent包:这个包提供了并发编程相关的类和接口,如ExecutorServiceFutureTask等。它们用于实现多线程编程和并发控制。
  10. java.security包:这个包提供了安全相关的类和接口,如加密、解密、签名等操作。它们用于保护数据的机密性和完整性。

以上只是Java核心类库的一部分,实际上Java标准库还包含许多其他包和类,涵盖了各个方面的基础功能。

2、Java异常处理机制

Java异常处理机制是Java编程语言中用于处理错误和异常的一种重要机制。在Java中,异常是一种特殊的对象,它包含了错误或异常的信息。当程序在运行过程中遇到错误或异常情况时,会抛出一个异常对象。下面我将详细介绍Java异常处理机制的几个主要部分:

  1. 异常分类:Java中的异常分为两类:已检查异常(Checked Exception)和未检查异常(Unchecked Exception)。已检查异常是指在编译时就能确定的异常,例如文件找不到异常(FileNotFoundException)等。未检查异常是指运行时才能确定的异常,例如空指针异常(NullPointerException)等。
  2. try-catch语句:try-catch语句是Java异常处理的基本结构。在try块中编写可能会抛出异常的代码,在catch块中编写处理异常的代码。当try块中的代码抛出异常时,程序会跳转到相应的catch块中执行处理代码。
  3. finally块:finally块是可选的,它包含的代码无论是否发生异常都会被执行。通常用于释放资源或进行必要的清理操作。
  4. throw语句:throw语句用于手动抛出一个异常对象。当程序中需要手动抛出异常时,可以使用throw语句来抛出异常对象。
  5. throws子句:在方法签名中使用throws子句来声明该方法可能会抛出的异常类型。这样调用该方法的代码就需要处理这些异常或继续抛出这些异常。
  6. try-with-resources语句:try-with-resources语句是Java 7引入的特性,用于自动管理资源并简化异常处理。它通过在try块中使用资源声明语句来自动关闭资源,并在发生异常时自动关闭资源。
  7. 异常链:在Java中,当一个异常被抛出时,它可以包含一个链式的异常对象,表示异常的来源和传递路径。可以通过调用异常对象的getStackTrace()方法来获取完整的异常链信息。

如果你想知道该如何去复习自己的知识点,可以试试以下方法

tips:可以提问以下问题来了解对于某个知识点的掌握情况:

  1. 请解释一下(某个知识点)是什么?
  2. 请简要介绍一下你对(某个知识点)的理解和经验。
  3. 你可以分享一些在(某个知识点)方面取得的成就或项目经验吗?
  4. 你如何应用(某个知识点)来解决实际问题?
  5. 你能举一个例子来说明(某个知识点)的应用场景吗?
  6. 你在(某个知识点)方面遇到的最大挑战是什么,你是如何解决的?
  7. 你如何保持对(某个知识点)的学习和更新?
  8. 你对(某个知识点)的了解程度如何?你觉得自己还有哪些提升空间?
  9. 请描述一下你对(某个知识点)的兴趣和热情。
  10. 你能否给出一些(某个知识点)的最佳实践或建议?

通过上述问题,您可以了解对于某个知识点的基本了解、实际运用能力、自我学习和提升能力,以及对于该知识点的兴趣和热情。

感谢支持!一键三连!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

因吹斯汀!只需上传照片,GPT-4V精准识别食物的卡路里和摄入热量

健身和减肥的朋友有福啦&#xff01; 最近一篇文章探索了GPT-4V在膳食评估领域的强大能力&#xff0c;可以根据饮食图片精准判断食物的种类与重量&#xff0c;并给出营养成分的分析&#xff0c;包括碳水化合物、蛋白质、脂肪占比。 最最重要的是&#xff0c;它还能告诉我们这…

算法与数据结构--二叉搜索树与自平衡二叉搜索树

0.字典&#xff08;即c的map&#xff09; 注&#xff1a;字典的 "member运算" 指的是检查字典中是否存在某个特定的键的操作&#xff0c;即查询操作。 如果我们使用数组来实现字典/map&#xff0c;虽然使用二分法查询也可以达到logn&#xff0c;但是的话插入和删除太…

GPT每预测一个token就要调用一次模型

问题&#xff1a;下图调用了多少次模型&#xff1f; 不久以前我以为是调用一次 通过看代码是输出多少个token就调用多少次&#xff0c;如图所示&#xff1a; 我理解为分类模型 预测下一个token可以理解为分类模型&#xff0c;类别是vocab的所有token&#xff0c;每一次调用都…

Description:An attempt was made to call a method that does not exist.

错误信息 Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: okio.Segment.writeTo(Segment.kt:169) The following method did not exist: kotlin.collections.ArraysKt.copyInto([B[BIII)[B T…

多行文本(多行字符串)中,如果每行文本前都有空格,各行文本前空格数最小为n,则删除每行文本前的n个空格。textwrap.dedent(多行字符串)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 多行文本(多行字符串)中&#xff0c; 如果每行文本前都有空格&#xff0c; 各行文本前空格数最小为n&#xff0c; 则删除每行文本前的n个空格。 textwrap.dedent(多行字符串) 请问以下代…

ES的安装和RestClient的操作

目录 初识elasticsearch 什么是elasticsearch elasticsearch的发展 Lucene的优缺点 elasticsearch的优势 倒排索引 es与mysql的概念对比 文档 索引 概念对比 架构 安装es 安装kibana 安装ik分词器 分词器 安装ik分词器 ik分词器的拓展和停用词典 操作索引库…

c语言中数据结构

一、结构体的由来 1. 数据类型的不足 C语言中&#xff0c;基本数据类型只有整型、字符型、浮点型等少数几种&#xff0c;无法满足复杂数据类型的需要。 2. 数组的限制 虽然数组可以存储多个同类型的数据&#xff0c;但是数组中的元素个数是固定的&#xff0c;无法动态地改变…

Unity VR Pico apk安装失败:INSTALL_FAILED_UPDATE_INCOMPATIBLE

我的报错&#xff1a; PICO4企业版。安装apk&#xff0c;报错“安装失败。&#xff08;所属的Unity项目打包的apk&#xff0c;被我在同一台pico4安装了20次&#xff09; 调试方法&#xff1a; PIco4发布使用UNITY开发的Vr应用&#xff0c;格式为apk&#xff0c;安装的时候发生…

SQL手工注入漏洞测试(MySQL数据库)

一、实验平台 https://www.mozhe.cn/bug/detail/elRHc1BCd2VIckQxbjduMG9BVCtkZz09bW96aGUmozhe 二、实验目标 获取到网站的KEY&#xff0c;并提交完成靶场。 三、实验步骤 ①、启动靶机&#xff0c;进行访问查找可能存在注入的页面 ②、通过测试判断注入点的位置(id) (1)…

嵌入式-stm32-用PWM点亮LED实现呼吸灯

一&#xff1a;知识前置 1.1、LED灯怎么才能亮&#xff1f; 答&#xff1a;LED需要低电平才能亮&#xff0c;高电平是灯灭。 1.2、LED灯为什么可以越来越亮&#xff0c;越来越暗&#xff1f; 答&#xff1a;这是用到不同占空比来实现的&#xff0c;控制LED实现呼吸灯&…

matlab时间转换

采集的GNSS数据是10hz的。 data&#xff08;选取其中一部分&#xff09;如下&#xff1a; &#xff08;1&#xff09;char类型 formatOut yyyy-mm-dd HH:MM:SS; str datestr(data,formatOut); str如下&#xff1a; &#xff08;2&#xff09;double类型 DateVector dat…

STM32独立看门狗

时钟频率 40KHZ 看门狗简介 STM32F10xxx 内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看 门狗设备 ( 独立看门狗和窗口看门狗 ) 可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给 定的超时值时&#xff0c;触发一个中…

WU反走样算法

WU反走样算法 由离散量表示连续量而引起的失真称为走样&#xff0c;用于减轻走样现象的技术成为反走样&#xff0c;游戏中称为抗锯齿。走样是连续图形离散为想想点后引起的失真&#xff0c;真实像素面积不为 零。走样是光栅扫描显示器的一种固有现象&#xff0c;只能减轻&…

Drogon Win11 编译 /MT

Drogon是一个基于C17/20的Http应用框架&#xff0c;使用Drogon可以方便的使用C构建各种类型的Web应用服务端程序。 Drogon的主要应用平台是Linux&#xff0c;也支持Mac OS、FreeBSD和Windows。 它的主要特点如下&#xff1a; 网络层使用基于epoll(macOS/FreeBSD下是kqueue)的…

nginx反向代理服务器及负载均衡服务配置

一、正向代理与反向代理 正向代理&#xff1a;是一个位于客户端和原始服务器(oricin server)之间的服务器&#xff0c;为了从原始服务器取得内容&#xff0c;客户端向代理发送一个请求并指定目标(原始服务器)&#xff0c;然后代理向原始服务器转交请求并将获得的内容返回给客户…

Matlab/Simulink的一些功能用法笔记(3)

01--引言 最近加入到一个项目组&#xff0c;有一些测试需要去支持&#xff0c;通过了解原先团队的测试方法后&#xff0c;自己作了如下改善&#xff0c;大大提高了工作效率。这也许就是软件开发的意义吧&#xff0c;能够去除一些重复的机械的人工操作并且结果还非常不可靠。 …

Discrete Time Signals and Systems

Discrete Time Signals and Systems 文章目录 Discrete Time Signals and SystemsSignal classificationbasic signalOperation on signalSystem of discrete signalLinear systems and nonlinear systemsCausal and non-causal SystemsTime-varying and time-invariant system…

助力打造清洁环境,基于美团最新YOLOv6-4.0开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

使用travelbook架设自己的实时位置共享服务

travelbook 是一款开源的安卓APP&#xff0c;它能以低功耗提供实时位置共享&#xff0c;它包含功能如下&#xff1a; 好友之间分享实时位置&#xff1b;记录行程轨迹&#xff1b;标记收藏地点&#xff1b; 这款软件的主要解决的问题包括&#xff1a; 场景1&#xff1a;查看老…

【开源】基于Vue+SpringBoot的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…