Java中常用的关键字详解-配视频讲解链接(附带一些面试题)

关键字:被Java赋予了特定含义的英文单词。关于关键字的学习贯穿了整个Java的学习,结合应用理解记忆关键字,不能单纯的死记硬背,在这里通过Java基础的学习之后想对关键字进行一个总结性的复习,首先我们通过一张图来整体回忆一下关键字:
从上图我们能直观地感觉出来关键字很多很多,那么针对不常用的我们简单概括即可,常用的会进行重点复习!另外我也会分享一些讲的不错的视频,可以供大家更好地复习。这里需要说明一下:Java中有3个直接量,它们不是关键字,但也不可以作为标识符:true,false,null。

一、基本类型关键字

1.1 boolean,byte,float,double,int,long,short,char,null 关键字

基本类型关键字我们程序中几乎都在用,熟悉的不能再熟悉了,我们通过视频进行复习。

视频讲解链接:
Java基本数据类型(一)
Java基本数据类型(二)
null 详解
Java中的空字符串与 null 值的区别

二、变量引用关键字

2.1 super 关键字

在继承体系中,我们创建一个对象成功之后,那么虚拟机就会动态分配一个引用,该引用指向的就是当前对象的直接父类对象,并且引用的名字为super。
super 关键字的作用:

  • 操作父类的成员变量:super.成员变量名
  • 调用父类的成员方法:super.成员方法名(实参列表)
  • 调用父类的构造方法:super(实参列表)

this 关键字和super关键字的特点:

  • this:现在子类中找,找不到再去父类中找
  • super:略过子类查找,直接向父类找

super 关键字的注意点:

  • 在子类重写方法中,需要调用父类被重写的方法,那么必须通过super关键字来实现
  • 当局部变量、子类的成员变量和父类的成员变量同名的时候,采用就近原则进行区分:name为局部变量,this.name为子类成员变量,super.name为父类成员变量。
  • 子类无法继承父类的私有成员变量和成员方法,并且也无法继承父类的静态变量和静态方法。
  • 在子类中,我们需要通过setter和getter方法来操作父类私有的成员变量。

视频讲解链接:
super 关键字讲解
super 与 this 关键字图解

2.2 this 关键字

this 代表当前对象,代表将来创建好的对象。this 关键字的使用如下:

  • 在普通方法中使用,用于获取成员变量,因为成员变量和参数变量重名时,会导致所取得的值是参数变量的值,要想获取成员变量就需要使用 this 进行获取。
  • 在普通方法中使用,可以调用其他方法,this 通常可以被省略。
  • 可以在构造器中通过 this 区分局部变量和成员变量。
  • 可以在构造器中通过 this 调用其他构造器,实现构造器的复用

视频讲解链接:
this 关键字

2.3 void 关键字

void 用于表示方法无返回值。

三、包相关的关键字

3.1 import 关键字

在一个包里需要用到其他包里的东西如方法或者属性等,需要利用import 包名导入相关的包。

3.2 package 关键字

这个关键字我们再熟悉不过了,想要运行代码的话包是必不可少的,package用于管理类和接口。有时候多个类可能会出现同名的情况,此时可以使用package类管理类,使用package可以更合理地规划项目的结构,不同的类应该放在合适的包下。

视频讲解链接:
package 和 import

四、访问权限修饰关键字

4.1 public,private,protected 关键字

首先我们通过一张图复习一下这几种权限:

在Java中提供了四种访问权限,使用不同的访问权限修饰符时,被修饰的内容会有不同的访问权限:

  • public:公共的
  • protect:受保护的
  • default:默认的
  • private:私有的
    public具有最大权限,private具有最小权限。
    成员变量使用 private,隐藏细节。
    构造方法使用 public,方便创建对象。
    成员方法使用 public,方便调用方法。
    不加权限修饰符,其访问能力与 default 修饰符相同。

视频讲解链接:
访问权限修饰符
三个修饰符、四个访问权限

五、类,方法,变量修饰符关键字

5.1 abstract 关键字

