static可以用来修饰代码块、成员变量、方法。把 static修饰的属性和方法称之为类属性、类方法;不用 static修饰属性、方法则属于该类的单个实例。1、static 修饰的代码块在类一开始加载时就执行,不需要创建一个实例;2、static 修饰的方法和属性,既可以通过类来调用,也可以通过实例来调用;没有用 static修饰的普通方法和属性只能通过实例来调用。3、不能从static方法发出对非 static方法的调用。package cn.com.postel.wbb.jav...
1. 修饰成员变量:有static修饰的为静态变量,没有static修饰的称为实例变量。 实例变量:属于对象的,一个对象有一份。在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。存储在堆中。 静态变量:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。 Demo: 1publicclass Spike2{3publicstaticvoid main(String[] args)4 {5 Counter a = new Coun...
本篇浅析java中static的用法,主要五个方面:静态成员变量,静态方法,静态块,静态内部类,静态导包。 首先还是一张表格说一下静态对象和非静态对象的区别: 静态对象非静态对象归属类共同具有类的各个实例独立拥有内存分配内存空间上固定的附属类分配分配空间顺序优先分配静态对象空间优先分配静态对象空间,初始化也一样 1 静态变量,静态方法,静态块 静态对象,静态方法都是在原对象和方法上加上static关键字修饰,表示...
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟
机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员...
什么是静态变量?在程序中如果用static声明变量的话,则此变量称为静态变量.用static声明的属性是所有对象共享的,既然是共享的,那么也就是一旦有一处进行修改,其他处调用也是修改后的值例如: public class TestStatic { static int num=1; //定义静态变量 public void Change() { System.out.println(num); num++; System.out.println(num); } public void Change2() { System.out.println(n...
一定要清楚static,如果胡乱使用极易造成各种错误。(1)比如:如果定义某个全局变量a是static的,当多次测试代码时,前一次运行测试得到a的值对下一次测试结果会有影响,这样的话就造成了多次测试所得到的结果会出现错误,所以尽量不要将类中需要被多次赋值的变量定义为静态的。(2)使用static修饰函数时候,如果想要使用全局变量,这时候必须将全局变量定义为static,因为静态函数只能访问静态变量,不可访问非静态变量。这种情...
static:静态的1.可以用来修饰的结构:主要用来修饰类的内部结构属性、方法、代码块、内部类2.static修饰属性:静态变量(或类变量) 2.1 属性,是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) * 实例变量:我们创建了类的多个对象,每个对象都独立的拥一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。 * 静态变量:我们创建了类的多个对象,多...
package com.rainy.main;import java.util.ArrayList;
import java.util.List;publicclass Test extends A {static List<Object> p = new ArrayList<Object>();static {
p.add(new Object());
}publicstaticvoid main(String[] args) {
System.out.println(p.size());
System.out.println(l.size());
}}class A {
static List<Object> l = new ArrayList<Object>();static {
l.add(new Object());
}
} 可以看出,当进入main方法之前...
如:public class InnerClassDemo{int x;class A{static int a = 0;//这样写是不合法的.static final int b=0;//这样写是合法的}} java类加载顺序,首先加载类,执行static变量初始化,接下来执行对象的创建,如果我们要执行代码中的变量int a 初始化,那么必须先执行加载外部类,再加载内部类,最后初始化静态变量 a ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进...
我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是static大显身手的时候了。 Java中被static修饰符修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问。 使用static修...
this:可以使用this表示类中的属性------this.name=name可以使用this强调调用的是本类的方法可以使用this调用本类的构造方法------this();调用本类中无参构造方法可以使用this表示当前对象(调用方法的对象)----最重要的用途static:声明属性---------属性则为全局变量声明方法---------Person.setName("Tom");使用类名称调用static方法普通代码块:直接在方法或是语句中定义的代码块public class CodeDemo01{public static void main(...
final修饰类:禁止继承该类。为啥String使用final修饰?String的不可变性,无法修改。避免继承修改该语义。修饰变量:表示不能改变引用。即C已经引用了A,C不能再引用B。 static:修饰变量:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。static成员变量的初始化顺序按照定义的顺序进行初始化。 static变量的生命周期是和类的生命周期相同的(类卸载的时候,该static变量也会被...
Java 中可以基于一个类创建多个对象,这些对象之间是相互独立的,他们拥有自己的成员。但是有时候我们需要使其共享同一个成员,可以很方便的操作,于是出现了我们的static。 static 可以修饰变量、方法和代码块一、static 修饰的变量 static 修饰的变量称为静态变量或者类变量,他属于某各类所有,并不是某个对象独有的,类的所有对象均可对其修改。比如,野外的一颗柿子树上的柿子,凡是经过的人均可采摘,并且后去的...
这一节我们来看一下在我们开发的过程中,在什么时候我们要用到static关键字进行静态修饰。我们这里所说的静态,无非就是两种,一种是静态变量,一种是静态函数,我们分这两种情况进行说明static关键字的使用场合。一、静态变量我们在7.8节中对static关键字特点和7.9节中成员变量与静态变量区别进行学习的时候就已经很明确的指出了静态变量是共享数据,而对象中封装的特有数据。因此我们可以这样解释:当分析对象中所具备成员变量的...
static的作用:1.将对象层级提升为类层级 (即将对象可以调用的,提升为对象和类均可调用的成员); //推荐使用类来调用 ClassNme.静态成员 (包括变量、方法、成员对象)2.static修饰的成员,在类加载时即准备完成,而不需要创建对象; //类加载只做一次:1 类名. 的时候会类加载; 2 new 对象时会类加载3.静态成员方法只能访问静态成员,不能访问非静态成员(因为调用该方法时可能还没有创建对象); 而非静态成员方法既能访...