Java 关键字

Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂) 本文从Java的内存模型和线程的工作原理出发,对volatile关键字进行介绍。帮助读者深入理解volatile的工作机制。同时,还通过简单易懂的示例讲解了如何正确地使用volatile关键字实现线程安全,避免常见的多线程安全问题。 阅读详情

return
1.适用范围:使用在方法体中

2.作用

  • 结束方法
  • 针对于有返回值的方法,用"return 数据"的方式返回所需要的数据

3.注意点:return后面不可以声明执行语句

this
在这里插入图片描述
this可以用来修饰,调用:属性,方法,构造器

1.this修饰属性和方法:理解为当前对象或者是当前正在创建的对象

  • 在类的方法中,我们可以使用"this.属性"或者"this.方法"的方式,来调用当前的对象的属性或方法。但是通常情况下我们省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,来表明此变量是属性,而不是形参。
  • 在类的构造器中,我们可以使用"this.属性"或者"this.方法"的方式,来调用当前正在创建的对象的属性或方法。但是通常情况下我们省略"this."。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,来表明此变量是属性,而不是形参。

2.this调用构造器

  • 我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类的其他构造器。
  • 构造器中不能通过"this(形参列表)"方式调用自己。
  • 如果一个类中有n个构造器,则最多有n - 1个构造器使用了"this(形参列表)“方式。构造器内部,最多只能使用一次"this(形参列表)”,用来调用其他的构造器。
  • 规定:"this(形参列表)"必须声明在当前构造器的首行。

package
1.为了更好的实现项目中的管理,提供了包的概念。

2.使用package声明类或接口所属的包,声明在源文件的首行。

3.包,属于标识符,要遵守命名规则,规范(xxxyyyzzz),“见名知意”。

4.每"."一次,就代表一层文件目录。
补充:**同一个包下,不能命名同名的接口,类。**不同的包下可以。
在这里插入图片描述
拓展
在这里插入图片描述
在这里插入图片描述
import
import:导入
1.在源文件中显式的使用import结构导入指定下的类,接口。

2.声明在包的声明和类的声明之间。

3.如果需要导入多个结构,则并列写出即可。可以使用"xxx.*"的方式,表示可以导入xxx包下的所有结构。

4.如果使用的类或接口是java.lang包下或者是本包下定义的,则可以忽略import结构。

5.如果在源文件中,使用了不同包下的同名的类,则必须至少有一个需要以全类名的方式显示。

6.使用"xxx. *"方式表明可以调用xxx包下的所有结构,但是如果使用的是xxx包下的子包下的结构,仍然需要import导入。

7.import static:导入指定类或接口中的静态结构(属性或方法)。

super
1.super的理解:父类的
2.super可以用来调用:属性,方法,构造器

3.super的使用:调用属性,方法

  • 我们在子类的方法或构造器中,通过使用"super.属性"或"super.方法"的方式,显式的调用父类中的属性或方法。通常情况下,我们省略"super."。
  • 特殊情况下,当子类和父类定义了同名的属性时,我们要想在子类中调用父类的属性,就必须使用"super.属性"的方式,表明调用的是父类中的属性。
  • 特殊情况,当子类重写了父类的方法时,我们要想在子类的方法中调用父类中被重写的方法时,就要使用"super.方法",表示调用的是父类中被重写的方法。

4.super使用:调用构造器

  • 我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中指定的构造器。
  • "super(形参列表)"的使用,必须声明在子类构造器的首行。
  • 在类的构造器中,"super(形参列表)"和"this(形参列表)"只能二选一,不能同时出现。
  • 在构造器中,两者都没有显式,则默认调用的是父类的空参的构造器:super()
  • 在类的多个构造器中,至少有一个类的构造器使用了"super(形参列表)",调用的是父类的构造器。

static
使用
1.static:静态的