abstract 修饰的类被称为抽象类,抽象类不能被实例化。abstract 修饰的方法被称为抽象方法,抽象方法的作用在为所有子类定义一个统一的接口。对抽象方法只需要声明,不需要实现即用分号而不是{}。
注:抽象类中可以包含抽象方法,也可以不包含抽象方法,但是一旦某个类中包含抽象方法,则这个类必须声明为abstract类,抽象方法在子类中必须被实现,否则子类仍然是abstract的。

视频讲解链接:
abstract的使用和注意事项
多态-abstract 关键字

5.2 assert 关键字

在Java中常常用assert 关键字来限制参数传递(检验方法参数的有效性)。断言是一种程序调试方式:使用assert关键字,断言条件预期为true,如果断言失败,则会抛出AssertionError。

视频讲解链接:
断言的使用
断言+断路优化“if else”

5.3 final 关键字

final 关键字可以用于修饰类,变量和方法。所以:

  • final 修饰的类不能被继承
  • final 修饰的方法不能被子类重写
  • final 修饰的变量(成员变量和局部变量)是常量,只能赋值一次

视频讲解链接:
final 关键字
final 关键字总结

5.4 synchronized 关键字

synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:

  • 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
  • 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
  • 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
  • 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。

视频讲解链接:
按照一下顺序进行观看:
同步锁解决线程安全问题
synchronized 原理剖析与优化

5.5 native 关键字

native 用来修饰方法,用 native 声明的方法表示告知 JVM 调用,该方法在外部定义,我们可以用任何语言去实现它。 简单地讲,一个native Method就是一个 Java 调用非 Java 代码的接口。
native 语法:

  • 修饰方法的位置必须在返回类型之前,和其余的方法控制符前后关系不受限制。
  • 不能用 abstract 修饰,也没有方法体,也没有左右大括号。
  • 返回值可以是任意类型

视频讲解链接:
native 关键字

5.6 new 关键字

new表达式是负责创建实例的,其中会调用构造器去对实例做初始化;构造器自身的返回值类型是void,并不是“构造器返回了新创建的对象的引用”,而是new表达式的值是新创建的对象的引用。
new 关键字的作用:

  • 为对象分配内存空间
  • 引起对象构造方法的调用
  • 为对象返回一个引用

视频讲解链接:
new 关键字

5.7 static 关键字

static 概念:通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放该对象独立的成员变量信息,若所有对象的某个成员变量数值完全一样却又单独存放会造成内存空间的浪费。为了解决这个问题则使用 static 关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类的加载准备就绪,与是否创建对象无关。
static 关键字也可以修饰成员方法,可以通过对象. 调用,但一般推荐使用类名. 的方式来访问:

  • 在非静态的成员方法中既能访问非静态的成员也能访问静态的成员,是因为静态成员被所有对象共享;
  • 在静态的成员方法中只能访问静态的成员不能访问非静态的成员,是因为调用静态方法时可能还没有创建对象;
  • 只有隶属于类层级被所有对象共享的内容才可以使用 static 修饰。

视频讲解链接:
static 关键字 1
static 关键字 2

5.8 interface,extends,implements关键字

接口(interface)在Java编程语言中是一个抽象类型,是抽象方法的集合。接口里面只是定义了方法,所以需要实现接口中定义的方法即需要用到 implements 关键字进行实现接口。
在子类继承父类的时候需要用到 extends 关键字:
public class 子类名称 extends 父类名称{…}

视频讲解链接:
接口合集
继承的格式

5.9 transient 关键字

在复习transient关键字之前先复习一下对象持久化的概念:对象持久化即将对象保存起来。transient关键字是用来修饰属性,一旦某个属性被这个关键字修饰,则该属性不会进行持久化。

视频讲解链接:
对象序列化
对象反序列化和 transient 关键字

5.10 volatile 关键字

volatile 关键字的作用:

  • 被它修饰的变量在多线程中具有可见性。
  • 禁止指令重排序。

