Java关键字详解

文章目录

  • 什么是关键字?
  • 数据类型(10个)
    • byte、char、boolean、short、int、float、long、double、void、enum
  • 流程控制(12个)
    • if、else、do、while、for 、switch、case、assert
    • break(跳出循环)
    • continue (中断本次循环,继续下一次)
    • return (返回或者退出)
    • instanceof(判断右类是不是左对象所属类的直接父类、间接父类、左对象所属类)
  • 异常处理(5个)
    • try、catch、finally、throw、throws
  • 访问控制(4个)
    • public(访问控制修饰词,公开)
    • protected(访问控制修饰词,受保护的)
    • default(访问控制修饰词,默认)
    • private(访问控制修饰词,私有)
  • 修饰方法、类、属性和变量(9个)
    • static(Java修饰符,用于表示静态)
    • final(Java修饰符,用于表示不可改变、不可继承)
    • super(表示访问父类中属性和方法)
    • this(在类中使用this表示特殊作用)
    • native(本地方法)
    • synchronized(同步)
    • volatile(同步机制)
    • strictfp(精确浮点)
    • transient(透明的)
  • 定义类、接口、抽象类、实现接口、继承类、实例化对象(6个)
    • class(类的关键字)
    • insterface(接口的关键字)
    • abstract(表示抽象)
    • extends (继承)
    • implements(实现)
    • new(创建对象)
  • 包相关(2个)
    • import(引入包的关键字)
    • package(定义包的关键字)
  • 保留字(2个)
    • goto(跳转)
    • const(静态)

什么是关键字?

  • Java语言中预定义的、有特殊意义的标识符,它对于Java编译器有特殊意义,用户只能按照系统规定的方式使用,不能重新定义。
  • Java中所有关键字都是小写的。
  • Java关键字共50个。
    在这里插入图片描述

数据类型(10个)

byte、char、boolean、short、int、float、long、double、void、enum

在这里插入图片描述

流程控制(12个)

if、else、do、while、for 、switch、case、assert

在这里插入图片描述

break(跳出循环)

  1. break主要用于在循环语句或者switch语句中,用来强行跳出整个语句块,不继续执行循环中剩余的语句。
  2. break跳出最里层的循环,若外层还有循环,外层循环继续执行。

continue (中断本次循环,继续下一次)

  1. continue适用于任何循环控制结构中,作用是让程序立刻跳转到下一次循环的迭代中。

return (返回或者退出)

  1. return 从当前方法中退出,返回到该调用的方法的语句出,然后继续执行后面代码。此时return后面不带参数。
  2. return返回一个返回值给调用方法的语句,返回值的数据类型必须和方法声明中的返回值类型一致。

instanceof(判断右类是不是左对象所属类的直接父类、间接父类、左对象所属类)

使用总结:

  1. 父类引用可以指向子类对象,子类引用不能指向父类对象,例如:Person p = new Student(),Strdent s ≠ new Person();
  2. 把子类对象直接赋给父类引用叫做向上转型(upcasting),向上转型不用强制转换,例如:Person p = new Student(),这里其实就是多态。
  3. 把父类对象赋给子类引用交向下转型(downcasting),需要强制转换,例如:Student s = (Student) new Person();
  4. upcasting会失去子类特有的方法,但是子类重写的防范,依然有效。

异常处理(5个)

try、catch、finally、throw、throws

在这里插入图片描述

访问控制(4个)

public(访问控制修饰词,公开)

对所有类可见,使用对象:类、接口、变量、方法。

protected(访问控制修饰词,受保护的)

对统一包内的类和所有子类可见,使用对象:变量、方法。注意:不能修饰类(外部类)。

default(访问控制修饰词,默认)

在同一包内可见,不用使用任务修饰符。使用对象:类、接口、变量、方法。

private(访问控制修饰词,私有)

在同一类内可见,使用对象:变量、方法。注意:不能修饰类(外部类)。

修饰方法、类、属性和变量(9个)

