首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 内部静态类_静态内部类特点

Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,如果能把内部类运用好,那么会明显增强Java程序的灵活性。...简单的说就是在一个类的内部又定义了一个类,这个类就称之为内部类(Inner Class)。...看一个简单的例子: 内部类有以下几个主要的特点: 第一,内部类可以访问其所在类的属性(包括所在类的私有属性),内部类创建自身对象需要先创建其所在类的对象,看一个例子: 第二,可以定义内部接口,且可以定义另外一个内部类实现这个内部接口...方法体内的内部类可以完成一个基于虚方法形式的回调操作,看一个例子: 第四,内部类不能定义static元素,看一个例子: 第五,内部类可以多嵌套,看一个例子: static内部类是内部类中一个比较特殊的情况,Java...与static内部类不同,内部接口自动具备静态属性,也就是说,普通类是可以直接实现内部接口的,看一个例子: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

62720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解java中静态方法有哪些_java类中的静态变量

    定义: 在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。...原因: 因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类的对象创建时在对象的内存中才有这个方法的代码段。...引用静态方法时,可以用类名.方法名或者对象名.方法名的形式。...对以上描述进行验证的代码示例: import java.util.*; public class TestStatic { public static void main(String[]args...(2)静态不能引用非静态这一特性,是由于静态的会随着类的定义而被分配和装载入内存中这一关键点决定的;如果静态引用了非静态的,根本无法从内存中找到非静态的代码段,势必会出错,这种做法是Java虚拟机决不允许的

    1.4K10

    Java 的嵌套类(内部类和静态嵌套类)

    参考链接: Java嵌套静态类 嵌套类   Java允许在一个类定义另一个类,称为嵌套类 (Nested Classes),类似下面的形式   class OuterClass {     ...    ...class NestedClass {        ...    } } 复制代码  内部类与静态嵌套类    嵌套类有静态和非静态两种,其中静态的称为静态嵌套类(static nested classes...),非静态的称为内部类(Inner Classes)  一个嵌套类是包含它的外部类的一个成员,内部类能够访问外部类的其他成员,而静态嵌套类没有访问外部类的权限  作为外部类的成员,嵌套类能被声明为private...静态嵌套类   静态嵌套类与静态类里面的方法类似,一个静态嵌套类不能直接调用外部类里面的实例变量或者方法,它只能通过对象引用访问他们。  ...Java官方文档的解释:    Note: A static nested class interacts with the instance members of its outer class (and

    88320

    Java类文件结构

    类文件结构public class TestClass {private int m;public int inc() {return m + 1; }}1.魔数 每个Class文件的头四个字节被称为...Magic Number,用来判断一个文件是否是能被虚拟机接收的Class文件,下图是使用ImHex观察到的,后面也都是如此。...9.Code属性 可以看到javap最后放出了Code内容,这里包含的就是整个class文件的核心,你的方法内容被编译在这里。这里我的类只定义了一个方法,却有两个方法被编译了出来,这是为什么呢?...又印证了java会给每一个类隐式定义一个构造方法。 而我的方法明明没有参数,为什么又有Arg_size=1呢?...Java语言的潜规则:在任实例方法中,都可以通过this访问到方法所属的对象——哈哈哈哈,我猜大家平时在写代码的时候在方法内引用当前类的属性都不会显式的把this.给写出来,而是直接拿属性了。

    7800

    【小家java】静态类、静态方法、内部类、匿名内部类、非静态类的一些实践

    1、概述 如题,其实在实际业务开发中用得较少,但偶尔又会碰到,因此本文针对于此做一些说明 2、栗子 首先介绍静态类和非静态类(普通类) 内部类 先普及一个常识:一个文件里可以有多个类,但public...的类只能有一个且必须和文件名一样。...3、使用场景 内部类和静态内部类的区别 静态类 只能在内部类中定义静态类 静态内部类不依赖于外部类,即使外部类没有创建对象,静态类也可以new对象 静态类的方法可以是静态的方法也可以是非静态的方法,静态的方法可以在外层通过静态类调用...可以实现多重继承 可以避免修改接口而实现同一个类中***两种同名方法***的调用 java的设计旨在简单,所以初学者十分好入门并且上手工作,但作为一门火了这么多年的语言,肯定还是有些硬骨头的,而这些,...我们会发现java的设计者在设计内部类的时候用心良苦,学会使用内部类,是掌握java高级编程的一部分,它可以让你更优雅的设计你的程序结构。

    3.1K30

    Java 类机制(3)---- 类文件结构

    在这篇文章中我们来一起看一下 class 文件的结构,来进一步加深我们对虚拟机的类加载机制和类机制的理解。本文参考了 《深入理解 Java 虚拟机》一书。...解析 .class 文件 ​ 我们都知道一个 Java 类(.java)文件在被 Java 编译器(javac) 编译过后,如果语法没有错误,则会生成一个对应的 .class 文件,这个 .class...类型,对应的方法名和描述分别为 和 ()V,还原之后为 void (),这个方法本身在 Object 类中并没有定义,这是因为类在编译时编译器为这个类自动生成的一个方法,类中的一些非静态代码块和非静态变量赋值操作都会移至该方法中执行...,这也就是编译出这个 .class 文件的 Java 文件的文件名。 ​...好了,在这篇文章中我们通过一个例子来看了一下类文件格式,相信你对 Java 类机制有了一个更深的理解。如果博客中有什么不正确的地方,还请多多指点。如果觉得这篇文章对您有帮助,请不要吝啬您的赞。

    65120

    Java类文件的结构

    2.接口的访问信息 类索引、父类索引 和接口索引集合 存储类、父类、接口的 文件索引 字段表集合 1.字段作用域 2.是否static 3.可变性 4.并发可见性 5.可否被序列化 6.字段数据类型 7...字面量比较接近于Java语言层面的常量概念。...因为Java不支持多重继承,所以父类索引只有一个,除了java.lang.Object外,所有Java类都有父类,因此除了java.lang.Object,所有java类的父类索引都不为0。...InnerClasses 类文件 内部类列表 LineNumberTable Code属性 Java源码的行号和字节码指令的对应关系 LocalVariableTable Code属性 方法局部变量描述...SourceFile 类文件 记录源文件名称 SourceDebugExtension 类文件 JDK1.6新增,用于存储额外的调试信息。

    68630

    【Java 基础篇】Java文件类详解

    导言 Java提供了丰富的文件操作功能,其中java.io.File类是用于处理文件和目录的主要类之一。通过File类,我们可以创建、删除、重命名和检查文件或目录的存在等操作。...本文将详细介绍Java中的File类及其常见用法,并提供一些示例代码。 一、文件类概述 File类是Java中处理文件和目录的基础类之一。...delete(): 删除文件或目录。 二、创建文件 在Java中,我们可以使用File类来创建新的文件。...需要注意的是,File类在Java 7及更高版本中已过时,推荐使用java.nio.file包中的Path和Files类进行文件操作。但是,File类仍然可以在旧代码中使用。...希望本文对你理解和使用Java的文件类有所帮助!

    19020

    静态文件

    添加静态文件服务      静态文件通常位于 Web root(/wwwroot)文件夹下     为了能够启用静态文件服务,必须配置中间件,把静态中间件添加到管道内.静态文件中间件在...   也可以将静态文件放在web root外部,但是如果想要访问web root外部静态文件,必须添加一个中间件到管道内 public void Confiugre(IApplicationBuilder...我们就可以使用以上地址访问 web root外部静态文件 ?  允许直接浏览目录    目录浏览允许网站用户看到指定目录下的目录和文件列表。基于安全考虑,默认情况是禁用目录访问功能的。...app.UseFileServer()     上面代码启用了静态文件和默认文件,但不允许直接访问目录 app.UseFileServer(enableDirectoryBrowsing: true);...   上面代码启用了静态文件,默认文件和目录浏览功能 public void Configure(IApplicationBuilder app, IHostingEnvironment env) {

    68310

    静态类、静态方法、静态变量的区别

    引言 一直疑惑静态类、静态方法、静态变量的内存驻用情况。今天就写了个Demo来深入八一八他们的区别和注意点。...为了演示方便,方法名和变量名采取中文命名 先上结论 静态变量 只在类初始化时加载一次 静态方法和静态方法语法糖 实时加载里面的内容 只读属性 实时加载里面的内容 附有初始值的属性语法糖 只在类初始化时加载一次...请看代码 代码 先看测试Demo 1.非静态类 中静态方法 /// /// 非静态类 /// public class TestCommonService...ConfigHelper.TryGetOtherProject(ProjectsEnum.SurpriseGamePollApi, "ConfigId", "")}"; } } 2.静态类静态方法.../// /// 静态类 /// public static class TestStaticService {

    1.6K10

    【Java】Java中类的初始化顺序(静态方法,静态块,非静态块,最后有流程图)

    想要弄明白这个,我就得先了解一下类的生命周期了。我们通过主方法运行Java程序,而这个主方法中创建了i对象并且属于InitializeDemo 类,所以在main方法执行时会将我们的类进行初始化。...在我们的类第一次进行初始化的时候,我们类中的静态块和静态属性会被优先构建。之后才轮得到非静态块和非静态属性。...类的一个对象进行初始化,按照代码顺序从上往下先构建静态的属性、方法和静态块,之后在构建非静态块和非静态属性。...(类中的静态块和静态变量只会初始化一次,也就是类第一次被用到的时候) 1、静态变量k被初始化 private static int k = 1; 2、静态变量t1初始化 private static...如果你可以完整的走出以上的输出顺序,你就可以把t1和t2对象加上去了,不过不要被输出顺序所迷惑,就比如说,你可能会看到父类静态块和属性初始化完成后,初始化的不是子类的静态块和静态属性,而是父类的非静态块和非静态属性

    40410

    类中的静态非静态方法

    C#的类中可以包含两种方法:静态方法和非静态方法。   使用了static 修饰符的方法为静态方法,反之荝是非静态方法。   ...静态方琺是①種 特殊的成園方琺,它不属纡类的某一个具体的实唎,而是属于类本裑。葰以对静态方法不需要首先创建一个类哋实例,而是采用类名.静态方法的格式 。   ...类的方法笩码只有一份,它们的生命周期和类是一致哋.实例方法是通过对象名调用的,静态方法与类关联而不是与对象名关联.   5.哪么在程序狆什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据...对一个类无论创踺了多少 个实例,它的静态牸段永远都只有一个副本(副本我理解为只有一块内存   静态成员存在于内存,悱静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因潙静态成员存在于禸存...,所以悱靜态成员可以直接访问类中静态的成员.

    1.5K20

    java class类文件「建议收藏」

    根据 Java 虚拟机规范,类文件由单个 ClassFile 结构组成: ClassFile { u4 magic; //Class 文件的标志...Class文件字节码结构组织示意图 (之前在网上保存的,非常不错,原出处不明): 类文件字节码结构组织示意图 2.1 魔数 u4 magic; //Class 文件的标志 每个 Class 文件的头四个字节称为魔数...高版本的 Java 虚拟机可以执行低版本编译器生成的 Class 文件,但是低版本的 Java 虚拟机不能执行高版本编译器生成的 Class 文件。...interfaces[interfaces_count];//一个雷可以实现多个接口 类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类的全限定名,由于 Java 语言的单继承,所以父类索引只有一个...,除了 java.lang.Object 之外,所有的 java 类都有父类,因此除了 java.lang.Object 外,所有 Java 类的父类索引都不为 0。

    43730
    领券