视频讲解链接:
线程安全之不可见性
volatile 关键字
深入理解Java内存模型JMM与volatile关键字

5.11 strictfp 关键字

关键字strictfp是strict float point的缩写,指的是精确的浮点。 这是用于确保浮点运算的正确性。如果JVM执行浮点运算时不指定strictfp关键字,则计算结果可能不准确。
当使用strictfp声明类、接口或方法时,在声明的范围内,Java编译器和运行环境将完全按照IEEE二进制浮点数的数学标准执行。 在使用该关键字声明的范围内,所有浮点数的计算都是正确的。
注意:如果类由strictfp限定,则所有方法都会自动由strictfp限定。因此,strictfp可以保证浮点运算的正确性,并通过硬件平台获得一致的执行结果。

六、流程控制类关键字

6.1 instanceof 关键字

instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
需要用到对象的强制类型转换时,需要使用instanceof进行判断。

视频讲解链接:
instanceof 关键字

6.2 分支语句(if,else,switch,case,break)

if(关系表达式) { 语句体.....
}if(条件表达式){ 代码块1
}
else{代码块2 }if(条件1){ 代码1}
else if(条件2){ 代码2 }
....
else{ 代码N }
switchcase 值1:代码1:break;case 值2:代码2;break;............default:默认语句;break;
}

视频讲解链接:条件语句

6.3 循环语句(do…while,for)

