问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java中的 static{ …… } 是什么意思?90

发布网友 发布时间:2023-10-16 05:10

我来回答

5个回答

热心网友 时间:2024-10-21 03:15

是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?
在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制),例如:
未声明为static
class ClassA{
int b;
public void ex1(){

}
}
class ClassB{
void ex2{
int i;
ClassA a = new ClassA();
i = a.b; //这里通过对象引用访问成员变量b
a.ex1; //这里通过对象引用访问成员函数ex1
}
}

声明为static
class ClassA{
static int b;
static void ex1(){

}
}
class ClassB{
void ex2{
int i;
i = ClassA.b; //这里通过类名访问成员变量b
ClassA.ex1; //这里通过类名访问成员函数ex1
}
}
通过以上两种比较,就可以知道static用来修饰类成员的主要作用了,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,最基本的有Integer.parseInt(),Float.parseFloat()等等用来把对象转换为所需要的基本数据类型。这样的变量和方法我们又叫做类变量和类方法。
接下来讲一下被static修饰后的变量的值的问题,刚才在前面讲过,被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间,看一下下面这个例子:
class TStatic{
static int i;

public TStatic(){
i = 4;
}

public TStatic(int j){
i = j;
}

public static void main(String args[]){
TStatic t = new TStatic(5); //声明对象引用,并实例化
TStatic tt = new TStatic(); //同上
System.out.println(t.i);
System.out.println(tt.i);
System.out.println(t.i);
}
}
这段代码里面Tstatic类有一个static的int变量I,有两个构造函数,第一个用于初始化I为4,第二个用于初始化i为传进函数的值,在main中所传的值是5,程序首先声明对象的引用t,然后调用带参数的构造函数实例化对象,此时对象t的成员变量I的值为5,接着声明对象tt,调用无参数的构造函数,那么就把对象tt的成员变量i的值初始化为4了,注意了,在这里i是static,那就是说该类的所有对象都共享该内存,那也就是说在实例化对象tt的时候改变了i的值,那么实际上对象t的i值也变了,因为实际上他们引用的是同一个成员变量。最后打印的结果是三个4。呵呵,写到这里大家是否明白了呢?不明白就再看看书或者多写几个例子印证一下,呵呵。

热心网友 时间:2024-10-21 03:15

static{ …… }就是静态块,他在程序编译的时候就会自动执行(记住是编译的时候就执行,不是运行阶段),不需要调用。而且与他存在的位置没有关系,与他所在的类是否被实例化也没有关系。

热心网友 时间:2024-10-21 03:15

关于Java中的static{}块,通过调试以下两个程序就能弄清楚用途:

1、第一个小程序

package com.babyDuncan.Sohu;
public class testStatic {
    static
    {
        int x = 5;
    }
    static int x, y;
    public static void main(String[] args) {
        x--;
        myMethod();
        System.out.println(x + y + ++x);
    }
    public static void myMethod()
    {
        y = x++ + ++x;
    }
}
#该程序输出为:3

分析如下:
执行main中的x--之后,x值为-1,执行myMethod之后,x为1,y值为0,执行输出语句表达式,该表达式的值为1+0+2=3,所以输出结果是3。

2、第二个小程序

package com.babyDuncan.Sohu;
public class testStatic2 {
    /**
     * 关于Static{}块的解释:
     * 只是在执行main之前执行的一些语句而已,并不是说里面的变量就是
     * static的,没什么特别的。
     * 临时变量只在static这个大括号中有用。
    **/
    static {
        int x = 8;
        System.out.println("这是static,这有一个变量x="+x);
    }
    static int x;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(x);
    }
}
#输出结果为:
#这是static,这有一个变量x=8
#0

热心网友 时间:2024-10-21 03:16

static是指在内存的datasegment里生成一块内存 要用的时候不用每次都new一个新的内存空间 直接用类名+static的方法名或变量名引用就可以了 args是字符串数组的名字 你喜欢也可以换成String[] haha 方括号放前面后面都可以 习惯放前面

热心网友 时间:2024-10-21 03:17

static是静态加载块。
解释:项目运行初始化过程会将static内部程序加载到内存中,不能有参数值等动态参数。
备注:一般都是加载数据库连接时候用来加载数据库驱动用的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...每次文字比较多超出屏幕大小就不知道怎么截屏,求教大佬! 我国政策性 广西明士清医疗器械有限公司怎么样? 广西禾力药业有限公司怎么样? 广西龙母圣商贸有限公司怎么样? 安徽合肥有什么去痔的好地方 我女朋友的谷丙转氨酶过高(达到121),而且两对半检测为阴性,是肝功能有... 泸州丽人女子医院开展科室 自由之子本次世界杯是否将在小组赛中被菜? 世界杯谁会嬴 金融专硕考研,考396有哪些学校1 2017年哪些学校考396经济类联考3 天津市区的海河边有什么地标性建筑8 金融硕士考研全国有哪几所学校考396经济类联考啊?154 天津的天塔到底有多高啊102 大1.5匹的空调制热面积最大是多少平方冬天零下7度左右 南国新是在佑佑宝贝妇儿医院坐诊吗?他幼儿马蹄足方面怎么样? 《社戏》的写作顺序是什么 跪求!27 女生 二重唱歌曲 美声 要具体曲目21 保全裁定未经人民法院依法撤销或解除,进入执行程序后一5 宠物食品都有什么种类啊? "不只是...而且是..."怎么造句? 我是老板里马一明为什么叫石红兔子?8 月亮大还是太阳大?24 月亮大还是太阳大?4 西点怎么样? 安徽有学的么???2 求解!安徽西点培训都有哪些比较好口碑的学校,一定要正规的那种4 档案放诸暨市人力资源市场管理办公室算工龄吗2 我的是什么号码8 我的是什么呢7 《社戏》的写作思路104 重庆佑佑宝贝妇儿医院现在不是24h咨询了?他们023-89098999这个号,上次... 女演员王鸥的个人简历及老公是谁26 王鸥结婚了吗,王鸥老公,王鸥男友,王鸥个人资料背景5 我要学西点? 我在安徽2 ...这几天用着用着,他的孩子不小心按错了遥控器的按键,电视没图像了... 写一篇以游龙山(岳阳的龙山烧烤)并仿写《社戏》一文的作文,8...17 ...movie maker将照片制作成视频,如何调整每张图片的播放时间 我去办个工商银行卡存钱用的,后来发现给我办理了个贵金属协议。请问这个... 急求张潮在火车上演小偷的一部电影,好像刚一下火车那钱就掉出来... 为什么用手机买火车票说11.30开始我刚去就么了 松下空调冬天能打到多少度啊.我家的是1.5匹的。室外零下三度... 石家庄42中招生办电话 滁州君安阳光都市小区周边配套怎么样? 新三系主屏幕不显示收音机多媒体 12岁的孩子适合用18寸的拉杆箱么?哪里有卖? IPHONE4现在韩国卖多少钱? 宝马13显示屏收音机怎么找不到了呢 渭城朝雨浥轻尘,客舍青青柳色新.劝君更尽一杯酒, 西出阳关无故人.出自... ...一个已婚的漂亮女人,身材很好,是他很喜欢的类型,两个人?