JAVA篇:部分知识汇总-关键字、final、不可继承的类和数据类型转换
2021/7/17 14:37:19
本文主要是介绍JAVA篇:部分知识汇总-关键字、final、不可继承的类和数据类型转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
0 前言
大概只是一些需要零零散散的东西,就硬混
1 官方定义关键字和保留字
一切思考的起源是true、false、null、sizeof、goto、synchronized 哪些是Java关键字?,所谓关键字,在官方已有定义http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.9。只是我自己对于关键字的定义似乎有些相当然了。这里考查的是java语言规范。
官方定义的关键字(Keyword)包含50个,关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,不能用作变量名、方法名、类名、包名和参数。除了以下列表中的50个,还包含3个非关键字的保留字,分别是true、false和null。
abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while
关键字const和goto是保留字,它们在C++中是关键字,但在Java中仍未使用。
而true和false我虽然在这里提及,但其实它们在技术上是boolean类型的值,并不能算作关键字。而null,从技术上讲它是空字面量,也不算关键字。
至于sizeof,大概是我在某个其他的地方记混了,它并非关键字。
2 有关final关键字的重要知识点
-
final关键字可以用于成员变量、本地变量、方法以及类。
-
final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。
-
你不能够对final变量再次赋值。
-
final修饰的本地变量必须在声明时赋值。
-
在匿名类或者接口中所有变量都必须是final变量。
-
final方法不能被重写。
-
final类不能被继承。
-
没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化。不这么做的话,编译器会报错“final变量(变量名)需要进行初始化”。
3 不可继承的类
final类不能继承,因为jdk的开发者认为,有一些最基本的类没有必要对开发者开放,所以讲这些类设计成为final类。
比较常见的不能继承的类包括:
-
String、StringBuffer、StringBuilder
-
基本类型的包装类如Double、Integer、Long
-
java.lang.Class
-
java.lang.System
-
java.lang.Void
4 Java的数据类型转换
当使用 +、-、*、/、%、运算操作时,遵循如下规则:
-
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
-
如果两个操作数中有一个是float类型的,另一个将会被转换为float类型,并且结果也是float类型;
-
如果两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
-
否则(操作数为:byte、short、int 、char),两个数都会被转换成int类型,并且结果也是int类型。
参考
Java 语言规范
java中有哪些类是不能继承的?
弱类型、强类型、动态类型、静态类型语言的区别是什么? - rainoftime的回答 - 知乎
这篇关于JAVA篇:部分知识汇总-关键字、final、不可继承的类和数据类型转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南