2.static可以用来修饰:属性,方法,代码块,内部类。
(1)修饰属性:静态变量(类变量)
属性按照是否使用static修饰,分为静态属性vs非静态属性(实例变量)。
实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象的非静态属性时,不会导致其他对象中同样的属性值的修改。
静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。
在这里插入图片描述
修饰属性的其他说明

  • 静态变量随着类的加载而加载,可以通过"类.静态变量"方式进行调用。
  • 由于类只会加载一次,则静态变量在内存中也只会存在一份,存在方法区的静态域中。
  • 静态变量的加载要早于对象的创建。
  • 类可以调用类变量,不能调用实例变量。对象都可以
  • 类变量vs实例变量的内存解析
    在这里插入图片描述
    (2)修饰方法:静态方法
  • 随着类的加载而加载,可以通过"类.静态方法"的方式来调用。
  • 静态方法中,只能调用静态的方法或者属性。非静态方法都可以调用。
    (3)注意点
  • 在静态的方法中,不能使用this,super关键字。
  • 关于静态属性,静态方法的使用,从生命周期上理解

(4)开发中,如何确定一个属性是否要声明为static?

  • 属性是可以被多个对象共享的,不会随着对象的不同而不同。
  • 类中的常量也常常声明为static。

(5)开发中,如何确定一个方法是否要声明为static?

  • 操作静态属性的方法,通常为static。
  • 工具类的方法,习惯上声明为static。比如:Arrays,Math,Collections

单例设计模式
在这里插入图片描述
在这里插入图片描述
1.单例的饿汉式体现
①私有化类的构造器
②内部创建类的对象(此对象也是static)
③提供public, static的方法,返回类的对象。

2.单例的懒汉式体现
①私有化类的构造器
②声明当前类的对象,没有初始化。(此对象也必须是static)
③声明public,static返回当前类的对象的方法

3.区别
饿汉式
坏处:对象加载时间过长
好处:饿汉式线程安全的
懒汉式
好处:延迟对象的创建
目前的写法坏处:线程不安全(多线程安全时再进行修改)

main()的使用说明
1.作为程序的入口
2.是一个普通的静态方法
3.可以作为我们与控制台交互的方式(之前是使用Scanner)

final
1.final可以用来修饰的结构:类,方法, 变量。

2.final用来修饰一个类:此类不能被其他类所继承。 比如:String类,System类,StringBuffer类

3.final用来修饰方法:表明此方法不能被重写。 比如:Object类中getClass();

4.final用来修饰变量:此时的"变量"就称为一个常量。
①final修饰属性,可以考虑赋值的位置有:显式初始化 代码块中初始化 构造器中初始化
②final修饰局部变量
使用final修饰形参时,表明此形参是个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能重新赋值。

5.static final用来修饰属性:全局常量

abstract
1.abstract:抽象的
2.abstract可以用来修饰的结构:类,方法

3.abstract修饰类:抽象类

  • 此类不能实例化
  • 抽象类中一定有构造器,便于子类实例化时调用。(涉及:子类对象实例化的全过程)
  • 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作。

4.abstract修饰方法:抽象方法

  • 抽象方法只有方法的声明,没有方法体。
  • 包含抽象方法的类一定是抽象类。抽象类不一定非要有抽象方法。
  • 若子类重写了父类的所有抽象方法后,则子类方可实例化。若子类没有重写所有父类的所有抽象方法,则子类也是一个抽象类,需要用abstract修饰。

5.abstract使用的注意点‘

  • abstract不能用来修饰属性,构造器等结构。
  • abstract不能用来修饰私有方法,静态方法,final的方法,final的类。

抽象类的应用:模板方法设计模式
在这里插入图片描述
接口
1.接口使用interface来定义。

2.Java中,接口和类是并列的两个结构。

3.如何定义接口:定义接口的成员

  • JDK7及以前:只能定义全局常量和抽象方法
    全局常量:public static final的,书写时可以省略不写,但仍然在
    抽象方法:public abstract的,书写时可以省略不写,但仍然在
  • JDK8:处理定义全局常量和抽象方法以外,还可以定义静态方法,默认方法
    在这里插入图片描述
    ①接口中定义的静态方法,只能通过接口来调用。

