java知识总结——关键字(一)


java知识总结——关键字(一)

  • 说明
    • 一、变量名称规则
    • 二、break、continue和return
    • 三、final、finally和finalize
    • 四、assert的作用

说明 ??本文仅仅为了博主面试时方便查阅与梳理相关知识,如果有错误与不到位的地方,欢迎大佬指点改正,谢谢!
??阅读书籍:《java程序员面试笔试宝典》
一、变量名称规则 ??标识符
在java语言中,变量名、函数名和数组名统称为标识符,java语言规定标识符只能由字母(a-z,A-Z)、数字(0-9)、下划线(_)和美元符组成,标识符第一个字符必须是字母、下划线或美元符。此外,标识符也不能包含空白字符(换行符、空格和制表符)。
??注意:
??1、保留字不能作为标识符;
??2、标识符不能以数字开头;
??3、*不能作为标识符的字符;
??4、标识符区分大小写。
二、break、continue和return ??1、break
??break用于直接强行跳出当前循环,不再执行剩余代码。当循环中遇到break语句时,忽略循环体中任何其他语句和循环条件测试,程序控制在循环体后面的语句重新开始。所以,当多层循环嵌套,并且break语句出现在嵌套循环中的内层循环时,它将仅仅是终止了内层循环的执行,而不影响外层循环的执行。
??2、continue
??continue用于停止当次循环,回到循环起始处,进入下一次循环操作。continue语句之后的语句将不再执行,用于跳过循环体中的一部分语句。continue只是中断一次循环的执行。
??3、return
??return语句是一个跳转语句,用来表示从一个方法返回(返回一个值或其他复杂类型),可以使程序控制返回到调用该方法的地方。当执行main方法时,return语句可以使程序执行返回到java运行系统。
??break如何跳出多重循环?
??在多重循环的外面定义一个标识,然后再循环体里使用带有标识的break语句,这样即可跳出多重循环。
??java中的goto关键字
??goto作为java的保留字,但目前并未在java中使用。在C/C++中,goto常用于跳出多重循环。
??虽然java中没有goto语句,但是可以使用标识符加冒号(:)的形式定义标签。这主要是为了在多重循环中方便使用break和continue而设计的。
三、final、finally和finalize ??1、final
??final用于声明属性、方法和类,分别表示属性不可变、方法不可变和类不可继承(不能派生出新的子类)。
??(1)final属性
??被final修饰的变量不可变。
??不可变有两种含义:一是引用不可变,二是对象不可变。
??final指的引用的不可变性,即它指向初始时指向的那个对象,而不关心指向对象内容的变化。所以,被final修饰的变量必须被初始化。
??对final修饰的变量进行初始化的方式:
??①在定义的时候初始化;
??②final成员变量可以在初始化块中初始化,但不可在静态代码块中初始化;
??③静态final成员变量可以在静态初始化块中初始化,但不可在初始化块中初始化;
??④在类的构造器中初始化,但静态final成员变量不可以在构造函数中初始化。
??(2)final方法
??当一个方法声明为final时,该方法不允许任何子类重写这个方法,但子类仍然可以使用这个方法。另外,还有一种被称为inline(内联)的机制,当调用一个被声明为final的方法时,直接将方法主体插入到调用处,而不是进行方法调用,这样能提高程序的效率。
??(3)final参数
??用来表示这个参数在这个函数内部不可被修改。
??(4)final类
??当一个类被声明为final时,此类不能被继承,所有方法都不能被重写。但这并不表示final类的成员变量也是不可改变的。要想final类的成员变量不可改变,必须在成员变量增加final修饰。
??注意:一个类不能既被声明为abstract,又被声明为final。
??2、finally
??finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定被执行,经常被用在需要释放资源的情况下。
??注意:不管程序运行是否会出现异常,finally中的代码一定会执行,这样能够保证在任何情况下数据库的连接资源都能被释放。
??3、finalize
??finalize是Object类的一个方法,在垃圾回收期执行时会调用被回收对象的finalize()方法,可以覆盖此方法来实现对其他资源的回收。
??注意:一旦垃圾回收器准备好释放对象占用的空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
??JDK中哪些类是不能被继承的?
??不能继承的类时那些用final关键字修饰的类,比如一般的基本类型为防止扩展类无意间破坏原来方法的实现的类型都应该是final的(比如String、StringBuffer)。
四、assert的作用 【java知识总结——关键字(一)】??1、概念
??断言(assert)作为一种软件调试的方法,提供了一种在代码中进行正确性检查的的机制,目前很多语言都支持这种机制。它的主要作用是对一个boolean表达式进行检查,一个正确运行的程序必须保证这个boolean表达式的值为true,若boolean表达式的值为false,则说明程序已经处于一种正确的状态下,系统需要提供警告信息并且退出程序。
??注意:assert在实际开发中用来保证程序的正确性,软件发布后,assert检查默认关闭。
??2、表达方式
??assert包括两种表达式,分别为assert expression1与assert expression1:expression2,其中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象,基本类型包括boolean、char、double、float、int和long。
??3、应用范围
??(1)检查控制流;
??(2)检查输入参数是否有效;
??(3)检查函数结果是够有效;
??(4)检查程序不变量;

    推荐阅读