staticstatic可以修饰属性,方法,代码块,内部类特点随着类的加载而加载优先于对象存在修饰的成员被所有对象所共享访问权限允许时,可以不创建对象,直接被类调用
static修饰的属性,存储在内存中的静态区域,整个程序中只有这一个成员publicclass Test {publicstaticvoidmain(String[] args) {Person p = new Person();Person.setName("ttf");//类可以直接访问静态方法System.out.println(Person.name);//使用类直接访问静态属性...
目录前言:static关键字解析Q1:static修饰基本类型域Q2:static修饰方法Q3:static修饰代码块Q4:static类@author:Tobin
水平有限,如有错误,望请斧正。
参考《Java核心技术卷-基础知识第10版》
对https://www.baeldung.com/java-static的部分解答进行了翻译。本节讨论static修饰符的使用。
static顾名思义有静态的含义,通过几个问答解释static的奥义。
static在java中主要修饰variables, methods, blocks,和nested classes。前...
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....
相关网页:Java序列化的高级认识http://www.360doc.com/content/13/0728/18/13247663_303173972.shtml以下程序来自”http://bbs.csdn.net/topics/390155251“(已验证)类Student1package test; import java.io.Serializable; public class Student1 implements Serializable{ private static final long serialVersionUID = 1L; private String name; private transient String password; private static int cou...
当需要共享的变量很多时,使用static变量占用内存的时间过长,在类的整个生命周期。而对象只是存在于对象的整个生命周期。 //饿汉式class Single//类一加载,对象就已经存在了。{
privatestatic Single s = new Single();private Single(){}publicstatic Single getInstance()
{
return s;
}
} //懒汉式 class Single2//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。
//延迟加载形式。 并发过程中存在...
新建了一个类Hello:代码: 第一次运行报错: 点击关闭该类的界面时出现: 点击是,然后再次打开,可以正确执行,结果为: 这是为什么.... 原文:http://www.cnblogs.com/ssyh/p/7859790.html
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 ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进...