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声明的对象不能更新。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32(八):独立看门狗 (标准库函数)

前言 上一篇文章介绍了STM32单片机中的USART串口通信,这篇文章我们来介绍一下如何用STM32单片机中的独立看门狗来实现检测按键点灯的程序。 一、实验原理 单片机系统会由于受到外界的干扰,而造成程序执行紊乱,系统无法正常运行。为了防止这…

STL:stack和queue

文章目录 stack的介绍和使用stack的介绍stack的使用stack的模拟实现 queue的介绍和使用queue的介绍queue的使用queue的模拟实现 priority_queue的介绍和使用priority_queue的介绍priority_queue的使用优先级队列的模拟实现 deque的介绍deque的结构deque的缺陷为什么选择deque作…

Django ORM魔法:用Python代码召唤数据库之灵!

探索Django ORM的神奇世界,学习如何用Python代码代替复杂的SQL语句,召唤数据库之灵,让数据管理变得轻松又有趣。从基础概念到高级技巧,阿佑带你一步步成为Django ORM的魔法师,让你的应用开发速度飞起来! 文…

golang线程池ants-四种使用方法

目录 1、ants介绍 2、使用方式汇总 3、各种使用方式详解 3.1 默认池 3.2 普通模式 3.3 带参函数 3.4 多池多协程 4、总结 1、ants介绍 众所周知,goroutine相比于线程来说,更加轻量、资源占用更少、无线程上下文切换等优势,但是也不能…

前端Vue小兔鲜儿电商项目实战Day06

一、本地购物车 - 列表购物车 1. 基础内容渲染 ①准备模板 - src/views/cartList/index.vue <script setup> const cartList [] </script><template><div class"xtx-cart-page"><div class"container m-top-20"><div…

vs2019 无法打开QT的UI文件

/* * --------------------------- Microsoft Visual StudioQt5.15.2\5.15.2\msvc2019_64 --------------------------- D:\QT_Project_vs\QtWidgetsApplication1\QtWidgetsApplication1\QtWidgetsApplication1.ui 无法打开文件。 --------------------------- 确定 -------…

基于LQR控制算法的电磁减振控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于LQR控制算法的电磁减振控制系统simulink建模与仿真。仿真输出控制器的收敛曲线。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 08_029m 4.系统原理…

系统架构设计师【第5章】: 软件工程基础知识 (核心总结)

文章目录 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型5.1.4 统一过程模型&#xff08;RUP&#xff09;5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取5.2.2 需求变更5.2.3 需求追踪 5.3 系统分析与设计5.3.1 结构化方法5.3.2 面向对象…

Qt6 mathgl数学函数绘图

1. 程序环境 Qt6.5.1, mingw11.2mathgl 8.0.1: https://sourceforge.net/projects/mathgl/,推荐下载mathgl-8.0.LGPL-mingw.win64.7z,Windows环境尝试自己编译mathgl会缺失一些库,补充完整也可以自己编译,路径"D:\mathgl-8.0.LGPL-mingw.win64\bin"添加至系统环境…

复试不考机试,初试300分以上,上岸稳了?东北林业大学计算机考研考情分析!

东北林业大学&#xff08;Northeast Forestry University&#xff09;&#xff0c;简称东北林大&#xff08;NEFU&#xff09;&#xff0c;位于黑龙江省哈尔滨市&#xff0c;是一所以林科为优势、林业工程为特色的中华人民共和国教育部直属高校&#xff0c;由教育部、国家林业局…

Java多线程--volatile关键字

并发编程的三大特性 可见性有序性原子性 可见性 为什么会有可见性问题&#xff1f; 多核CPU 为了提升CPU效率&#xff0c;设计了L1&#xff0c;L2&#xff0c;L3三级缓存&#xff0c;如图。 如果俩个核几乎同时操作同一块内存&#xff0c;cpu1修改完&#xff0c;当下是对c…

APISIX的安装与测试(springboot服务测试)

安装&#xff1a; 1.1安装依赖&#xff1a; curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -1.2 安装 OpenResty yum-config-manager --add-repo https://openresty.org/package/centos/openresty.reposudo yum i…

英语翻译程序,可以对用户自己建立的词汇表进行增删查改

⑴ 自行建立一个包含若干英文单词的词汇表文件&#xff0c;系统初始化时导入内存&#xff0c;用于进行句子翻译。 ⑵ 用户可以输入单词或者句子&#xff0c;在屏幕上显示对应翻译结果。 ⑶ 用户可对词汇表进行添加和删除&#xff0c;并能将更新的词汇表存储到文件中。 #defi…

Adobe Acrobat DC无法卸载

控制版面、电脑管家等均无法卸载&#xff0c;使用自身的remove也不能卸载 解决方法&#xff1a;删除Adobe Acrobat DC的注册表 1、首先打开注册列表&#xff1a; 2、根据圈出来的信息&#xff0c;找到以下路径&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Inst…

现如今AI大环境究竟怎样?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答10 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你…

车载电子电器架构 —— 智能座舱技术范围(万字长文精讲)

车载电子电器架构 —— 智能座舱技术范围 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

MySQL性能分析工具——EXPLAIN

性能分析工具——EXPLAIN 1、概述 定位了查询慢的SQL之后&#xff0c;我们就可以使用EXPLAIN或DESCRIBE工具做针对性的分析查询语句 。 DESCRIBE语句的使用方法与EXPLAIN语句是一样的&#xff0c;并且分析结果也是一样的。 MySQL中有专门负责优化SELECT语句的优化器模块&…

FreeRTOS基础(五):任务挂起与恢复

今天我们将探讨FreeRTOS中的两个非常重要的函数&#xff1a;任务挂起和恢复函数。在实际的嵌入式系统开发中&#xff0c;我们常常需要在特定条件下暂停某些任务的执行&#xff0c;而在满足某些条件后再恢复这些任务的执行。这就像我们日常生活中的“暂停”和“继续”按钮。无论…

【Kubernetes】Pod理论详解

一、Pod基础概念&#xff1a; Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行…

Unix、Linux 软件包管理快速入门对照

Linux&#xff08;RHEL、Ubuntu&#xff09;或者 Unix&#xff08;macOS、FreeBSD&#xff09;可以参看下表快速入门: 命令功能/系统Darwin (macOS)FreeBSDDebian/UbuntuRHEL&#xff08;dnf yum&#xff09;搜索和查找软件包brew searchpkg searchapt listyum list查看软件包…