Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 684|回复: 0

Static的基本知识

[复制链接]

该用户从未签到

发表于 2011-9-12 23:45:09 | 显示全部楼层 |阅读模式
1>: static 关键字声明一个属性、方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”。
2>: 如果访问控制权限允许,可以不必创建该类对象而直接使用类名加"."调用,无论类中产生多少个类的实例对象,静态变量的值都是一样
3>: static 不可用于构造器
4>: 也可以通过类的实例对象访问

扩展知识:
a>: 子类继续父类的静态变量,不管是子类对象调用静态变量的hashCode()还是父类调用,产生的哈希码都是一样的
b>: 静态方法中只能调用静态变量或静态方法原因:
   因为非静态方法只能通过对象的形式调用,而静态方法在使用前,不需创建任何对象就可以调用。
c>: this和super不能存在于静态方法的原因:
   因为this代表的是当前对象,而静态方法是不需要创建任何对象就可以调用到的,因此,this不适应于静态方法。super也是同样的道理。。
d>: main方法为什么要使用static关键字
   这是因为,JVM在使用前<加载这个类>,不需创建任何实例对象就可以调用
e>: main方法的public关键字目的
   JVM在调用该代码时,因为是在不同包中,所以必须是public的

附>: 相同对象只在内存占用同一份空间
class ObjectA {
String str = "mjs";
}

public class ObjectApprehend {
String str1 = "mjs";
public static void main(String[] args) {
  ObjectA a = new ObjectA();
  ObjectApprehend oa = new ObjectApprehend();
  if(a.str.equals(oa.str1)) {
   System.out.println("两个对象占用相同的内存空间");
  }
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-2 07:13 , Processed in 0.409152 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表