展开全部

访问控制:

private 私有的

protected 受保护的

public 公共的

类、方法和变量修饰符

abstract 声明抽象

class 类

extends 扩允,继承

final 终极,不可改e69da5e6ba9062616964757a686964616f31333365643536变的

implements实现

interface 接口

native 本地

new 新,创建

static 静态

strictfp 严格,精准

synchronized 线程,同步

transient 短暂

volatile 易失

程序控制语句

break 跳出循环

continue 继续

return 返回

do 运行

while 循环

if 如果

else 反之

for 循环

instanceof 实例

switch 开关

case 返回开关里的结果

default 默认

错误处理

catch 处理异常

finally 有没有异常都执行

throw 抛出一个异常对象

throws 声明一个异常可能被抛出

try 捕获异常

包相关

import 引入

package 包

基本类型

boolean 布尔型

byte 字节型

char 字符型

double 双精度,

float 浮点

int 整型

long 长整型

short 短整型

null 空

true 真

false 假

变量引用

super 父类,超类

this 本类

void 无返回值

---------------------------------------------------------------------

Java语言有51个保留关键字,其中const和goto虽然被保留但未被使用。你不能使用保留关键字来命名类、方法或变量。

一、保留关键字

数据类型:

Boolean int long short byte float double char class interface

流程控制:

if else do while for switch case default break continue return try catch finally

修饰符:

public protected private final void static strictfp abstract transient

synchronized volatile native

动作:

package import throw throws extends implements this Super instanceof new

保留字:

true false null goto const

二、访问修饰符:

访问修饰符: public , protected , private

* 只能应用于类的成员变量。(局部变量只能在函数的范围内可见,不能使用访问修饰符)

* 能够用来修饰类本身。(protected , private 不能用于顶级类,只能用于内部类)

* 能够应用于成员方法和构造函数。

下面是一个例子:

package Examples;

public class HelloWorld02{

//以下定义了三个了类成员变量

public String str1="Hello"; //可被你程序中的任何其他代码访问

protected String str2="World!"; //程序中同一包的成员和不同包中的该类子类可以访问

private String str3=" "; //仅该类中的成员可以访问

String str=str1+str3+str2; //不使用修饰符的话,变量的访问控制在所在包内为public,

// 不能被所在包外的代码存取

//以下定义了三个使用不同修饰符和不同参数的构造方法。

public HelloWorld(){

System.out.println(str);

}

protected HelloWorld(long l){

System.out.print("Use \"protected\" constructor! And l is ["+l+"] ");

System.out.println(str);

}

private HelloWorld(float f){

System.out.print("Use \"private\" constructor! And f is ["+f+"] ");

System.out.println(str);

}

//声明构造方法为void类型是合法的.不过因为没有返回值,所以不能用来创建新对象.

public void HelloWorld(){

System.out.println(str +" Use the void constructor!");

}

public static void main(String[] args){

HelloWorld hw1=new HelloWorld(); //使用无参数的构造方法

HelloWorld hw2=new HelloWorld(5); // 虽然5是int类型,但会自动提升成long类型

HelloWorld hw3=new HelloWorld(5L);

HelloWorld hw5=new HelloWorld(3.14f); // 但float类型则必须指明,否则会出错

hw5.HelloWorld(); // 无返回值的构造方法只能这样调用

(new HelloWorld()).HelloWorld(); //这里创建了一个匿名类对象并调用无返回值的构造方法

}

}

总结:

请认真思考一下:

(1)public、protected、private 可用来修饰哪些成员?

使用这些修饰符的成员的访问控制是怎样的?

没有指定访问修饰符的成员的访问控制是怎样的?

* public、protected和private可以用来修饰类成员变量、方法、构造方法和内部类;

public可以用来修饰顶级类,但protected和private则不行。

注意事项:

* 每一个java文件中可以包含多个类,但只能存在一个public顶级类,如果声明了两个顶级类的话,则会出现编译错误。

二、部分其他修饰符

this:

Java中定义了this关键字来访问当前对象实例内的成员。当局部变量和类实例内的类变量同名时,在这个局部变量所作用区域内类变量就被隐藏了,必须使用this来指明。

