JAVA基础面试之static

本文详细介绍了Java中的static关键字,包括它的含义和作用。static关键字用于声明静态变量和静态方法,使得它们在类加载时即被创建,无需实例化对象即可访问。此外,文章指出Java中private和static方法不能被覆盖,因为它们分别受限于访问权限和绑定机制。最后,强调了static方法不能直接访问非static变量,因为在static环境中无法确定具体的对象实例。
摘要由CSDN通过智能技术生成

目录

(1)static关键字是什么意思

(2)static的作用

(3)Java中是否能覆盖private方法或static方法?

(4)能否在static环境中访问非static变量


(1)static关键字是什么意思

   表明一个成员变量或者成员方法可以在 所属类没有实例对象的情况下被访问

(2)static的作用

        第一:为某特定的数据类型或对象分配单一的存储空间,而与创建对象的个数无关。

        第二:实现某个方法或属性与类而不是对象关联在一起

Java类提供了两种类型的变量:用static关键字修饰的静态变量和不用static关键字修饰的实例变量。静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,这个静态变量就会被分配空间,因此就可以被使用了。对静态变量的引用有两种方式,分别是“类.静态变量"和”对象.静态变量"

实例变量属于对象,只有对象被创建后,实例变量才会被分配内存空间,才能被使用,它在内存中存在多个复制,只有用“对象.实例变量”的方式来引用。

(3)Java中是否能覆盖private方法或static方法?

都不能。

①static方法是编译时静态绑定的,而方法覆盖是基于运行时动态绑定的。

②private修饰的方法只能在当前类使用,其他类继承了该类,连访问的权限都没有,更不别说方法覆盖了。

注:编译时静态绑定,大概就是说,在编译时,就会把该方法绑定到类上,也就是说,在编译时就能确定,这个方法属于哪个类。

而运行时绑定则是,在运行时才会把方法绑定到类上。

(4)能否在static环境中访问非static变量

        不能

        static方法中不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员和静态方法,因为当static方法被调用时,这个类的对象可能还没被创建,即使已经被创建了,也无法确定调用哪个对象的方法。同理,static方法也不能访问非static类型的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值