Java面试(static 关键字)(final关键字)

简介: static 关键字,final关键字

static

static 是 Java 中⾮常重要的关键字,static 表示的概念是 静态的 ,在 Java 中,static 主要⽤来

  1. 修饰变量,static 修饰的变量称为 静态变量 、也称为 类变量 ,类变量属于类所有,对于不同的类来说,static 变量只有⼀份,static 修饰的变量位于⽅法区中;static 修饰的变量能够直接通过类名.变量名 来进⾏访问,不⽤通过实例化类再进⾏使⽤。
  2. 修饰⽅法,static 修饰的⽅法被称为 静态⽅法 ,静态⽅法能够直接通过 类名.⽅法名 来使⽤,在静态⽅法内部不能使⽤⾮静态属性和⽅法static 可以修饰代码块,主要分为两种,⼀种直接定义在类中,使⽤ static{} ,这种被称为 静态代码块 ,⼀种是在类中定义 静态内部类 ,使⽤ static class xxx 来进⾏定义。
  3. static 可以⽤于静态导包,通过使⽤ import static xxx 来实现,这种⽅式⼀般不推荐使⽤
  4. static 可以和单例模式⼀起使⽤,通过双重检查锁来实现线程安全的单例模式。

final

final 是 Java 中的关键字,它表示的意思是 不可变的 ,在 Java 中,final 主要⽤来

修饰类,final 修饰的类不能被继承,不能被继承的意思就是不能使⽤ extends 来继承被 final 修饰的类。

  1. 修饰变量,final 修饰的变量不能被改写,不能被改写的意思有两种,对于基本数据类型来说,final修饰的变量,其值不能被改变,final 修饰的对象,对象的引⽤不能被改变,但是对象内部的属性可以被修改。final 修饰的变量在某种程度上起到了 不可变 的效果,所以,可以⽤来保护只读数据,尤其是在并发编程中,因为明确的不能再为 final 变量进⾏赋值,有利于减少额外的同步开销。
  2. 修饰⽅法,final 修饰的⽅法不能被重写。
  3. final 修饰符和 Java 程序性能优化没有必然联系
相关文章
|
5天前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
3天前
|
存储 缓存 网络协议
复盘女朋友面试4个月的Java基础题
这篇文章是关于Java基础面试题的复盘,涵盖了HashMap原理、对象序列化作用等高频面试问题,并强调了Java基础知识的重要性。
复盘女朋友面试4个月的Java基础题
|
5天前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
4天前
|
NoSQL Java 数据库
2022年整理最详细的java面试题、掌握这一套八股文、面试基础不成问题[吐血整理、纯手撸]
这篇文章是一份详尽的Java面试题总结,涵盖了从面向对象基础到分布式系统设计的多个知识点,适合用来准备Java技术面试。
|
4天前
|
算法 关系型数据库 MySQL
一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
这篇文章是关于MySQL的面试题总结,包括索引结构的优劣、索引设计原则、MySQL锁的类型、执行计划的解读以及事务的基本特性和隔离级别。
|
5天前
|
自然语言处理 NoSQL Java
一天一道Java面试题----第十二天(如何实现接口幂等性)
这篇文章探讨了实现Java接口幂等性的几种方法,包括使用唯一ID、服务端token、去重表、版本控制以及控制状态等策略。
|
28天前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
31 3
|
1月前
|
存储 算法 Java
Java面试之SpringCloud篇
Java面试之SpringCloud篇
67 1
|
1月前
|
缓存 NoSQL Redis
Java面试之redis篇
Java面试之redis篇
55 0
|
1月前
|
SQL 关系型数据库 MySQL
java面试之MySQL数据库篇
java面试之MySQL数据库篇
35 0
java面试之MySQL数据库篇