for(初始化语句:循环条件语句:控制条件语句){//循环体语句
}
while(条件表达式){//循环语句}
do{//循环语句;}while(条件表达式);

视频讲解链接:循环语句

6.4 break,continue ,return 关键字

break 关键字: 在循环过程中要跳出循环的时候可以通过break关键字来实现,改变程序控制流,跳出循环执行循环之后的语句。
continue 关键字: 跳出某个循环语句的一次执行,下一次循环还会继续,跳出循环体中的剩余语句而执行下一次循环。
return 关键字:

  • 应用在具有返回值类型的方法中:return value; 表示结束当前方法,并伴有返回值,返回到方法调用处。
  • 应用在没有返回值类型(void)的方法中:return; 表示结束当前方法,直接返回到方法调用处。

break 和continue 的区别:

  • 使用场合:break用于switch和循环语句中;continue只能用于循环结构中。
  • 作用:break语句终止某个循环,程序跳转到循坏块外的下一条语句;continue跳出本次循环,进入下一次循环。

视频讲解链接:
break
continue
return
continue、break、return 傻傻分不清楚

七、错误处理关键字

7.1 try…catch…finally

try{//有可能出现异常的代码
}catch(异常类型1 变量名1){//处理异常的方式1;
}catch(异常类型2 变量名2){//处理异常的方式2;
}catch(异常类型3 变量名3){//处理异常的方式3;
}
.........
finally{//一定会执行的代码
}

视频讲解链接:try-catch-finally

7.2 throw 和 throws 关键字

除了系统自动抛出异常外,有些问题需要程序员自行抛出异常:使用throw和throws抛出异常,两者区别为:

  • 位置不同:throws 用在函数上,后面跟的是异常类,可以跟多个,而throw用在函数内,后面跟的是异常对象。
  • 功能不同:throws用来声明异常,让调用者知道该功能可能出现的问题,可以给出预先的处理方式;throw抛出具体的问题对象,执行到throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。也就是说throw语句独立存在时,下面不要定义其他语句,因为执行不到。
    throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
    两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
    视频讲解链接:throw 和throws

八、保留关键字

8.1 const 和 goto 关键字

goto和const在java之中是不能使用的。
goto的作用:在程序执行过程中可以跳转到一个指定标签的位置。
const作用:用来声明一个变量值不能进行改变
虽然这两个是关键字,但是没有任何语法应用,用来作为标识符也是不允许的,了解即可!

写这篇博文花费了一点时间,关于这些关键字自己可能有的也是模模糊糊,在总结的过程中,也收获了很多,有的视频讲解也很好,建议多学习一下,在此希望这篇博客能帮到大家一点点!感谢看到我的博客的你!

Java关键字详解-配视频讲解链接(附带一些面试题)相关推荐

  1. Java泛型详解-史上讲解最详细的,没有之一

    目录 1. 概述 2. 一个栗子 3. 特性 4. 泛型的使用 4.1 泛型类 4.2 泛型接口 4.3 泛型通配符 4.4 泛型方法 4.4.1 泛型方法的基本用法 4.4.2 类中的泛型方法 4. ...

  2. Java集合详解9:2021年的hashmap面试题怎么考?涵盖性能优化、扩容、并发问题等核心考点

    摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例 ...

  3. Java关键字详解this、private、static、super、extends继承、instanceof、final、abstract、interface、implements、enum...

    1,this //在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量. //1.在构造调用另一个构造函数,调用动作必须置于最起始的位置,即this( ...

  4. java 递归详解_Java递归函数讲解

    Java中的递归 什么是递归? 函数直接或间接调用自身的过程称为递归,相应的函数称为递归函数.使用递归算法,某些问题可以很容易地解决.这类问题的例子有Hanoi的Towers(TOH).序/前序/后序 ...

  5. Java中的static关键字详解

    ** Java中的static关键字详解 ** 在一个类中定义一个方法为static,即静态的,那就是说无需本类的对象就可以调用此方法.调用一个静态方法就是 "类名.方法名" ,静 ...

  6. java中new关键字详解

    java中new关键字详解 在java中我们可以经常使用new来创建一个对象,但是这对于初学者来说可能只会使用却不能理解new关键字和它的语法 new关键字的语法 注意使用前先导包,一般我们使用ide ...

  7. 教妹学Java(十九):continue 关键字详解

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 2019 年度的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我 ...

  8. Java中super关键字详解

    Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...

  9. Java static静态关键字详解(public、 private、 volatile)

    文章目录 前言 static要解决什么问题? 格式 特点 static静态变量 静态变量和实例变量的区别 static静态方法 static应用场景 static 与volatile static如何 ...

最新文章

  1. matlab的dft谱分析,数字信号处理基于matlab(用DFT作谱分析,窗函数的设计)
  2. epoll、mysql概念及简单操作
  3. socket和URLConnection
  4. python3x菜鸟教程_菜鸟教程python3
  5. 2022.9.19-9.25 AI行业周刊(第116期):告别
  6. 什么是前后端分离技术?
  7. wex5链接mysql_【WeX5学习】 后端服务之访问数据库表
  8. 2.10 MapReduce文件合并
  9. 计算机无法读取tf卡,教您电脑无法读取sd卡
  10. 国外程序员推荐:每个程序员都应读的书
  11. 图形学经典参考书籍 电子书下载
  12. [PTA]实验3-6 计算个人所得税
  13. TC3XX 多核ECU的中断向量表解疑
  14. Codeforces Round #702 (Div. 3)A-G题解
  15. 093【RTKLIB源码之postpos-9】刨根问底
  16. VLC用手机控制电脑播放视频
  17. 高性能Mysql运维应用实战-高俊峰-专题视频课程
  18. 媒体查询判断ipad和iPhone各版本
  19. layout经验(一)
  20. Python社区专访Mike Driscoll

热门文章

  1. 分享:HTML转义字符大全
  2. 99乘法表带颜色HTML隔行变色,javascript小实例,实现99乘法表及隔行变色
  3. OpenCV角点检测源代码分析(Harris和ShiTomasi角点)
  4. 外贸电商:除了paypal,这些支付方式也能帮到你!
  5. 秀米的对话框格子可以变大吗_更新丨秀米图文可以一键兼容多格式发布到其他平台了!...
  6. 【图像融合】基于多尺度引导实现图像融合附matlab代码
  7. 自己忙碌十年,发现空空的,该填满了
  8. 《Head First 设计模式》例子的C++实现(4 单件模式)
  9. 能力清单:透视成功逻辑,学会清单练习
  10. srt字幕怎么导入视频 (视频字幕合并教程)