Java 基础知识(一)

时间:2021-08-05 20:02:46

Java基础知识篇:

一、关键字解释

1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”。出于对设计或者效率的考虑使用该关键字。

final类无法被继承,final类中的方法也为final。

final方法不能被覆盖,但可以继承

final常量只能被赋值一次,不可改变,在声明时可以不赋值,但之后只能赋值一次。

final不能修饰构造方法, 编译器调用final方法时会转入内嵌机制,大大提高效率

通常private的方法默认是final类型的。

 

2. static“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,静态内部类,静态导包

静态变量和方法:与类一起被加载,不依赖类对象

静态代码块:与类一起被加载

静态导包: 静态导入包是JDK1.5中的新特性,用import static代替import,导入类中的一个或者全部静态方法,然后可以省略全路径直接使用静态方法。

静态内部类

 

static 和fainal 同时修饰变量,则该变量称为 ”全局常量“

 3.abstract

abstract关键字可以修饰类或方法。

abstract类可以扩展(增加子类),但不能直接实例化。

abstract方法不在声明它的类中实现,但必须在某个子类中重写。

-注释-

采用abstract方法的类本来就是抽象类,并且必须声明为abstract。

abstract类不能实例化。

仅当abstract类的子类实现其超类的所有abstract方法时,才能实例化abstract类的子类。这种类称为具体类,以区别于abstract类。

如果abstract类的子类没有实现其超类的所有abstract方法,该子类也是abstract类。

abstract关键字不能应用于static、private或final方法,因为这些方法不能被重写,因此,不能在子类中实现。

final类的方法都不能是abstract,因为final类不能有子类。

 

4.  byte byte可存储在[-128,127]范围以内的整数值。

特别说明的:C#中byte的范围是【0,255】,如果C#和java混合编程的时候需要注意byte的转换

 

5. char char变量可以存储一个Unicode字符。

特别说明的:C#中的char是8bits,和byte是可以直接相互转换,但是java中的char是16bit,不能和byte直接转换

 

6. synchronized 应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护

-注释-

synchronized关键字可防止代码的关键代码段一次被多个线程执行。

如果应用于静态方法(如上例中的MySyncStaticMethod),那么,当该方法一次由一个线程执行时,整个类将被锁定。

如果应用于实例方法(如上例中的MySyncMethod),那么,当该方法一次由一个线程访问时,该实例将被锁定。

如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。

 
7. transient
transient关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。
 
8. volatile
volatile关键字用于表示可以被多个线程异步修改的成员变量。

 

9. strictfp
  strictfp 即 strict float point (精确浮点),  关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。
  如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.

关键字总览

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
  
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
null 用来标识一个不确定的对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile
  
表明两个或者多个变量必须同步地发生变化
while
  
用在循环结构中