mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-20 22:17:09 +08:00
增加 final 关键字的一些总结
This commit is contained in:
parent
4e647d5c7d
commit
c637a1d958
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
<!-- MarkdownTOC -->
|
<!-- MarkdownTOC -->
|
||||||
|
|
||||||
- [Java 基础知识30问](#java-基础知识30问)
|
|
||||||
- [1. 面向对象和面向过程的区别](#1-面向对象和面向过程的区别)
|
- [1. 面向对象和面向过程的区别](#1-面向对象和面向过程的区别)
|
||||||
- [面向过程](#面向过程)
|
- [面向过程](#面向过程)
|
||||||
- [面向对象](#面向对象)
|
- [面向对象](#面向对象)
|
||||||
@ -28,7 +28,7 @@
|
|||||||
- [18. 成员变量与局部变量的区别有那些?](#18-成员变量与局部变量的区别有那些?)
|
- [18. 成员变量与局部变量的区别有那些?](#18-成员变量与局部变量的区别有那些?)
|
||||||
- [19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?](#19-创建一个对象用什么运算符?对象实体与对象引用有何不同?)
|
- [19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?](#19-创建一个对象用什么运算符?对象实体与对象引用有何不同?)
|
||||||
- [20. 什么是方法的返回值?返回值在类的方法里的作用是什么?](#20-什么是方法的返回值?返回值在类的方法里的作用是什么?)
|
- [20. 什么是方法的返回值?返回值在类的方法里的作用是什么?](#20-什么是方法的返回值?返回值在类的方法里的作用是什么?)
|
||||||
- [21. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?](#21-一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?)
|
- [21. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序能正确执行吗?为什么?](#21-一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序能正确执行吗?为什么?)
|
||||||
- [22. 构造方法有哪些特性?](#22-构造方法有哪些特性?)
|
- [22. 构造方法有哪些特性?](#22-构造方法有哪些特性?)
|
||||||
- [23. 静态方法和实例方法有何不同?](#23-静态方法和实例方法有何不同?)
|
- [23. 静态方法和实例方法有何不同?](#23-静态方法和实例方法有何不同?)
|
||||||
- [24. 对象的相等与指向他们的引用相等,两者有什么不同?](#24-对象的相等与指向他们的引用相等,两者有什么不同?)
|
- [24. 对象的相等与指向他们的引用相等,两者有什么不同?](#24-对象的相等与指向他们的引用相等,两者有什么不同?)
|
||||||
@ -41,13 +41,12 @@
|
|||||||
- [28. Java中的值传递和引用传递](#28-java中的值传递和引用传递)
|
- [28. Java中的值传递和引用传递](#28-java中的值传递和引用传递)
|
||||||
- [29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?](#29-简述线程,程序、进程的基本概念。以及他们之间关系是什么?)
|
- [29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?](#29-简述线程,程序、进程的基本概念。以及他们之间关系是什么?)
|
||||||
- [30. 线程有哪些基本状态?这些状态是如何定义的?](#30-线程有哪些基本状态?这些状态是如何定义的)
|
- [30. 线程有哪些基本状态?这些状态是如何定义的?](#30-线程有哪些基本状态?这些状态是如何定义的)
|
||||||
|
- [31 关于 final 关键字的一些总结](#31-关于-final-关键字的一些总结)
|
||||||
- [Java基础学习书籍推荐](#java基础学习书籍推荐)
|
- [Java基础学习书籍推荐](#java基础学习书籍推荐)
|
||||||
|
|
||||||
<!-- /MarkdownTOC -->
|
<!-- /MarkdownTOC -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Java 基础知识30问
|
|
||||||
## 1. 面向对象和面向过程的区别
|
## 1. 面向对象和面向过程的区别
|
||||||
|
|
||||||
### 面向过程
|
### 面向过程
|
||||||
@ -312,7 +311,7 @@ hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返
|
|||||||
5. hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)
|
5. hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)
|
||||||
|
|
||||||
|
|
||||||
### 28. Java中的值传递和引用传递
|
## 28. Java中的值传递和引用传递
|
||||||
|
|
||||||
**值传递**是指对象被值传递,意味着传递了对象的一个副本,即使副本被改变,也不会影响源对象。(因为值传递的时候,实际上是将实参的值复制一份给形参。)
|
**值传递**是指对象被值传递,意味着传递了对象的一个副本,即使副本被改变,也不会影响源对象。(因为值传递的时候,实际上是将实参的值复制一份给形参。)
|
||||||
|
|
||||||
@ -357,6 +356,13 @@ hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返
|
|||||||
|
|
||||||
到达目的地:Dead
|
到达目的地:Dead
|
||||||
|
|
||||||
|
## 31 关于 final 关键字的一些总结
|
||||||
|
|
||||||
|
final关键字主要用在三个地方:变量、方法、类。
|
||||||
|
|
||||||
|
1. ①对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
|
||||||
|
2. ②当用final修饰一个类时,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法。
|
||||||
|
3. ③使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。类中所有的private方法都隐式地指定为fianl。
|
||||||
|
|
||||||
# Java基础学习书籍推荐
|
# Java基础学习书籍推荐
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user