static作用:

1、static修饰方法

static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。

并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

2、static修饰变量

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。

而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量的初始化顺序按照定义的顺序进行初始化。

3、static修饰代码块

static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。

在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。

Java中是否可以覆盖一个private或者是static的方法?

如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用

当父类的方法被private修饰时,表明该方法为父类私有,对其他任何类都是不可见的,因此如果子类定了一个与父类一样的方法,这对于子类来说相当于是一个新的私有方法,且如果要进行向上转型,然后去调用该“覆盖方法”,会产生编译错误

class Parent {private fun() {...}
}
class Child extends Parent {private fun() {...}
}
class Test {public static void main(String[] args) {Parent c = new Child();c.fun(); //编译出错}
}

static方法时编译时静态绑定的,属于类,而覆盖是运行时动态绑定的(动态绑定的多态),因此不能覆盖.

说明

最后我整理了一份Java学习资料,如有需要扫描二维码领取!

Java常见面试题—”static”关键字有什么用?相关推荐

  1. 2018常见的java面试题_2018新版Java常见面试题

    千锋西安Java编程培训班的老师总结了2018新版Java常见面试题,一起来看! 1.1.java基础 ●面向对象的特征:继承.封装.多态 继承[构造器.protected关键字.向上转型Java实现 ...

  2. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  3. JAVA常见面试题及解答

    JAVA常见面试题及解答(精华)   1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class ...

  4. Java常见面试题 Java面试必看 (一)

    本篇博客是本人收集网上Java相关的资料整理所得,仅供参考. 一.Java基础 1.JDK 和 JRE区别 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java ...

  5. Java常见面试题整理(一)

    Java常见面试题整理 字符串 抽象类与接口 集合 多线程 锁 IO流 网络编程 字符串 主要包括String.StringBuffer和StringBuilder基本概念 String相关知识 St ...

  6. 300+ Java常见面试题总结【JavaPub版】

    点赞再看,养成习惯 答案解析见文末 我是JavaPub,专注于面试.副业,技术人的成长记录. 这份[Java常见面试题总结]我想准备很久了,前面做面试官,后来自己也面了很多一线二线互联网公司,希望通过 ...

  7. java常见面试题及答案 1-10

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  8. Java常见面试题,2021年及答案汇总

    Java常见面试题,2021年及答案汇总 其实,博主还整理了,更多大厂面试题,直接下载吧 下载链接:高清172份,累计 7701 页大厂面试题 PDF 1.什么是ThreadPoolExecutor? ...

  9. 总结Java常见面试题和答案

    转载自  总结Java常见面试题和答案 int和Integer有什么区别?   答:int是java的原始数据类型,Integer是java为int提供的封装类,java为每个原始数据类型都提供了封装 ...

最新文章

  1. python三酷猫_洛克王国三代酷猫登场 冰水酷猫解析
  2. linux之systemctl设置自定义服务
  3. linux 编写完程序吗,linux下编写C++程序
  4. 【数据结构与算法】【算法思想】位图
  5. php上传大文件500错误,PHP fastcgi模式大文件上传500错误
  6. 【半年总结】愿有岁月可回首
  7. Struts2之OGNL类型转换
  8. 谈谈研发PLM项目管理
  9. 大学生 大创 软著申请指南(图文含模板)(专用于大创,这篇就够了!纯干货!)
  10. Nacos:快速不停打印获取配置 c.a.n.client.config.impl.ClientWorker : get changedGroupKeys[${dataId}+${grou
  11. 青海干部网络学院 自动学习网站
  12. 互联网大数据时代下亚马逊是如何解决数据存储的
  13. 网页视频倍速播放代码
  14. 粒子滤波与重要性采样
  15. wb在计算机知识里是什么意思,计算机二级考试内容是什么?
  16. ps 图层解锁后变成全格子(全透明)的解决方法
  17. 谁知道下面这个视频中的特效是用什么软件做的?
  18. ffmpeg流媒体视频合并(画中画)效果并推流
  19. oracle 创建索引 CREATE INDEX
  20. mysql 悲观锁实现

热门文章

  1. Spark入门(三)——SparkRDD剖析(面试点)
  2. 问卷数据分析方法都有哪些?
  3. RAW 264.7 小鼠单核巨噬细胞白血病细胞培养解决方案
  4. 有一个数列,其前三项分别为1、2、3,从第四项开始,每项均为其相邻的前三项之和的1/2,问:该数列从第几项开始,其数值超过1200。
  5. 【天光学术】诉讼法论文:论交通肇事罪的认定与处理【开题报告 法学硕士研究生毕业论文】
  6. String比较大小
  7. 数据读取与数据扩增理解
  8. Android 4.0.1 源码下载,编译和运行
  9. 谷歌浏览器打开普通用户_Chrome浏览器的用户账户和密码如何导入其他浏览器
  10. 分账技术赋能农贸市场,重塑交易管理服务效能