4.java基础-static
☆static关键字
修饰成员变量和成员方法
static关键字特点
1.随着类的加载而加载
2.优先于对象存在
3.被类的所有对象共享,可以通过类名调用。
static关键字注意事项
在静态方法中是没有this关键字。
静态方法只能访问静态的成员变量和静态的成员方法,原因是受生命周期的限制。
什么时候用静态?
A:当成员被所有对象共享,可以复用,比如常量。
B:工具类。
静态的内容存在于方法区。
package study.staic;/*定义一个人类姓名和年龄都是变化的,这个我能接收,因为每个人的姓名和年龄是不同的。但是,我们现在选取的几个人都是中国人,他们的国籍是一样的。一样的国籍,我每次创建对象,在堆内存都要开辟这样的空间,我就觉得有点浪费了。怎么办呢? 针对多个对象有共同的这样的成员变量值的时候,java就提供了一个关键字来修饰:static。
*/
public class Person {//姓名String name;//年龄int age;//国籍String country;public Person(){}public Person(String name,int age) {this.name = name;this.age = age;}public Person(String name,int age,String country) {this.name = name;this.age = age;this.country = country;}public void show() {System.out.println("姓名:"+name+",年龄:"+age+",国籍:"+country);}
}class PersonDemo {public static void main(String[] args) {//创建中国人Person p1 = new Person("邓丽君",16,National.CHINA);//创建中国人Person p2 = new Person("杨幂",22,National.CHINA);//创建美国人Person p3 = new Person("凤姐",20,National.AMERICA);p1.show();p2.show();p3.show();}
}
☆静态变量和成员变量的区别
所属对象不同
静态变量属于类,所以也称为为类变量。
成员变量属于对象,所以也称为实例变量(对象变量)。
内存中位置不同
静态变量存储于方法区的静态区。
成员变量存储于堆内存。
内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失。
成员变量随着对象的创建而存在,随着对象的消失而消失。
调用不同
静态变量可以不用创建对象通过类名调用,也可以通过对象调用。
成员变量只能通过对象名调用。
4.java基础-static相关推荐
- Java基础(Static关键字)
java基础 一.关于Static修饰的变量 首先Static修饰的变量是放在方法区内存空间中的,在运行时Static方法先赋值然后才是main方法的执行,在类加载的时候就对Static修饰的变量进行 ...
- Java基础-static 关键字解析
参考文章: https://www.cnblogs.com/dolphin0520/p/3799052.html static的应用: 1.static是为了在没有创建任何对象的前提下,仅仅通过类本身 ...
- java基础static变量初始化和赋值的例子
1.代码案例 public class A {public static int x;static{x = B.y+ 1;} } public class B {public static int y ...
- java基础-static
1.static静态的(存在方法区的静态域): 2.static可以用来修饰:属性,方法,代码块,内部类 3.使用static修饰属性:静态变量,类变量 1.静态属性 vs 非静态属性(实例变量) 实 ...
- java基础——static 关键字小节
static 用于修饰成员 修饰成员变量和成员函数 被修饰过的成员的特点: 1.随着类的加载而加载 2.优先于对象而存在 3.被所有对象所共享 4.可以直接被类名调用
- Java基础--static静态原理及API使用示例详解
Arrays类 Math类
- java先执行static还是构造函数_【Java基础】类的实例化、static、父类构造函数执行顺序...
重温java基础,以免自己以后犯原则性错误,这是最基本,最基础的东西. 先看结论: 一个类的实例化过程: 1,首先会执行类中static代码块(不管代码块是否在类的开头还是末尾处),如果这个类有父类, ...
- 【零基础学Java】—static关键字概述(十六)
[零基础学Java]-static关键字概述(十六) 一.static关键字 二.static关键字修饰成员变量 /*** @author :CaiCai* @date : 2022/4/8 11:1 ...
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
JAVA基础-栈与堆,static.final修饰符.内部类和Java内存分配 发布时间: 2013/01/12 22:29 QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 ...
最新文章
- 计算机一级多选题没有选分,计算机一级多选题
- Deep Learning回顾之LeNet、AlexNet、GoogLeNet、VGG、ResNet
- 【机器学习基础】深入讨论机器学习 8 大回归模型的基本原理以及差异!
- Some exceptional case in WebUI Component Repository Information System Design
- RHEL 5服务篇—常用网络配置命令
- mupdf不支持x64_Delphi xe2使用x64编译器编译ASM代码时出错 . 不支持的语言功能:'ASM'...
- 执行perl xttdriver.pl报错Can't locate Getopt/Long.pm in @INC
- TypeError: 'float' object is not iterable
- android 距离感应器控制屏幕熄灭_书房大变身!有格调的屏幕挂灯,加了它桌面秒变神仙颜值...
- Qt界面语言设置(官方汉化)
- 实用插件(七)视频播放插件——ckplayer
- win7系统网页激活实验
- 【微信小程序】发布流程及发布审核时如何提供测试账号?
- Android子控件超出父控件的范围被覆盖问题
- 算法的时间复杂度排序
- 中金公司:券商IT广阔天际 明月不出群星闪耀
- 在线2000人的服务器配置,同时线上人数约2000人需要什么等级服务器?
- java通过filter单点登陆
- 小陈老师、雪人 HRBUST - 1176(优先队列+)
- 用java的事件监听机制实现一个简单的画板应用:通过选择图形按钮和颜色按钮来画出自己想画的图形:直线、空心矩形、圆形、折线、多边形、圆角矩形、弧线、曲线、喷枪