1. java中static是什么意思,该怎么用
就是静态。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。
声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共同拥有一个static变量。声明为static的方法有以下几条限制:
· 它们仅能调用其他的static 方法。
· 它们只能访问static数据。
· 它们不能以任何方式引用this 或super(关键字super 与继承有关)。
举例
如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块:
// Demonstrate static variables,methods,and blocks.
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b); }
static {
System.out.println("Static block initialized.");
b = a * 4; }
public static void main(String args[]) {
meth(42); }
}
一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。 注意:在一个static 方法中引用任何实例变量都是非法的。
下面是该程序的输出:
Static block initialized.
x = 42
a = 3
b = 12
2. Java中,static成员可以被继承吗
static成员可以被继承,final定义的类不能有子类,方法不能被覆写,变量即为常量,不能修改
3. java static成员变量方法和非static成员变量方法的区别
内存分配
静态静态,就是当类被加载时,这个内存就静静的待在这里,就已经存在,而普通成员变量,只有类被实例化时才分配内存。
调用方法
成员变量需要对象才能被调用;而静态成员变量可以直接通过类来调用,当然也可以直接调用
PS:小小疑问为什么可以直接调用,我看一些参考书上只说可以通过类来调用?
public class demo {
static int i=10;
public static void main(String[] args){
int k=i;//直接调用
int j=demo.i;//通过类来调用
System.out.println("直接调用k:"+k);
System.out.println("通过类来调用j:"+j);
}
}
生命周期
静态成员变量从类被加载开始到类被卸载,一直存在;普通成员变量只要在类被实例化也就是创建对象是才开始存在,一直到对象结束,生命也告终。
共享方式
静态成员变量是全类共享的,即使不是对象,也可以调用,并且内存不变;普通成员变量是每个对象单独享用的,就是说你这个对象有一个int i=1,我再给该类创建一个新的对象,他也有一个int i,但他可以不等于1,可以等于5,也可以等于10,但无论等于多少,都不会影响之前对象的i的值,而静态成员变量不是这样。
4. JAVA里的静态成员是什么
是类和类的多个对象共同拥有的一个属性或者是方法,静态成员可以通过类名.静态成员名或者是对象名.静态成员名调用,需要注意的是,如果你定义了一个静态成员public static int A = 10,类调用了这个静态成员并且将10改成了20,那么其它的对象再调用这个A此时他们得到的值就是20,因为他们和类共同拥有一个静态成员。
5. java语法中的static是什么意思
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。
实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
6. JAVA static成员
类被虚拟机加载时除了加载完毕成员后,先执行静态快.
7. java中的static到底有什么作用
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
8. Java中static的作用
1.static 成员变量

在 Java 中还支持用 static 修饰的内部类,称为静态内部类。静态成员内部类的特点主要是它本身是类相关的内部类,所以它可以不依赖于外部类实例而被实例化。静态内部类不能访问其外部类的实例成员(包括普通的成员变量和方法),只能访问外部类的类成员(包括静态成员变量和静态方法)。即使是静态内部类的实例方法(非静态成员方法)也不能访问其外部类的实例成员。
9. 在Java中static修饰的成员属于类本身,而不属于该类的实例,这句话到底是什么意思
类和类的实例你能够区分不,比如Person就表示“人”这个类,而小明是个具体的人,是该类的对象。
static修饰的成员属于类本身,就是静态成员,比如对于Person类,可以有“直立行走”的特性walkWithFoot ,是全体人类公有的,因此可以在引用时直接用Person.walkWithFoot来使用。
而其他没用static修饰的,就是成员变量或方法,必须先new出来类的对象,比如speak(),对于不同的人说的话不同,就得new Person("小明").speak()。
这就是加不加static的区别。你看一看JDK类里面自带的static变量和方法,比如Integer.parseInt(String str),是转换字符串到数字的方法,都不需要创建实际的对象,就可以应用了。
10. JAVA 简述static成员变量与非static成员变量的主要区别是什么
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。
你不需要创建一个对象就可以直接使用这个类的static成员,
在A类中调用B类的static成员可以使用B.staticMember的写法。
注意一个类的static成员变量是唯一的,被所有该类对象所共享的。
比如说有一个类Dog;
属性:clolor,狗狗可以有好多颜色;
munberOfLegs =4 每只狗狗只有4条腿,这个就应该是静态的;
静态的属性不依赖于类的存在而存在,简单说,你可以定义
Dog dog1 = new Dog();
Dog dog2 = new Dog();
Dog dog3 = new Dog();
这里定义了三条狗狗,狗狗的颜色依赖于类本身,即dog1,dog2,dog3;三条狗狗可以有不同的颜色;
而狗狗的腿的数量不依赖于dog1,dog2,dog3;所有的狗狗都是4条腿