static class 和 non static class 的区别

static class non static class

1、用static修饰的是内部类, 此时这个内部

类变为静态内部类;对测试有用;

2、内部静态类不需要有指向外部类的引用

1、非静态内部类需要持有对外部类的引用;
时间: 2024-10-17 04:50:38

static class 和 non static class 的区别的相关文章

java中static、final、static final的区别

final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变. final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值. final修饰的属性表明是一个常数(创建后不能被修改). final修饰的方法表示该方法在子类中不能被重写,final修饰的类表示该类不能被继承. 对于基本类型数据,final会将值变为一个常数(创建后不能被修改):但是对于对象句柄(亦可称作引用或者指针),fin

java之static变量与全局、局部变量的区别

static变量与全局.局部变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的.而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函

synchronized 修饰在 static方法和非static方法的区别

Java中synchronized用在静态方法和非静态方法上面的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以synchronized来修饰方法里面的一个语句块.那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,是属于类的锁.而非stati

PHP中静态方法(static)与非静态方法的使用及区别

static关键字用来修饰属性.方法,称这些属性.方法为静态属性.静态方法. static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法" 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用. static关键字可以用来修饰变量.方法. 不经过实例化,就可以直接访问类中static的属性和static的方法. static 的属性和方法,只能访问sta

static public和 public static 区别

1 static:加static 的是静态成员,不能实例化在你运行的时候他自己在内存中开辟了块空间,不用在new, 有点像全局变量,如果不用你必须去 实例化(new)才能用 2 3 static是静态的意思,public或private与其他成员一样 4 1.访问static成员,只能用类而不是实例化的对象: 5 2.static方法只能访问static属性: 6 3.static成员可以保留其值 7 8 ---------------------------------------------

Java语言中synchronized 修饰在 static方法和 非static方法的区别(转)

synchronized锁住的是对象,当初始化对象的时候,JVM在对象初始化完成之前会调用方法外面的语句块,这个时候对象还不存在,所以就不存在锁了. 那么,在static方法和非static方法前面加synchronized到底有什么不同呢? 大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,就是当前调用这个方法的对象所属的类(Class,而不再是由这个Class产生的某个具体对象了).而非stat

(转 )C++ static、const和static const 以及它们的初始化

const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间.但不论是Const还是static  他们定义的内容都会随着程序的结束而被系统清楚. static 表示的是静态的.类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量.一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中. 在c++中,static静态成员变量不能在类内部初始化. 在c++中,const常

PHP类的静态(static)方法和静态(static)变量使用介绍

PHP类的静态(static)方法和静态(static)变量使用介绍,学习php的朋友可以看下 在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问. 2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以.但是有前提条件: A. 如果是变量,需要该变量可访问. B. 如果是方法,除了该方法可访

java——多线程——单例模式的static方法和非static方法是否是线程安全的?

单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全. 闲话休说,看代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestSingl

C++ Primer 学习笔记_25_类与数据抽象(11)--const 用法小结、static与const以及static const(const static)

一.const 用法总结 1.可以对const 的用法做个小总结: const int n = 100;  //定义常量 const Test t(10); const int & ref = n;   //const引用 int& ref = n;  //Error [const与指针] const int* p; //const出现在*前面,表示*p是常量 (*p = 200; //Error) int * const p2;  //const出现在*后面,表示p2是常量 (p2 =