static(Java修饰符,用于表示静态)

  1. 静态变量
  • 静态变量和非静态变量的区别就是:静态变量属于类,被所有实例所共享,可以使用类名进行访问;非静态变量对于类的每个实例都有一份,必须使用实例对象进行访问。
  • 静态变量在类加载的过程中就分配内存,实例变量在对象创建时分配内存。
  1. 静态方法
  • 静态方法和非静态方法的区别就是:静态方法数据类,别所有实例共享,可以使用类名进行调用;非静态方法对于类的每个实例都有一份,必须使用实例对象进行调用。
  • 静态方法不能直接访问类中的非静态变量和非静态方法(静态方法在类加载阶段初始化),可以直接访问类中的静态变量和静态方法。
  • this和super在类中属于非静态的变量、方法调用。
  • 非静态方法可以直接访问类中的非静态变量和非静态方法,也可以直接访问类中的静态变量和静态方法。
  1. static代码块
  • 代码块的执行:静态代码块是在类加载完成之后就会自动执行,匿名代码块是在创建对象的时候自动执行的,执行在构造器执行之前。
  • 执行优先级:没有涉及继承时候:静态成员变量赋值(类加载)>静态代码块>变量赋值>构造代码块>构造方法;涉及继承时候:Father静态变量赋值、Son静态变量赋值(类加载阶段)>Father静态代码块、Son静态代码块>Father变量赋值、Son变量赋值>Father的构造代码块、Father的构造方法>Son的构造代码块、Son的构造方法。

final(Java修饰符,用于表示不可改变、不可继承)

  1. 修饰类:用final修饰的类不能被继承,没有子类,例如:java.lang.String。
  2. 修饰方法:用final修饰的方法可以被继承,但是不能被子类重写,例如:java.lang.Object.getClass方法。
  3. 3.修饰变量:用final修饰的变量表示常量,只能被赋值一次。

super(表示访问父类中属性和方法)

super只能出现在子类的方法或者构造方法中,super的作用

  1. 访问父类中的属性,例如:String s = super.name;
  2. 调用父类中的方法,例如:super.print();
  3. 调用父类中的类构造器,super语句一定出现在子类构造其的第一行代码。
  4. super和this不能同时调用构造方法(this和super均需要在构造方法的第一行代码)。

this(在类中使用this表示特殊作用)

  1. 在类中的作用:
  • 区别成员变量和局部变量。
  • 调用类中其它方法。
  • 调用其它构造器,只能在使用在调用这构造器的第一句。
  1. 在类中的含义:
  • 表示当前类将来创建出的对象。
  1. this和super的区别:
  • 代表的事务不一样,this代表所属方法的调用者对象,super代表父类对象的引用空间。
  • 使用前提不一样,this在非继承的条件下也可以使用,super只能在继承的条件下使用。
  • 调用构造方法不一样,this调用本类的构造方法,super调用父类的构造方法。

native(本地方法)

用来修饰方法,表示当前方法是Java的本地方法。

synchronized(同步)

  1. synchronized 关键字用于给个对象(new 对象或者Calss类对象)加锁。
  2. synchronized修饰代码块的时候,括号内可以选择一个对象为锁对象(可以是一般对象,也可以是class对象)。
  3. synchronized修饰一般方法时候,锁对象为this,也就是该类的new出来的对象。
  4. synchronized修饰static方法时候,锁对象为该类Class对象。

volatile(同步机制)

同一时间只有一个线程可以访问volatile变量,保证线程安全

strictfp(精确浮点)

使得浮点运算更加精确,符合IEEE-754规范的

transient(透明的)

  1. transient用处?
    主要作用是让某些被transient修饰的成员变量不被序列化,比如密码信息等,用以防止这些信息序列化后在网络中传输,造成数据安全问题

  2. transient注意事项?
    transient是能修饰成员变量,不能修饰类和方法。
    transient不能修饰本地变量和静态变量(static)。
    如果对transient修饰的变量进行续流恶化,会对变量重新进行默认初始化(反序列化之后的对象会变为null)

