搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
秋刀鱼在做梦
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
STM32控制电机的PID基础_pid stm32_stm32 pid
2
MySQL子查询的注意事项知识点详解_子查询临时表_mysql不支持带子查询创建临时表
3
最新区块链论文录用资讯CCF B— IWQOS 2024 共4篇_iwqos 2024接收论文
4
基于Unity3D的AR射击游戏设计与实现 毕业论文+项目源码
5
2024年Java面经(附答案)
6
Hadoop(二)答辩问题+答案_旅游酒店数据分析项目实战(hadoop)答辩
7
python清洗数据教程_数据分析入门系列教程-数据清洗
8
正确解决ModuleNotFoundError: No module named ‘cv2’异常的有效解决方法_modulenotfounderror: no module named 'cv2
9
绿色水利,智慧未来:数字孪生技术在智慧水库建设中的应用,助力实现水资源的可持续利用与环境保护的双赢
10
Spring Boot、kafka、spring-kafka 生产者消费者实践(从搭建kafka集群开始)_auto.create.topics.enable springboot
当前位置:
article
> 正文
Java基础总结之各个模块重要知识点_java 基础
作者:秋刀鱼在做梦 | 2024-07-28 14:43:04
赞
踩
java 基础
一:对象模块。
一.
初始化
1.对this.super,
构造函数
,构造代码块,静态代码块总结。
this:代表当前对象,也就是所在函数所属对象的引用。
this对象后面加.调用的是对象的成员变量和方法。(this.say());
this对象后面加(),调用的是本类中对应参数的构造函数。
super:代表父类,也就是当前类的父类。
使用方式与this类似。
构造函数:用于当对对象初始化时调用的特殊函数,只在执行一次。
在构造函数中使用this或者super,必须定义在构造函数的第一行。如果没有用到,那么构造函数的第一句会默认的加上super();
构造代码块:是给所有的对象进行初始化,也就是,所有的对象都会调用的一个代码块,只要对象一建,就会调用这个代码块,用于给不同对象的共性初始化,优先于构造函数执行。
格式:{
代码。。。。。。
}
静态代码块:一个用static关键字标示的一个代码块区域,定义在类中。可以完成类的初始化,静态代码块会随着类的加载而执行一次(new多个对象也是只执行一次)。如果和主函数在同一个类中,优先于主函数执行。
格式:static{
代码。。。。。
}
三种初始化的执行顺序: 静态代码块--->构造代码块------>构造函数。
二.继承(extends):
1.重写和重载
重写:覆盖父类已有的方法,子父类方法必须一模一样。(包括返回值,子类复写父类方法时访问权限必须比父类大或者同级。方法要么都静态,要么都不静态)。
重载:只在本类中的多个方法,只看同名函数的参数列表。
子类初始化时,先初始化父类的方法和变量,在初始化自己的。
三.接口(implements)
1.实现
接口可以被多实现,类继承只能单继承。
接口与接口之间存在着继承关系,接口可以多继承接口。
四.多态
体现:父类或者接口的引用指向自己的子类对象。(注意:在使用多态时,要访问子类的方法,要求父类中必须对该方法进行了声明或者定义)。
多态在子父类中的成员上的体现的特点:
成员变量:
编译时期:参考的引用类型变量所属的类中是否有调用的成员。(编译时期不产生对象,只检查语法错误)。
运行时期:也是参考引用类型变量所属的类中是否有调用的成员。
简单总结:成员变量——编译运行都看 = 左边。
非静态成员函数:
编译时期:参考引用类型变量所属的类中是否有调用的方法。
运行时期:参考的是对象所属的类中是否有调用的方法。
原因:因为在子父类的非晶态成员函数中有一个特性:重写(覆盖)。
简单总结:成员函数——编译看 = 左边, 运行看 = 右边。
静态函数:
编译时期:参考引用类型变量所属的类中是否有调用的方法。
运行时期:参考的是引用类型所属的类中是否有调用的方法。
原因:因为是静态方法,所以是不属于对象的,而是属于该方法所在的类。
简单总结:成员函数——编译运行看 = 左边,
五:内部类。
特点:内部类可以直接访问外部类中的成员,而外部类想要访问内部类,必须要建立内部类的对象。
-------------------------------------------------------------------------------------------------------------------------------
class Outer{
int num = 4;
class Inner {
void show(){
System.out.println("inner show run" + num);
}
}
public void method(){
Inner in = new Inner();//创建内部类的对象
in.show();//调用内部类的方法
}
-------------------------------------------------------------------------------------------------------------------------------
当内部类定义在外部类的成员变量位置。可以使用一些成员修饰符进行修饰默认,private,static.
1.默认修饰符。
直接访问内部类格式:外部类名.内部类名 变量名 = new 外部类对象.内部类对象;
Outer.Inner in = new Quter.new Inner();
上面这种方式比较少见,因为内部类本来就是为了封装,想要获取内部类对象通常都是通过外部类的方法来获取,这样可以对内部类对象进行控制。
2.private修饰符。
通常内部类被封装,都会被私有化。
3.静态修饰符。
如果内部类被静态修饰,相当于外部类,会出现访问局限性,只能访问外部类中的静态成员。
注意:如果内部类中定义了静态成员,那么该内部类必须是静态的。
当外部类的静态方法访问内部类时,内部类也必须是静态的。
外部其他类中,直接访问static内部类的非静态成员:New Outer.Inner().show();
外部其他类中,直接访问static内部类的静态成员:Outer.Inner.show();
一般内部类经过编译后文件名为:“外部类名$内部类名.class”;
当内部类被定义在局部位置上时。
1.不可以被成员修饰符修饰(例如:static,static是修饰成员的)
2.可以访问外部类中成员,因为还持有外部类中的引用,(外部内.this),但不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。
匿名内部类:
意义:没有名字的内部类,是内部类的简化形式,一般内部类只用一次的话就可以用这种形式。匿名内部类其实就是一个匿名子类对象,想要定义匿名内部类:需要前提,内部类必须实现一个接口或者继承一个类。
匿名内部类的格式:new 父类名&接口名(){定义子类成员或者覆盖父类方法}.方法
case:
new Object(){
void show(){
System.out.prinlt("show run");
}
} .show();
六:异常。
1.使用throws来在方法上标识(声明),方法可能会出现异常,当调用者检查到有标识时有必须要进行处理,要么接着抛,要么try。否则会出现编译失败
声明格式:throws 异常类,异常类。。。。。并不是所有的异常都需要声明,RuntimeException(运行时异常)类及其子类可以不用声明。
2.捕获异常try{}catch(){}块来捕捉时,要注意有多个catch时,如果有父类的Exception语句块,一定要放在下面.
3.throw用于抛出异常对象。
异常,在子父类进行覆盖时,有以下特点:
1.当子类覆盖父类的方法时,如果父类的方法抛出了异常,那么子类的方法要么不抛出异常,要么就抛出父类异常或者该异常的子类,不能抛出其他异常。如果父类没有抛出异常,那么子类只能try不能throws.
2.如果父类抛出了多个异常,那么子类在覆盖时只能抛出父类异常的子集。
3.如果这个异常子类无法处理,已经影响了子类方法的具体运算,这时可以在子类方法中,通过throw抛出RuntimeException异常或者其子类,这样,子类方法就不需要throws进行声明。
注意:throw下面不能写语句,因为执行不到(会出现编译错误,和return,break后面不能写代码类似),但是注意如果是分支结构,也就是说if语句内写是可以的。
七:多线程。
1.相关概念。
进程:正在进行中的程序,就是一个应用程序运行时的内存分配空间
线程:进程中一个程序的执行控制单元,一条执行路径。
进程负责的是应用程序的空间的标示,线程负责的是应用程序的执行顺序。
cpu随机性原理:因为cpu的快速切换造成,那个线程获取到了CPU的执行权,那个线程就执行。
2.线程的几种状态:
被创建:start()。
运行:具备执行资格,同时具备执行权。
冻结:sleep(time),wait()-----notify()唤醒,线程冻结(沉睡),释放了执行权,同时释放了执行资格。
临时阻塞状态:线程具备cpu的执行资格,没有cpu的执行权。
消亡:stop();
3.两种线程的创建方式
第一种方式:继承Thread,由子类复写run方法。
步骤:1.定义类继承Thread类。
2.目的是复写run方法,将要让线程运行的代码都存储到run方法中。
3.通过创建Thread类的子类对象,创建线程对象。
4.调用线程的start方法,开启线程,并执行run方法。
第二种方式:实现一个Runable接口。
步骤:1.定义类实现Runnable接口。
2.覆盖接口中的run方法。(用于封装线程要运行的代码&#
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/894595
推荐阅读
article
Java
学习|
Java
热
排障
入门...
热
排障
(Hot Troubleshooting),是指在不重启应用程序的情况下,对正在运行中的
Java
应用进行问题排查和...
赞
踩
article
Java
——
redis
篇_
java
redis
...
redis
常见知识点_
java
redis
java
redis
目录 0、Redis常见...
赞
踩
article
Java
和
SpringBoot
中
的
设计模式
详解...
假如有一结果api结果返回值
的
类Person,其在代码中频繁被使用。这两种使用方法
的
弊端有:(1):当只需要部分参数
的
时...
赞
踩
article
面经
|
Java
基础
整理_
java
面经
...
文章目录
Java
基础
一、整体观/理论/概念JDK和JRE的区别
Java
为什么可以一次编写、到处运行?
java
运行快吗...
赞
踩
article
2023
秋招最新整理上千道
Java
面试
攻略
,
近 500 页 PDF 文档_
java
核心
知识点
整...
很多朋友对
面试
不够了解
,
不知道如何准备
,
对
面试
环节的设置以及目的不够了解
,
因此成功率不高。通常情况下校招生
面试
的成功率低...
赞
踩
article
第十三届
蓝桥
杯
省赛真题
Java
A
组【原卷】_
蓝桥
杯
javaa
组...
发现宝藏 【考生须知】 试题
A
: 裁纸刀 试题 B: 寻找整数 试题 C:C: 求和 试题 D: GCD 试题 E: ...
赞
踩
article
华为OD机试D卷 --
模拟
目录
管理
功能
--24年OD统一考试(
Java
& JS &
Python
...
实现
一个
模拟
目录
管理
功能
的软件,
输入
一个
命令
序列,
输出
最后
一条
命令
运行结果。支持
命令
:1.创建
目录
命令
:mkdir
目录
...
赞
踩
article
NCAE
(全国工业
和
信息化应用人才考试 )
--
服务外
包
JAVA
软件开发
复习整理(一)_nca...
public关键字在文件中只能定义一个非内部类,否则编译器将会出错;public 、 protected 、friend...
赞
踩
article
在pycharm中使用PySpark 出现
Java
gateway
process
exited
b...
在pycharm中使用
pyspark
出现错误:
Java
not found and JAVA_HOME environm...
赞
踩
article
Exception: Java
gateway
process
exited
before
send...
Exception: Java
gateway
process
exited
before
sending its po...
赞
踩
article
(已解决)
RuntimeError
: Java
gateway
process
exited
bef...
RuntimeError
: Java
gateway
process
exited
before sending its...
赞
踩
article
pyspark
.
errors
.
exceptions
.
base
.PySparkRuntimeError...
【代码】
pyspark
.
errors
.
exceptions
.
base
.PySparkRuntimeError: [JAV...
赞
踩
article
Java
gateway
process
exited
before
sending its por...
【代码】Java
gateway
process
exited
before
sending its
port
numb...
赞
踩
article
【已解决】RuntimeError Java
gateway
process
exited
befo...
目光锁定pycharm标题栏(最上方),找到Run——> Edit Configurations——>Environme...
赞
踩
article
Python搭建PySpark执行环境入口时出现RuntimeError: Java
gateway
...
【代码】Python搭建PySpark执行环境入口时出现RuntimeError: Java
gateway
proce...
赞
踩
article
java
json 转map_
Java
对接
Omni
/
USDT
教程「
Omni
Tool.
Java
」...
Omni
Tool.
Java
开发包适用于为
Java
应用快速增加对
Omni
/
USDT
数字资产的支持能力,即支持使用自有Omn...
赞
踩
article
【优质书籍推荐】
《
Effective
Java
》_
effective
java
电子书
...
本文深入讲解了
Java
巨作:
《
Effective
Java
》,希望能对学习
Java
的同学们有所帮助。文章目录1. 前言2...
赞
踩
article
如何进行
Java
代码
阅读
分析
?_
java
代码
解读...
学习项目源码不是一蹴而就,往往周期比较长,最好的就是能够将项目Fork下来,单独准备好一份笔记,慢慢去研究、记录看源码过...
赞
踩
article
C++
vs
Rust
vs Go
性能
_
c++
rust
go
java
运行
性能
...
本文通过基准测试比较了
C++
、
Rust
和Go三种语言实现的gunzip程序
性能
,着重于最小化CRC32校验和库的影响。结...
赞
踩
article
对#多种编程语言 性能的研究和思考
go
/
c++
/
rust
java
js
ruby
python
_...
对#多种编程语言 性能的研究和思考
go
/
c++
/
rust
java
js
ruby
python
耗时秒数 1:1:1:...
赞
踩
相关标签
java
学习
开发语言
面试
redis
spring boot
设计模式
pdf
蓝桥杯
职场和发展
华为od
c语言
c++
javascript
python
spark
gateway