②通过实现类的对象,可以调用接口中的默认方法。如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法。

③如果子类(实现类)继承的父类和实现的接口中声明了同名同参数的默认方法,在没有重写此方法的情况下,默认调用的是父类中同名同参数的方法。 ------>类优先原则

④如果实现类实现了多个接口,而这多个接口定义了同名同参数的默认方法,那么在实现类没有重写此方法时会报错。 ----->接口冲突
这就需要我们在实现类中必须重写此方法。

⑤如何在子类(实现类)的方法中调用父类,接口中被重写的方法。
在这里插入图片描述
4.接口中不能定义构造器,意味着接口不能实例化。

5.Java开发中,接口通过让类去实现(implements)的方式来使用。如果实现类覆盖了接口中的所有方法,则此类可以实例化。没有,则此类仍然是一个抽象类。

6.Java类可以实现多个接口。(弥补了Java单继承性的局限性)
格式:class AA extends BB implements CC,DD,EE

7.接口和接口之间是可以继承的,而且可以多继承。

8.接口的具体使用可以体现多态性。

9.接口实际上可以看成是一种规范。

10.开发中,体会面向编程思想。
在这里插入图片描述

(面试题:抽象类和接口有什么异同?
相同点

  • 不能实例化,都可以包含抽象方法
  • 都可以被继承
    不同点
  • 把抽象类和接口的定义,内部结构解释说明。
  • 抽象类有构造器,接口不能声明构造器。
  • 接口:多继承 vs 类:单继承
    )

接口的应用

  • 代理模式
    在这里插入图片描述
    在这里插入图片描述
  • 工厂模式
    在这里插入图片描述
    在这里插入图片描述
    1.简单工厂模式
    在这里插入图片描述
    2.工厂方法模式
    在这里插入图片描述
    3.抽象工厂模式
    在这里插入图片描述
Zemax光学设计——单透镜设计 (1)在镜头数据编辑器中面2那一栏中的“曲率半径”栏右侧的方格中单击,弹出“在面2上的曲率解”对话框(2)将对话框中的求解类型设为“F数”(3)将“F/#”设置为10设置完成后,其中的一些数据会发生变化在初始结构中,透镜的曲率半径和厚度未知,,这些参数需要软件自动优化得到,但可以使用透镜后表面上边缘厚度解得到近轴焦平面的位置在透镜后表面的厚度上单击鼠标右键,选择边缘光线求解类型,它表示近轴边缘光线会自动在下一个表面上聚焦并确定距离值。 阅读详情

相关推荐

TT电机、310电机、370电机在智能小车与机器人中的性能对比与选型指南

本文深入对比了TT电机、310电机和370电机在智能小车与机器人项目中的核心性能差异。文章从尺寸、扭矩、转速、电压电流等关键参数入手,结合不同应用场景(如入门小车、竞技机器人、机械臂),提供了清晰的选型指南和驱动控制建议,帮助开发者根据项目需求选择最合适的电机方案。

weixin_29065015的博客 411

java中“53”个关键字(含2个保留字)

1.java的关键字(keyword)有多少个?    51+2个保留字=53个关键字(java的关键字都是小写的!!)         2.java的保留字(reserve word)有多少个?问题:分别是什么?      2个保留字      Java语言的的保留字是指预留的关键字      1).const  有道释义:n. 常量,常数               ...

flycatdeng 951

光模块组成

时钟恢复电路(Clock Data Recovery,简称CDR)是光模块中的关键组成部分,CDR的作用主要是从接收到的信号中提取出数据序列,并且恢复出与数据序列相对应的时钟时序信号,从而还原接收到的具体信息。因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再定时,其中的再定时指的就是CDR时钟数据恢复。

han_better的博客 5726

Java 8 关键字

Java语言中有一些特殊用途的单词称之为关键字(keyword),当定义标识符时,不要让标识符和关键字相同,否则将引起错误。 Java中所有的关键字都是小写的,大写的TRUE、FALSE、NULL都不是关键字。 截止目前Java8 有50个关键词: 数据类型: boolean byte short int long float double char enum true false nul...