定义类、接口、抽象类、实现接口、继承类、实例化对象(6个)

class(类的关键字)

定义类的关键字。

insterface(接口的关键字)

定义接口的关键字。

abstract(表示抽象)

  1. 定义
    abstract修饰符可以用来修饰方法也可以修饰类,修饰的方法称为抽象方法,修饰的类是抽象类。
  2. 抽象类和抽象方法的关系
    抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类。
  3. 语法
public abstract class AbstractDemo {

    // 抽象方法,abstract修饰且以(); 结束
    public abstract void doSomething();

    // 一般方法,必须有方法体
    Object getSomething(){
        return null;
    };
}
  1. 特点和作用
  • 抽象类不能使用new关键字来创建对象,它是用来让子类继承的,
  • 抽象方法只有方法的声明,没有方法的实现,具体实现让其子类来实现的。
  • 子类继承抽象类后,需要实现抽象类中抽象方法,否者这个子类也需要声明为抽象类。
  • 抽象类虽然不能new对象,但是作为类是有构造器的,会在其子类实例化对象的时候调用。
  • 抽象类和抽象方法在程序中起到一个框架的作用,提高程序的可扩展性。

extends (继承)

用于子类的申明,用来继承父类。

implements(实现)

用于接口子类的申明,用来实现父接口。

new(创建对象)

创建对象关键字

包相关(2个)

import(引入包的关键字)

代码中引入其它类对象。例如:import java.io.IOException。

package(定义包的关键字)

包关键字,用来显示当前代码所属于什么包下。例如:package com.xxliao.io.copy。

保留字(2个)

保留字(Reserve Word):保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

goto(跳转)

无任何作用,Java 不允许 goto 跳转。

const(静态)

类型修饰符,使用const声明的对象不能更新。

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

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

相关文章

[有监督学习] 8.详细图解神经网络

神经网络 一直以来,人们都认为神经网络(Neural Network,NN)是模仿生物体的神经网络设计而成的。神经网络既可以用于回归,也可以用于分类,但在实际应用中常用于分类。基于神经网络的深 度学习因在图像识别和…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Python的第三方库OS库

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀OS/SHUTIL 的方法描述🚀OS/SHUTIL…

Streamsets-JDBC模式使用更新时间字段数据同步

StreamSets的开源地址:https://github.com/streamsets/datacollector-oss Streamsets官网地址:https://streamsets.com/ Streamsets文档地址:https://docs.streamsets.com/portal/datacollector/3.16.x/help/index.html 我又来写Streamsets了…

安全测试扫描利器-Burpsuite

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

全自动打包封箱机:解析其在产品质量与安全保障方面的作用

在当今快节奏的生产环境中,全自动打包封箱机以其高效、精准的特点,正逐渐成为生产线上的得力助手。它不仅提升了生产效率,更在产品质量与安全保障方面发挥着举足轻重的作用。星派将详细解析全自动打包封箱机在产品质量与安全保障方面的作用。…

自监督表示学习和神经音频合成实现语音修复

关键词:语音修复、自监督模型、语音合成、语音增强、神经声码器 语音和/或音频修复的目标是增强局部受损的语音和/或音频信号。早期的工作基于信号处理技术,例如线性预测编码、正弦波建模或图模型。最近,语音/音频修复开始使用深度神经网络&a…

Qt | QSplitter(分离器或分隔符)、QSplitterHandle 类(分界线)

​01、一、QSplitter 类(分离器) 1、QSplitter 类继承自 QFrame 类,也就是说该类是一个带有边框的可视部件。 2、QSplitter 类实现分离器,分离器用于分离两个部件,用户可通过拖动部件之间的分界线来调整子部件的大小。 3、QSplitter 的原理(见上图):QSplitter 的实现原理…

AWS中国峰会2024 半日游

