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

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

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

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

详解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

83320

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

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

2.3K30

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

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

61920

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新增,用于存储额外的调试信息。

64530

Java 基础篇】Java文件详解

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

13520

静态文件

添加静态文件服务      静态文件通常位于 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) {

65410

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

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

1.5K10

JavaJava的初始化顺序(静态方法,静态块,非静态块,最后有流程图)

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

11410

中的静态静态方法

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

1.4K20

静态的原罪

什么是静态 所谓静态指的是无需实例化成对象,直接通过静态方式调用的。代码如下: 此时所扮演的角色更像是命名空间,这或许是很多人喜欢使用静态最直接的原因。...静态的问题 本质上讲,静态是面向过程的,因为通常它只是机械的把原本面向过程的代码集合到一起,虽然结果是以的方式存在,但此时的更像是一件皇帝的新衣,所以可以说静态实际上是披着面向对象的皮儿,干着面向过程的事儿...补充说明,利用动态语言的特性,其实可以简单的通过require一个不同的定义文件来实现Mock,但这样做同样有弊端,设想我们在脚本里需要多次变换实现方式,但实际上我们只有一次require的机会,否则就会出现重复定义的错误...… 当然,静态有好的一面,比如说很适合实现一些无状态的工具,但多数时候,我的主观倾向很明确,多用对象,少用静态,避免系统过早的固化。顺便说一句,希望别有人告诉我静态类比对象快之类的说教,谢谢。

31820

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。

41230
领券