vkingnew 的技术博客 1151

从理论到代码:蒙特卡洛法在光学散射模拟中的应用全解析(Matlab 2014a版)

本文详细解析了蒙特卡洛法在光学散射模拟中的应用,从数学原理到Matlab 2014a实现。通过模拟光子随机游走过程,精确描述光在浑浊介质中的传输特性,提供完整的源码实现和性能优化技巧,适用于生物医学光学、大气遥感等领域。

rum55的博客 629

全网首发!Yolov8_obb旋转框训练、测试、推理手把手教学(DOTA1.0数据集map50已达80%)

其中,images/train和images/val放置原始图片文件,labels/train_original和labels/val_original分别放置原始的标签文件,labels/train和labels/val为空,然后运行步骤(3)的代码,运行结束转换后的标签会保存在labels/train和labels/val中,格式如下。(4)新建yolov8-obb.yaml,修改nc和scales,我使用的是yolov8n.(2)构建数据集,安装下面目录格式,其他test可为空,一定要对应。

小嘤熊的博客 2万+

Java中的关键字汇总(50个)

Java关键字 abstract default goto* switch boolean do if package nchronzed break double implements private this byte else import protected throw throws case extends

冷翼凌云的专栏 1万+

NFT图片批量合成及稀有度计算工具

一、制作背景 -当前NFT作品制作的大多方式都是使用部件拼接的形式,然后从大量的可能性结果取优; 二、解决问题 拼接合成的组合数量十分巨大,手工合成费时费力; 合成中对各个部件的使用次数不容易控制,部位出现的概率对作品的稀有度及评分影响较大; 对于生成的作品各个部位的信息(包括来源和使用率)统计繁琐,不利于对作品的介绍中体现; 三、程序功能介绍 1、功能自定义部位稀有度批量合成NFT作品 步骤一:创建各个合成部件文件夹,将图片放到文件夹内 步骤二:软件上设置各个部件对于的图片文件夹及出现的概率 步骤二

Keeping111的博客 4638

Quartz教程四--Trigger介绍

与job一样,trigger也很容易使用,但是还有一些扩展选项需要理解,以便更好地使用quartz。trigger也有很多类型,可以根据实际需要来选择。 最常用的两种trigger会分别在教程五:SimpleTriggers和教程六:CronTrigger中讲到; Trigger的公...

chunchuanhuan8061的博客 377

Android 11.0 app添加校验锁(输入密码才能进入app)

11.0定制化开发中客户要求给app添加锁,就是点击app 图标时,会弹出Dialog,需要输入密码才能进入app中,就是应用校验锁, 最开始想到在Launcher3中实现,但是如果更换了默认Launcher 又不行了 所以最终还是得拦截app启动Activity 从这里入手了 Launcher与APP是在两个不同的进程中,他们之间的通信是通过Binder完成的,点击Launcher上的某个APP,这时会调用Launcher的startActivitySafely方法。 public boolean sta

安卓兼职framework和app工程师的博客 1953

一文讲透 SAP SD:把报价、订单、交付、开票串成一条可落地的业务闭环

摘要:SAP SD(销售与分销)模块是企业O2C(订单到收款)流程的核心,管理从客户意向到回款的完整链路。该模块围绕销售订单、交付、开票等关键环节,与财务、物料管理等模块深度集成。SD的核心在于主数据管理、单据驱动流程、定价规则引擎和信用风控,通过条件技术实现复杂定价策略,并支持多维度分析。典型应用场景包括多渠道销售企业的价格体系管理、信用控制和物流协同,有效解决销售与交付脱节、财务对账困难等业务痛点。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 515

什么是java的关键字_java中常见的关键字

什么是关键字呢?概述:关键字就是在java语言中赋予特殊含义的单词特点:1.组成的关键字的单词全是小写2.常见的代码编辑器中,对关键字都有特殊的颜色标记比如在idea中对关键字都有特殊的颜色标记:在java中常见的关键字有很多,千万不能死记硬背,用一个记一个就行了,下面我举出一些常见的关键字。常见关键字:Abstract 抽象的一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的...