亚马逊云科技中国峰会于2024年5月29-30日在上海举办 今年就去了半天,去年也是去过的,不过今年的活动个人感觉比去年略微凌乱了一点。 今年的峰会方向和去年一致,均是AI方向的各项内容(基础架构、安全、服务、游戏、驾驶、各行各…

浅谈防勒索病毒的关键

主机加固能否做好防勒索病毒的工作,一直是网络安全领域的重要议题。随着信息技术的飞速发展,勒索病毒等网络威胁层出不穷,对企业和个人数据安全构成了严重威胁。因此,如何通过主机加固提升安全防护能力,防止勒索病毒的…

大模型管理工具Ollama搭建及整合springboot

目录 一、Ollama介绍 1.1 什么是Ollama 1.2 Ollama特点与优势 二、Ollama本地部署 2.1 版本选择 2.2 下载安装包 2.3 执行安装 2.4 Ollama常用命令 三、使用Ollama部署千问大模型 3.1 千问大模型介绍 3.2 部署过程 四、springboot接入Ollama 4.1 引入Ollama依赖 4…

音频信号分析与实践

音频信号分析与实践课程,方便理解音频信号原理和过程 1.音频信号采集与播放 两种采样模式和标准的采样流程 人说话的声音一般在2kHz一下: 采样频率的影响:采样率要大于等于信号特征频率的2倍;一般保证信号完整,需要使用10倍以上的…

python找出100~999之间的水仙花数字

水仙花数字:个位,十位,百位的立方之和等于这个数本身 例如:153 1^35^33^3 for i in range(100, 1000):bw i // 100sw i % 100 // 10gw i % 10if bw ** 3 sw ** 3 gw ** 3 i:print(i)

SpringBoot读取json文件

使用SpringBoot读取json文件作为接口&#xff0c;前端Vue可以通过跨域访问接口数据 一、创建SpringBoot 文件 创建一个 SpringBoot 文件&#xff0c;文件结构目录如下&#xff1a; 二、在pom.xml添加依赖 <!--Spring Boot 依赖--> <parent><artifactId>sp…

WireShark下载安装

下载地址 WireShark站内下载资源&#xff1a;&#xff08;土豪方便下载&#xff09; https://download.csdn.net/download/qq_58662768/89377088 官网下载&#xff1a; Wireshark Go Deep 进入主页后&#xff0c;选择Get Acquainted&#xff0c;再选择Download。 选择合适…

TPL0401B使用教程

1.前言 前面做程控放大器的时候&#xff0c;有除开AD602&#xff0c;还有一个AD620&#xff0c;性能更好&#xff0c;不过是通过外部电阻来控制放大倍数的&#xff0c;不过要是接滑动变阻器就太不优雅了&#xff0c;而且单片机怎么控制滑动变阻器&#xff1f;&#xff08;难不…

linux 内核哪种锁可以递归调用 ?

当数据被多线程并发访问(读/写)时&#xff0c;需要对数据加锁。linux 内核中常用的锁有两类&#xff1a;自旋锁和互斥体。在使用锁的时候&#xff0c;最常见的 bug 是死锁问题&#xff0c;死锁问题很多时候比较难定位&#xff0c;并且影响较大。本文先会介绍两种引起死锁的原因…

简易版本的QFD质量屋

比如餐馆要考虑什么因素最重要&#xff0c;这里列出好吃&#xff0c;快速&#xff0c;便宜三类问题&#xff0c;然后设置上图的权重&#xff0c; 然后设置9&#xff0c;3&#xff0c;1三类因子&#xff0c;9比如是最重要的&#xff0c;3&#xff0c;1&#xff0c;依次没那么重要…

开发一个comfyui的自定义节点-支持输入中文prompt

文章目录 目标功能开发环境实现过程翻译中文CLIP编码拓展仓库地址完整代码目标功能 目前comfyui的prompt提示词输入节点 CLIP Text Encode 只支持输入英文的prompt,而有时候我们需要自己制定一些prompt,所以就得将我们想要的提示词翻译为英文后再复制粘贴到该节点的输入框中…

算法练习第26天|46.全排列、47全排列II

46.全排列 46. 全排列 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/permutations/description/ 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a;…