static:

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它所在类使用,而不必引用所在类的实例。将类中的成员声明为static就能实现这样的效果。声明为static的变量实质就是全局变量。当声明一个对象(某个类的实例)时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。

声明为static的方法有以下三条限制:

* 它们只能访问static数据

* 它们仅能调用其他的static方法

* 它们不能以任何方式引用this或super

实例分析:

package Examples;

public class StaticDemo{

public static void main(String[] args){

System.out.println(MyStaticClass.str); //不用创建MyStaticClass的实例就能访问它的str变量

// System.out.println(MyStaticClass.str2); 这句是错误的。

MyStaticClass msc=new MyStaticClass(); //这里创建MyStaticClass的一个实例

System.out.println("After create instance:");

msc.printString();

}

}

class MyStaticClass{

static String str="Hello World!";

String str2;

void setString(String s){

str2=s;

}

static void setNewString(String s){

str=s;

}

static void printString(){

//setString(str); 在static方法中调用非static方法是错误的

//System.out.println(str2); 也不能访问非static变量

//Java中是先检测static变量再检测static方法的

System.out.println(str); // 可以正常访问static变量

setNewString("Static method is OK!"); //正常调用static方法

System.out.println(str);

}

}

final:

一个变量可以被声明为final,这样做的目的是阻止它的内容被修改。这意味着在声明final变量的时候,你必须初始化它。一个final变量实质上是一个常数,为final变量的所有字母选择大写是一个普遍的编码约定。声明为final的变量在实例中不占用内存。

声明成final的方法不能被重载。通常,Java在运行时动态的调用方法,这叫做后期绑定(late binding);由于被声明为final的方法不能被重载,那么对final方法的调用可以在编译时解决,这叫做早期绑定(early bingding)。

声明为final的类不能被其他类继承。声明一个final类含蓄的宣告了它的所有方法也都是final的。所以,声明一个既是abstract的,又是final的类是不合法的,因为抽象类本身是不完整的,它依靠它的子类提供完整的实现。

strictfp:

Java2向Java语言增加了一个新的关键字strictfp。与Java2同时产生的浮点运算计算模型很轻松的使某些处理器可以以较快速度进行浮点运算(例如奔腾处理器)。这个浮点运算计算模型在计算过程中,不需要切断某些中介值。如果用strictfp来修饰类或方法,可以确保浮点运算(以及所有切断)正如它们在早期Java版本中那样准确(即使用原始的浮点运算模型)。切断只影响某些操作的指数。当一个类被strictfp修饰,所有该类的方法都自动被strictfp修饰。坦白说,很多程序员从未用过strictfp,因为它只对非常少的问题有影响。

native:

有时你希望调用不是用Java语言写的子程序,或者你希望调用一个专用的第三方的库,例如统计学包。虽然这种情况比较少,但Java提供了native关键字,该关键字用来声明本机代码方法。

为声明一个本机方法,在该方法之前用native修饰符,但是不要定义任何方法体。例如:

public native int meth();

声明本机方法后,必须编写本机方法并要执行一系列复杂的步骤使它与Java代码链接。很多本机方法是用C写的。把C代码结合到Java程序中的机制是调用Java Native Interface(JNI)。

transient:

如果用transient声明一个实例变量,当对象储存时,它的值不需要维持。例如:

class T{

transient int a; // will not persist

int b; // will persist

}

这里,如果T类的一个对象被写入一个持久的存储区域,a的内容不被保存,但b将被保存。

volatile:

volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变。一种 这样的情形是多线程程序。在多线程程序里,有时两个或更多的线程共享一个相同的实例变量。考虑效率的问题,每个线程可以自己保存该共享变量的私有拷贝。实际的(或主要的)变量副本在不同的时候更新,例如当进入synchronized方法时。当这种方法运行良好时,它在时间上会是低效的。在某些情况下,真正要紧的是变量主副本的值会体现当前的状态。为保证这点,仅需把变量定义成volatile型,它告诉编译器它必须总是使用volatile变量的主副本(或者至少总是保持一些私有的最新的主副本的拷贝,反之亦然),同时,对主变量的获取必须以简洁次序执行,就像执行私有拷贝一样。

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java中关键字_java中的关键字是什么?相关推荐

  1. java中的me关键字_java中的volatile关键字

    一.详细解释 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并 ...

  2. java outer关键字_java中的关键字

    abstract : 表明类或者成员方法具有抽象属性 assert : 断言,用来进行程序调试 boolean :基本数据类型之一,声明布尔类型的关键字 break :提前跳出一个块 byte :基本 ...

  3. java中用于定义小数的关键字_Java 中用于定义小数的关键字有两个:( ) 和 ( )。_学小易找答案...

    [填空题]列举至少三种中药饮片现代贮藏方法 [单选题]用于薄壁形零件联接时,应采用 . [填空题]若螺纹的直径和螺纹副的摩擦系数一定, 则拧紧螺母时的效率取决于螺纹的 和 . [单选题]以太网采用的介 ...

  4. java异常类关键字_Java中的异常处理关键字是什么?

    java异常处理中使用了四个关键字. throw:有时我们明确要创建异常对象然后抛出它来停止程序的正常处理.throw关键字用于向运行时抛出异常来处理它. throws:当我们在方法中抛出任何已检查的 ...

  5. java定义接口的关键字_Java中定义接口的关键字是什么?

    Java中定义接口的关键字是"interface"."interface"是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合 ...

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

    什么是关键字呢? 概述:关键字就是在java语言中赋予特殊含义的单词 特点:1.组成的关键字的单词全是小写 2.常见的代码编辑器中,对关键字都有特殊的颜色标记 比如在idea中对关键字都有特殊的颜色标 ...

  7. java transient 关键字_java中的transient关键字详解

    前言 说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是I ...

  8. java that关键字_Java中this关键字的几种用法

    1 . 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = " ...

  9. java加互斥锁关键字_Java中用于给对象加“互斥锁”标记的关键字是。( )

    伴头胸痞.中用心晕.悸,脉滑,还应加(,女,外治疗主穴除取,白舌苔,痰涎呕吐. 的算下面法,对象的关科学在计中领域算机,类的属于数值算法是(. 一过在这程中,加互键字的行刑事民事业应一定以及政.加互键 ...

最新文章

  1. 第二讲,我们来谈谈:“什么是二进制”
  2. 用ESX进行虚拟化的技巧连载五:代理/防火墙服务虚拟化
  3. JavaScript - reduce用法详解
  4. Silverlight 中datagrid控件-- 通过设置数据虚拟化加速显示
  5. Spring4 MVC HelloWorld 注解和JavaConfig实例
  6. 消耗性缺口_衰竭缺口分析
  7. 试题11 蒜头君的随机数(排序和去重)
  8. python爬虫知乎问答
  9. 四叶草关闭啰嗦模式_教你如何解决 Win7 64位卡LOGO(四叶草)
  10. 简图记录-番茄时间管理
  11. 永洪BI中图标的细节
  12. mdx 医学词典_Mdict的mdx词典文件如何解析,有相关的开源代码可以参考吗?
  13. 图解:最短路径之迪杰斯特拉算法
  14. FidMTF: An MTF Estimator (FidMTF:一种MTF估计方法)
  15. JavaWeb-10课Filter过滤器
  16. 阿拉伯数字转中文 JAVA
  17. 微课程学习平台(微课平台)-特色功能(移动学习解决方案)
  18. 欧拉角的概念理解和欧拉角旋转矩阵推导
  19. AR+教育:ALVA SYSTEMS把图书馆做成了4D百科全书
  20. horizon学习小结

热门文章

  1. dm9000 晶振测不准
  2. 香蕉为什么能做随机数生成器?因为,它是水果界的“辐射之王”
  3. Linux运维学习笔记之二:常用命令
  4. matlab多变量复相关分析,Matlab多变量回归分析教程
  5. 手机端GSP地图的定位 并且在网页上显示地图的轨迹
  6. ETHEOS开发资源及工具集合(完整汇总版)
  7. s7-200与计算机modbus通讯案例,西门子S7-200 Smart Modbus通信介绍与实例编程
  8. 密码学之对称加密体系(1):AES、SM4的 S 盒有限域与复合域算法实现原理
  9. OPENCV】seamless clone 功能比较
  10. Settings.settings文件的用处