当前位置: 首页 > 编程日记 > 正文

Java中的50个关键字

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Java中的50个关键字

关键字也称为保留字,是指java语言中规定了特定含义的标示符。对于保留字,用户只能按照系统规定的方式使用,不能自行定义。Java中有50个常用关键字:

与数据类型相关(10)

关键字类型占字节数备注
boolean布尔数据类型1有true和false两个值
int整型数据类型4
long长整型数据类型8
short短整型数据类型2
byte字节数据类型1大小范围为-27—27-1
float浮点型(实数型)4
double双精度型数据类型8
char字符型数据类型2(Unicode码)
class表示一个类不确定可用于定义一个类。
interface表示一个接口不确定可用于定义一个接口

与流程控制相关(13)


if: 表示条件判断,一般用法if(关系表达式),后跟else或{……}


else: 条件转折,如if (关系表达式){语句块1}else{语句块2},如果关系表达式的值为true,则执行语句块1,否则执行语句块2.


do……while……:do和while一般一起使用,用于表示循环语句。do{……}while(关系表达式)……;当关系表达式的值为true是继续循环


for用于表示循环,for循环是最常使用的循环,格式for(表达式a; 表达式b; 表达式c)括号里面的书通常用于控制循环的次数,一般会用一个int类型的变量类计数,如(int i=0; i<10; i++)表达式a用于流程控制的开始值,表达式b表示循环终止条件,表达式c用于计数。


switch(条件a)case……:switch和case合起来用于表示条件分支流程。如:
while(int c) {
case 1: {语句块1} 
case 2: {语句块2}
……?????? ……
case n: {语句块n}
default:exit(0);
}

如果c为1,则执行语句块1;如果c为2,则执行语句块2;以此类推,如果c为n,则执行语句块n。default表示除case以外出现的情况。


default:在switch……case……分支语句可知,default是在所有case条件下都不成立时使用。用于包表示s“rc”文件夹下的当前包;如果用于类,表示只可被本文件内的其它类访问。


break用于结束本层循环,或跳出某层循环。


continue:用于跳出本次循环,而break跳出本层循环。Break和continue可以实现类似于C\C++中goto语句的用法:
label0:
{
 for (int k = 0; k < 10; k++) {
 .......... 
 label1:
 for (int j = 0; j < 10; j++) {
  ................
  break label0;  //跳转至label0
 }
 ...........
 label2:
 for (int kk = 0; kk < 10; kk++) {
  ..............
  break label0;  //跳至label2

}
}


return:返回一个值,通常用于函数中,返回一个具有特定类型的值。如:

public int fuction()
{
  int a; 
  ……
  return a; //返回int型的值
}


try……catch……finally……用于异常处理,使用形式如:

try{
 ……
}catch(类型b){
 ……
}finally{
 ……
}

try{……}中放置可能会发生异常的的语句块,catch(){……}用于抓住异常,{}定义当出现异常时的处理方法。finally{……}表示不管异常是否发生,都得进行finally{}中的处理。


与修饰符相关(12)


不同访问修饰符的访问权限
范围本类同软件包不同包中子类不同包且无继承作用(含义)
public可以可以可以可以公有的
protect可以可以可以受保护的
default(无权限修饰符)可以可以当前的
private可以私有的

如:

一个".java"后缀名的文件里面只能一个publi型的cass类。如c13.swing包下有HelloWorld.java 文件,该文件下有如下代码:
package c13.swing;
public class HelloWorld {public void show() {System.out.println("HelloWorld!");}	
}
在default包下有如下代码:
import c13.swing.*;//引入所需要的包里的所有类
public class Test {public static void main(String args[]) {HelloWorld h = new HelloWorld();h.show();}
}
此时运行正常,结果:HelloWorld!
如果把public class HelloWorld改成privateclass HelloWorld则会运行错误,因为private是私有的不能被其他包内的对象所引用。

final:(类似于C++中的const),用法如下:
a,final的变量的值不能被改变;1),final的成员变量; 2)final的局部变量;
b,final的方法不能被重写;
c,final的类不能被继承。


void:空类型,用于函数前表示空返回值。


static可用于定义静态成员变量或方法


