java 静态变量&静态方法】的更多相关文章

1. 静态变量是static修饰的成员变量(类变量),若无static修饰,则是实例变量.静态变量是一种全局变量,它属于某个类,不属于某个对象实例,是在各对象实例间共存.   访问静态变量直接通过类名来访问,可以不通过实例化来访问他们.而实例变量就必须通过对象实例来访问 (类名.静态变量名即可访问)同理,静态方法也一样,通过类名调用. 2. 实例方法既可以使用实例变量又可以使用静态变量(方法).而静态方法只能使用静态变量(方法).如下是我经常犯的错误: package wen; //错误1 //…
java 静态变量在编译阶段就已经明确位置, 所以静态变量的声明与初始化在编码顺序上可以颠倒.也就是说可以先编写初始化的代码,再编写声明代码.如: public class Test { // 静态变量的初始化 static { _i = 10; } // 静态变量的声明 public static int _i; } 所以如下代码可以被重读下 public class Test { static { _i = 20; } public static int _i = 10; public st…
Java静态变量的初始化(static块的本质) 标签: javaclassstring编译器jdk工作 2010-02-06 07:23 33336人阅读 评论(16) 收藏 举报  分类: Java基础(13)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   在网上看到了下面的一段代码: public class Test { static { _i = 20; } public static int _i = 10; public static void …
先上实例 public class TestStatic { public static String staticString = "this is a static String"; //静态变量 public String instanceString = "this is a instance String";//实例变量 //静态方法 public static void staticMethod(){ System.out.println("t…
/*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog {                 //创建Dog类 String name; int health; int love; String sex; /* 无参方法(一般没有构造方法,系统默认无参方法, 同时可以直接在上面属性声明后面赋值,如果没有赋值,系统自动输入默认值) 但是加有参方法时,建议一定要把无参加上 修饰符+类名()…
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public class Demo { static int i = 10; int j; Demo() { this.j = 20; } public static void main(Str…
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public final class Demo { static int i = 10; int j; Demo() { this.j = 20; } public static void ma…
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放内存空间.static变量的生命周期取决于类的生命周期 类初始化顺序: 静态变量.静态代码块初始化 构造函数 自定义构造函数 结论:想要用static存一个变量,使得下次程序运行时还能使用上次的值是不可行的.因为静态变量生命周期虽然长(就是类的生命周期),但是当程序执行完,也就是该类的所有对象都已经…
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放内存空间.static变量的生命周期取决于类的生命周期 类初始化顺序: 静态变量.静态代码块初始化 构造函数 自定义构造函数 结论:想要用static存一个变量,使得下次程序运行时还能使用上次的值是不可行的.因为静态变量生命周期虽然长(就是类的生命周期),但是当程序执行完,也就是该类的所有对象都已经…
静态变量有哪些用途? 比如创建单例对象. 统计访问次数.数量等等. 多线路和进程中可能会使用. 深入理解补充.... PHP 单例模式解析和实战 php设计模式——单例模式 php static 与 java static 变量生命周期的不同 PHP 单例模式解析和实战 http://www.php100.com/cover/php/83.html解释了,为什么静态变量用self::$instance而不能用$this->.…
静态只能调用静态 非静态: 对象名.方法名 package ti; //通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. class StaticDemo { static int x; int y; public static int getX() { return x;//静态方法中可以访问静态数据成员x } public static void setX(int newX) { x = newX; } public int getY() {//int…
在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } static StaticTest st = new StaticTest(); static { System.out.println("1"); } { System.out.println("2"); } StaticTest() { System.out.pri…
静态变量其实就是全局变量 静态方法不需要实例化对象,直接可以调用. public class StaticVariable { public static int num1=20; public void TestAdd() { int num2=88,result; result=num1+num2; System.out.println(result); } public static void StaMethod() { System.out.println("老子是静态方法")…
1)静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员 2)如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量. 3)静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法.如:…
这几天遇到一个问题,一个Service里有一个map,但是这个Service有别的继承,于是每一个Service都会创建一个map,但是这个map应该是公用的,于是就有问题了...(按结构说Service里是不应该有map存在的,结果设计有问题,但是结构不影响研究) 特殊的解决方式:把此map改为static即可,因为一个类的静态变量在不同实例中是共用的,所以这样便实现了map的单例模式. (标准解决方案是放在一个单例的manager中,以便公共调用,这里偷懒...) 还有标准单例,一个priv…
    先看下JDK中的说明: java.lang.Object java.lang.Class<T> Instances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class…
背景 是的,标题没有错误,不是Spring Bean的循环依赖,而是静态变量之间的循环依赖. 近期的项目均是简单的Maven项目,通过K8S部署在阿里云上,其配置文件读取规则如下所示: (1) 优先读取应用部署同层目录下的配置文件: (2) 如果没有外部配置文件,则读取打包至jar包中的配置文件. 在部署的过程中,发现应用无法争取读取外部配置文件中的配置信息,坚持不懈的读取打包文件中的. 日志文件配置错误 <?xml version="1.0" encoding="UT…
class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; public static int count2 = 1; private SingleTon() { count1++; count2++; } public static SingleTon getInstance() { return singleTon; } } public class Tes…
类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰.(static表示“全局的”.“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行)).并且一个实例中进行修改后,再次实例化的时候能够得到前一次修改的值,只要把static想成php里面的global就好理解了 成员变量则不同,每次初始化的时候重新赋值. package com.sun; public class Tedt07 { /*…
实例变量又称成员变量: 1⃣️成员变量定义在类中,在整个类中都可以被访问 2⃣️成员变量随着对象的建立而建立,随对象的消失而消失,存在于对象所在的对内存中 3⃣️成员变量有默认初始值 局部变量: 1⃣️定义在方法中或方法的参数列表(或者语句中) 2⃣️存在于栈内存中,作用的范围结束,变量空间自动释放 3⃣️默认没有初始化值,使用时需要进行初始化 静态变量又称类变量:用static修饰 1⃣️存储在方法区中 2⃣️随着类的加载而存在,随着类的消失而消失 3⃣️可以由类名或对象调用…
测试代码 public class SingleTest { public static String v = "StaticValue"; static { System.out.println("static静态变量:" + v); System.out.println("static静态块"); } { System.out.println("构造块"); } public SingleTest() { System.o…
static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类中定义的常量分配到不同的内存空间中.为了解决 这个问题,可以将这个常量设置为静态的.PI常量在内存中被共享的布局如图 参考资料:Java从入门到精通 第三版 被声明为static的变量,常量和方法被称为静态成员.静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和"." 运…
1.非静态方法重写 public class Test { public static void main(String[] args) throws Exception { Tree pine = new Pine(); Tree oak = new Oak(); say(pine); say(oak); } private static void say(Tree tr) { tr.say(); } } class Tree { public void say() { System.out.…
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静态变量 static修饰的变量为静态变量 在创建对象时,静态变量位于方法区中,而非像实例变量一样,位于堆内存中 一个类的所有对象共用相同静态变量,通过类名来调用静态变量,通过实例来调用虽然也符合语法,但不推荐 示例:静态变量的一个用法 class Employee{ private static i…
谈谈java中静态变量与静态方法在有继承关系的两个类中调用 学习的中如果遇到不明白或者不清楚的的时候,就是自己做些测试,自己去试试,这次我就做一个关于静态变量和静态方法在有继承关系的两个类中的问题测试. 首先我先建一个父类:…
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                                        非静态对象      拥有属性:                是类共同拥有的                                             是类各对象独立拥有的 内存分配:               内存空间上是固定的 …
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                                        非静态对象      拥有属性:                是类共同拥有的                                             是类各对象独立拥有的 内存分配:               内存空间上是固定的 …
Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中被 static 修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.静态成员可以使用类名直接访问,也可以使用对象名进行访问.当然,鉴于他作用的特殊性更推荐用类名访问~~ 使用 static 可以修饰变量.方法和…
内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { class B { public void shout1() { System.out.println(i); } } B b = new B(); b.shout1(); } public static void main(String[] args) { A a = new A(); a.shout…
简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息. 堆区:用于存放类的对象实例. 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量.方法出口等信息. 当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果方法中调用了其他方法,则…