java中final和static

简介: final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义。 final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变。 final修饰对象的引用的时候,表示该引用不可变,但是引用的结果是可变的。这里和修饰数组相似,修饰数组的时候数组里边的内容是可变的。 final定义的方法不可被重写,final定义的类不能被继承。 static表示静态
final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义。


final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变。


final修饰对象的引用的时候,表示该引用不可变,但是引用的结果是可变的。这里和修饰数组相似,修饰数组的时候数组里边的内容是可变的。


final定义的方法不可被重写,final定义的类不能被继承。


static表示静态的,他修饰的方法和属性归类所有不属于对象,static修饰类的时候只能修饰嵌套类,static修饰的嵌套类可以被类中的静态方法调用,没有被static修饰的嵌套类就是通常所说的内部类。


static修饰的方法中不存在this,因为static修饰的方法不依赖于任何对象就可以访问,既然没有对象,也就没有this。在静态方法中,不能访问类中的非静态成员变量和非静态成员方法,因为他们都要依赖于对象。


需要注意的是,在非静态方法中是可以访问静态成员方法和变量的。


最常用的static方法是main方法,在程序执行的时候没有创建对象,直接通过类名来访问。


还需要记住的是,即使没有显示的声明为static,类的构造器实际也都是静态的。


静态变量被所有的类共享,在内存中仅存在一个副本,也仅在类被初次加载的时候初始化一次。非静态变量归对象所有,在创建对象的时候被初始化,存在多个副本互不影响。


static还有一个重要作用是声明一个静态代码块来优化程序的性能。static块可以存在类的任何地方,在类被初次加载的时候会被执行一次,并且仅此一次,而执行顺序与静态代码块的排列顺序一致。


static关键字不会影响变量和方法的作用域和访问权限,static修饰的是全局变量,因此不能来修饰局部变量。


静态方法和静态变量独立于对象,属于类,但是权限够的情况下,是可以通过对象和this来访问的。


目录
相关文章
|
23天前
|
存储 Java
Java 中的静态(static)
【10月更文挑战第15天】静态是 Java 语言中一个非常重要的特性,它为我们提供了一种方便、高效的方式来管理和共享资源。然而,在使用过程中,我们需要谨慎考虑其优缺点,以确保代码的质量和可维护性。
|
1月前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
28 3
|
1月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
在Java并发编程中,`final`关键字不仅用于修饰变量、方法和类,还在多线程环境中确保对象状态的可见性和不变性。本文深入探讨了`final`关键字的作用,特别是其在final域重排序规则中的应用,以及如何防止对象的“部分创建”问题,确保线程安全。通过具体示例,文章详细解析了final域的写入和读取操作的重排序规则,以及这些规则在不同处理器上的实现差异。
了解final关键字在Java并发编程领域的作用吗?
|
1月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
23 5
|
1月前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
34 0
Java中 final、finally、finalize 有什么区别?
|
1月前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
191 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
1月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
了解final关键字在Java并发编程领域的作用吗?
|
1月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
30 0
|
1月前
|
安全 Java 编译器
了解final关键字在Java并发编程领域的作用吗?
【10月更文挑战第8天】在Java并发编程中,`final`关键字具有重要作用,包括保证变量的可见性和不可变性,防止对象引用被意外修改,并帮助编译器优化读取操作及消除不必要的同步。通过确保变量不可变,`final`增强了多线程环境下的安全性与性能。
|
存储 Java 数据库
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(中)
Java-对象的操作(构造、初始化、封装)、static成员以及代码块(中)
63 1
下一篇
无影云桌面