strictfp:意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。  
你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:

1. 合法的使用关键字strictfp 
strictfp interface A {}

public strictfp class FpDemo1 { 
strictfp void f() {} 

2. 错误的使用方法 
interface A { 
strictfp void f(); 
}

public class FpDemo2 { 
strictfp FpDemo2() {} 
}

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。


abstract抽象的意思,可以用定义抽象类,抽象函数。抽象类的用法规则如下:
a,用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,这个方法叫做抽象方法;
b,含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写;
c,抽象类不能被实例化;
d,抽象方法只需声明,而不需实现。


transient: Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
 使用对象:字段
介绍:字段不是对象持久的一部分,不应该字段和对象一起串起。


synchronized:锁定当前对象,在执行当前这个对象时不应许其他线程打断插入。使用的方式有:

这是我在暑假学习做的笔记

(1),class Timer {
private static int num = 0;
public synchronized void add(String name) { //执行这个方法的过程中锁定当前对象。
num ++;
try {
Thread.sleep(1);
} catch( InterruptedException e) {
return;
}
System.out.println(name + ",你是第" + num +"使用Timer的线程。");
}
}
(2),class Timer {
private static int num = 0;
public void add(String name) { 
synchronized(this) { //锁定大括号这个区域的代码段
num ++;
try {
Thread.sleep(1);
} catch( InterruptedException e) {
return;
}
System.out.println(name + ",你是第" + num +"使用Timer的线程。");
}
}
}


volatilevolatile变量一个时间只有一个线程可以访问。 保证线程安全。 
可以被写入 volatile 变量的这些有效值独立于任何程序的状态,包括变量的当前状态。 
所以,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于锁的性能和伸缩性。


native是用作java 和其他语言(如c++)进行协作时用的也就是native 后的函数的实现不是用java写的, native的意思就是通知操作系统,这个函数你必须给我实现,因为我要使用。所以native关键字的函数都是操作系统实现的, java只能调用。


与动作相关(10)


package:打包,把java程序写在一个包中。


import:引入报名,用法: 
a,写全包名:jsxt.java140.Cat c = new com.bjsxt.java140.Cat
a,引入一个包中的具体某个对象:xt.java140.Cat;
b,引入一个包中的所有象:import com.bjsxt.java140.Cat.*;


throw抛出用户自己定义的异常


throws抛出系统异常


extends:继承(类继承类,或接口继承接口)


implements:实现,通过类来实现接口


this:是指向该对象自身的标示符


super:调用基类的构造函数


instanceof:判断某个对象是否为自己所要的对象


new:用于新建一个对象,即类的实例化


其他(5)


true表示boolean类型的真值


false:表示boolean类型的假值,即不成立的情况


null:表示空值,如果是对象,则表示此对象为空,如果是数据类型,在表示相应数据类型的默认值,如int的默认值为0。


goto:C\C++中实现无条件转向语句,为了结构化程序设计java中现在一般不用。


const:和const一样,在Java中,const是作为保留字以备扩充。可以用final替换const,一般C++中用const,java中用final。

转载于:https://my.oschina.net/verynix/blog/365897

相关文章:

javascript保留字

保留字不能被用作变量名或函数名。abstractbooleanbytecharclassconstdebuggerdoubleenumexportextendsfinalfloatgotoimplementsimportintinterfacelongnativepackageprivateprotectedpublicshortstaticsupersynchronizedthrowstransientvolatile注意&#xff1a;如果把关键字…

动画产业基础学习教程 Rad How to Class – Animation Industry Fundamentals

如何分类——动画产业基础 大小解压后&#xff1a;6.2G 含课程素材 1920X1080 mp4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 信息: 绘画技巧、解剖学、角色设计、透视和整体讲故事——这门为期6周的课程旨在聚焦于工作室正在寻找什么…

136. 只出现一次的数字(关于异或的使用)

136. 只出现一次的数字 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&#xff1f; 示例 1: 输入: [2…

C_str的入门级notes

嗯&#xff0c;受人所托&#xff0c;顺便整理的 英文渣 侵删。 // 注释的部分是解说(废话)和不怎么重(kǎo)要(ch)的 错误请指正 #include <stdio.h> #include <string.h> int main() {char str[] "sstr";// "sstr." s, s, t, r, \0// witho…

2022-2028年中国钢材市场投资分析及前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国钢材行业市场行业相关概述、中国钢材行业市场行业运行环境、分析了中国钢材行业市场行业的…

IOS UITableView详解一数据展示 页面简单实现

为什么80%的码农都做不了架构师&#xff1f;>>> 一 UITableView简介 UITableView用于表格数据展示&#xff0c;是使用频率最高的控件。UITableView继承自UIScrollView&#xff0c;具有UIScrollView的所有特性。 二 UITableView的两种样式 2.1 UITableViewStylePlai…

Bulk_Collect_Performance 比较

上一篇讲到了调用集锦&#xff0c;这篇关注一下性能问题吧。 DECLARECURSOR c_tool_listISSELECT descr d1 FROM hardware;l_descr hardware.descr%type; BEGINOPEN c_tool_list;LOOPFETCH c_tool_list INTO l_descr;EXITWHEN c_tool_list%notfound;END LOOP;CLOSE c_tool_list…

Unity初学Shadergraph创建着色器学习教程

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:51节课(4h 44m) |大小解压后:2.55 GB 使用Unity Shadergraph创建游戏资产指南 初学者的Unity Sha…

Linux命令学习总结:hexdump

命令简介&#xff1a; hexdump是Linux下的一个二进制文件查看工具&#xff0c;它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看。 指令所在路径&#xff1a;/usr/bin/hexdump 命令语法&#xff1a; hexdump: [-bcCdovx] [-e fmt] [-f fmt_file] [-n leng…

Java学习总结:49(字符缓冲流:BufferedReader)

字符缓冲流&#xff1a;BufferedReader 在开始前先让我们来看一段代码 package Project.Study.IOSystem;import java.io.InputStream;public class Test4 {public static void main(String[]args)throws Exception{InputStream inputStreamSystem.in;StringBuffer bufnew Str…

2022-2028年中国干洗行业市场全景调研与投资前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国干洗行业市场行业相关概述、中国干洗行业市场行业运行环境、分析了中国干洗行业市场行业的…

成为优秀高级程序员的10个要点(转)

英文原文&#xff1a;10 Steps to become a Senior Software Engineer What 软件工程师的职业生涯要历经以下几个阶段&#xff1a;初级、中级&#xff0c;最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。 Why 得到更多的报酬&#xff01;因为你…

count http://www.cplusplus.com/reference/algorithm/count/

// count algorithm example#include <iostream>#include <algorithm>#include <vector>using namespace std;//count 他查找一个元素出现的次数int main () {int mycount;// counting elements in array: int myints[] {10,20,30,30,20,10,10,20}; // 8…

Clip Studio Paint 高级着色学习教程

剪辑工作室颜料着色专业指南&#xff01; A Pro’s Guide to Coloring With Clip Studio Paint! MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:2.78 GB |时…

Java学习总结:50(扫描流:Scanner)

扫描流&#xff1a;Scanner Scanner类定义在java.util包中&#xff0c;所以此类是一个工具类&#xff0c;利用它可以方便地实现数据的输入操作。 Scanner实现了Iterator(迭代)接口与Closeable接口。 Scanner类中定义的常用方法如下&#xff1a; No.方法类型描述1public Scann…

圣杯和双飞翼布局

//圣杯布局-wrap设置padding/left right加相对定位 <!DOCTYPE html> <html lang"zh-CN"> <html> <meta charset"utf-8"> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"/> <title>&…

2022-2028年中国干电池制造行业产销需求与投资预测分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国干电池制造行业市场行业相关概述、中国干电池制造行业市场行业运行环境、分析了中国干电池…

JQuery中的事件以及动画

嘿嘿&#xff0c;今天学习了JQuery的事件以及动画&#xff0c;感觉即将学习完JQuery&#xff0c;在回忆起上周学习的JavaScript&#xff0c;感觉好多刚刚学习的知识点都记得模 糊啦&#xff0c;这个是很让失望的&#xff0c;这里只说明了一点&#xff0c;课是听过啦&#xff0c…

Go 系列教程 —— 20. 并发入门

欢迎来到我们 Golang 系列教程的第 20 篇。 Go 是并发式语言&#xff0c;而不是并行式语言。在讨论 Go 如何处理并发之前&#xff0c;我们必须理解何为并发&#xff0c;以及并发与并行的区别。 并发是什么&#xff1f; 并发是指立即处理多个任务的能力。一个例子就能很好地说明…

Unity创造没有代码的游戏学习教程

流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;48.0 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小:17.4 GB |时长:17h 18m 你会学到什么 如何制作游戏 如何在Unity中制作无代码的游戏 如何使用Bolt 在…

Java学习总结:51(对象序列化)

对象序列化 对象序列化的本质实际上就是将内存中所保存的对象数据转换为二进制数据流进行传输的操作。 但并不是所有类的对象都可以直接进行序列化操作&#xff0c;要被序列化的对象所在的类一定要实现java.io.Serializable接口。而且序列化接口里面是没有任何操作方法存在的&…

(九)单片机串行口 内部结构的讲解 01

1、 基本概念 常用于数据通信的传输方式有单工、半双工、全双工和多工方式。 单工方式&#xff1a;数据仅按一个固定方向传送。因而这种传输方式的用途有限&#xff0c;常用于串行口的打印数据传输与简单系统间的数据采集。 半双工方式&#xff1a;数据可实现双向传送&am…

2022-2028年中国改性尼龙行业市场全景评估及产业前景规划报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国改性尼龙行业市场行业相关概述、中国改性尼龙行业市场行业运行环境、分析了中国改性尼龙行…

[原创]Java性能优化权威指南读书思维导图

[原创]Java性能优化权威指南读书思维导图 书名&#xff1a;Java性能优化权威指南 原书名&#xff1a;Java performance 作者&#xff1a; (美)Charlie Hunt Binu John 译者&#xff1a; 柳飞 陆明刚 京东购书地址&#xff1a; http://item.jd.com/11407830.html 介绍&…

【Java】lambda表达式与函数式接口的完美配合

透过现象看本质:它们真正需要的,是一个"函数",是一个告诉它们,根据什么去排序、被触发后执行什么、线程去执行什么任务的"函数"(compare、actionPerformed、run)。在没有计算机的数学时代,逻辑学家Church意识到他需要将一个函数符号化,他使用了希腊字母λ——λ的发音即为lambda。这无疑大大简化了代码,在某些情况下提升了效率——更重要的是,这是大势所趋的"函数式编程"思想的又一次胜利。实际上,lambda表达式的作用域,不是大括号,而是大括号的外围——和。

spring2

bean的scope"singleton":单例(默认)"prototype":一个bean可以对应多个对象实例 获取bean的方法1、ApplicationContext(首选)(1)bean的scope为singleton,实例化ApplicationContext时,bean对象也随之实例化(2)bean的scope为prototype,实例化ApplicationConte…

多线程Volatile关键字

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。​ 强制将对缓存的修改操作(即写操作)立即写入主存;如果是写操作导致其他线程中对应的缓存无效,让其他线程只能从主存中拿刚刚更新的。2)禁止指令重排序。3)volatile只能保证【可见性】、【有序性】,并不能保证【原子性。

游戏设计行业标准测试:秘密收集

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:30节课(4h 5m) |大小解压后:2.68 GB Industry Standard Game Design Tests: The Secret Collectio…

Java学习总结:52(Java网络编程)

Java网络编程 开发第一个网络程序 java.net包提供了网络编程有关的开发工具类&#xff0c;在此包中有一下两个主要的核心操作类。 ServerSocket类&#xff1a;是一个封装支持的TCP协议的操作类&#xff0c;主要工作在服务器端&#xff0c;用于接收客户端请求&#xff1b;Soc…

聊聊高并发(十六)实现一个简单的可重入锁

可重入锁指的是假设一个线程已经获得了一个锁&#xff0c;那么它能够多次进入这个锁&#xff0c;当然前提是线程须要先获得这个锁。 可重入锁是最常使用的锁。Java的内置锁就是可重入锁&#xff0c;使用synchronizedkeyword能够启用内置锁机制&#xff0c;比方说一个类有两个sy…