weixin_42355204的博客 4232

Windows原生环境配置Tensorflow使用GPU

本文讲解如何在Windows原生环境搭建可调用GPU设备进行计算的Tensorflow2.x环境。 区别于WSL,使用Windows原始环境作为开发环境。

天然玩家的博客 1500

java 有哪些关键字_Java中的关键字有哪些

Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword)。在定义自己的标识符的时候,不要和这些关键字重名,否则,在编译时将会出现错误。比如,下面的变量定义就是错误的:int byte;在这个例子中,试图定义一个int类型的变量“byte”,但是因为“byte”是关键字,所以不能用来作为变量名。所有Java关键字都是小写的,TURE、FALSE、NULL等都不是Java关键字,...

weixin_30649767的博客 1199

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【java基础】java关键字总结及详解

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 (一)总表:java关键字共53个(其中包含两个保留字const,goto) abstract assert ...

小猿备忘录 4万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java关键字_Java关键字

java关键字Java keywords are the reserved words that are used by the Java compiler. These keywords have special meaning to the Java compiler. The reserved keywords help us in writing code and help the com...

从零开始的教程世界 1393

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java as关键字_Java 关键字专题

总览Java 语言中有 50 个关键字,这些关键字不能用作标识符,如下图所示(来自 jls8)其中关键字 const 和 goto 是预留的,现在无法使用,并且在程序中出现会是编译器产生错误信息。true 和 false 也许看起来像是关键字,但是他们专门用于表示布尔类型的字面量。类似的, null 专门用于表示 Null 类型的字面量。其中 strictfp 始于 1.2,assert 始于 1...

weixin_29157493的博客 1624

【JAVA】JAVA关键字

用于定义数据类型的关键字:class、interface、enum、byte、short、int、long、float、double、char、boolean、void。用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return。用于定义访问权限修饰符的关键字:private、protected、public。用于定义类、函数、变量修饰的关键字:abstract、final、static。关键字:package。

weixin_46532751的博客 4410

Java中的一些关键字

蓝色的不是颜色,是链接(别人写的真好,我只能学习了……) 关键字介绍 关键字 功能 备注 transient 修饰对象的变量,使其不被序列化。 序列化:对象转变成字节序列,实体类实现Serializable接口。 instanceof 在运行时指出对象是否是特定类的一个实例。返回值类型是boolean。 Boolean dogIsAnimal = d...

吃西瓜不吐葡萄皮 320

java关键字

简介 Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 Java关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。Java语言共定义了如下所示的关键字。 abstract assert

baidu_35975930的博客 2489

java关键字const_java 关键字详解

一、关键字总览:访问控制privateprotectedpublic类,方法和变量修饰符abstractclassextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatile程序控制breakcontinuereturndowhileifelseforinstanceofswitchcase...

weixin_34312809的博客 6390

java关键字有system吗_java 关键字

java 关键字Java关键字(keywords)abstract default if private thisboolean do implements protected throwbreak double import public throwsbyte...

weixin_36086687的博客 1869

java outer关键字_Java关键字

Java关键字Java关键字是编程语言里事先定义的,有特别意义的单词,Java语言中所有的关键字都是小写的英语单词。Java的关键字对Java的编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数等。byteshortintlongfloatdoublebooleancharifforelsewhiledocontinuebreakpu...

weixin_30572265的博客 515

java关键字 native_java关键字native

Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L) ,这表示 该值应解释为 long。 27.native native 关键字可以应用于方法,以指示......Java Foundation Classes Java Message Service Java Management Extensions Java Naming & Directo...

weixin_34193397的博客 333

Java关键字解析

/ extends - 继承// implements - 实现接口void run();// abstract - 抽象类/方法// final - 不可继承/不可修改。

qq_45351273的博客 1031

java关键字汉化_java关键字是什么

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。Java关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。Java语言共定...

weixin_33420201的博客 167
上一篇: Object类 包装类 内部类
下一篇: Java 异常
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值