java内部类即static修饰类的疑惑解决

SAP与泛微OA集成(半导体行业) 本项目通过SAP PO中间件集成SAP与泛微OA在半导体行业的应用,由于行业特殊性,广泛深入应用了RSA加密等特性 阅读详情

一、成员内部类

class A{
    class B{
    
    }
}

格式如上所示,B为A的成员内部类,A为B的外部类。主要有以下的一些特性:

1.成员内部类可以无条件访问外部类的属性和方法,

2.当外部类需要访问成员内部类的属性和方法时,则需要创建一个内部类对象进行访问,在其他类中创建方式为:A a = new A(); B b = a.new B();  如果是在类A中则只需 B b = new B();

3.内部类与外部类的属性或方法相同时:外部类的属性和方法在内部类中将被隐藏,这时如果要访问就需要this关键字:A.this.属性/方法。

4.可加四种访问修饰符

二、静态内部类

class E {
    static class F{
    
    }

}

格式如上所示,可以看到和全局内部类差一个static,这个static是什么呢?之前看过一句话总结的很到位:

static可以用来区分成员变量、方法是属于类本身还是属于类实例化后的对象。有static修饰的成员属于类本身,没有static修饰的成员属于类的实例。

静态内部类和静态方法类似,只能访问静态成员变量和方法,原因:外部类加载时只会加载静态域。

静态内部类可以声明普通成员变量和方法,成员内部类不能声明static成员变量和方法。

创建对象的方式:F f = new E.F(); 

当外部类需要使用内部类,且内部类无需外部类资源,并且内部类可以单独创建时使用。

三、局部内部类

class C{
    public void hello(){
        class D{
              
        }
    }

}

格式如上图所示,局部内部类存在于方法之中,因此,其访问权限受限,仅限于方法或作用域内。

类似于局部变量,前面不能使用 访问修饰符和static修饰符。

四、匿名内部类

定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,当某个局部类你只需要用一次,就可以使用匿名内部类。

匿名内部类主要分为实现接口的和继承父类的两种,代码实例此时不方便列出,详细的内容可以参考匿名内部类详解。

 

数据库常见面试题(附答案) 1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前,其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的 2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看... 阅读详情

相关推荐

Oracle数据库的内存管理优化技巧

Oracle数据库作为企业级数据库管理系统,广泛应用于各种业务场景。内存管理是Oracle数据库性能优化的关键环节,合理的内存管理可以显著提高数据库的响应速度和吞吐量。本文的目的是深入探讨Oracle数据库内存管理的优化技巧,涵盖了系统全局区(SGA)和程序全局区(PGA)的管理、内存分配算法、内存参数调整等方面。通过详细的讲解和实际案例分析,帮助读者掌握优化Oracle数据库内存使用的方法,提高数据库的性能和稳定性。

2502_91592937的博客 997

JAVA 类与修饰符

/* 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: 权限修饰符:默认修饰符,public 状态修饰符:final 抽象修饰符:abstract 用的最多的就是:public 成员变量: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 用的最多的就是:private .

DonnyCoy 661

802.1AS时间同步机制深度解析:从Sync报文到多域冗余设计

本文深度解析了802.1AS时间同步机制,从Sync与Follow_Up报文的核心交互原理入手,详细阐述了其如何通过精确的时钟频率比测量、链路延迟计算和驻留时间补偿来实现微秒乃至纳秒级同步。文章进一步探讨了802.1AS-2020版本引入的多时钟域冗余设计,为构建高可靠的车载TSN网络提供了关键见解和实战配置指南。

pytorch8learner的博客 464

java中使用static修饰词应注意的问题

java中的static修饰词一直是个貌似很简单但是很容易出错的地方,今天特来总结一下,有什么不对的地方,还望指正     static修饰的变量和方法称为类成员,何为类成员,就是可以直接通过类名去访问的(一般的方法和变量都要用过类的对象去访问的);它们从程序开始到程序结束一直都存在,跟C中的全局变量有点像(java中没有全局变量这一说的),一改全改;static成员是在类被加载时首

u010980545的专栏 4339

ElaticSearchUtil工具类封装

package com.xxx.util; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.ad

会飞的狼 6295

微信支付开发之平台给用户转账到零钱的功能

请求消息中应包含商家批次单号、转账名称、appid、转账总金额、转账总笔数、转账openid、收款用户姓名等信息。批次已受理成功,若发起批量转账的30分钟后,转账批次单仍处于该状态,可能原因是商户账户余额不足等。【转账场景ID】 该批次转账使用的转账场景,如不填写则使用商家的默认场景,如无默认场景可为空,可前往“商家转账到零钱-前往功能”中申请。【转账总笔数】 一个转账批次单最多发起一千笔转账。【商家批次单号】 商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一。

程序员weixin_sodomany的博客 3455

【关于为什么普通内部类中不能定义static修饰的方法】

1. 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中2. 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问3. JDK7及以前,HotSpot(Java虚拟机)中存储在方法区,JDK8及之后,类变量存储在Java堆中4. 类变量存储在方法区当中5. 生命周期伴随类的一生(即:随类的加载而创建,随类的卸载而销毁)

qq_56776909的博客 1846

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1997

Java笔试面试-常见翻车总结

1.去掉 main 方法的 static 修饰符,程序会怎样? A:程序无法编译 B:程序正常编译,正常运行 C:程序正常编译,正常运行一下马上退出 D:程序正常编译,运行时报错 答:D 题目解析:运行时异常如下: 错误: main 方法不是类 xxx 中的 static, 请将 main 方法定义为: public static void main(String[] args) 2.以下程序运...

HenryLei的博客 9万+

Android So加载机制分析----基于Android14源码

本文深入分析Android 14系统中SO(共享库)的两种加载机制:System.loadLibrary()和System.load()。前者通过ClassLoader查找标准路径加载,后者直接加载指定路径的SO文件。文档详细追踪了从Java层到动态链接器的完整加载链路,包括ClassLoader路径查找、JNI桥接、ART虚拟机处理以及底层linker的符号解析和重定位过程。同时还分析了Namespace隔离、JNI_OnLoad机制等核心内容,为开发者提供全面的SO加载技术解析和问题排查指南。

保持专注,保持热爱 350

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2134

Java编译时常见错误

int a;int a;int a = 10;错误原因:变量在同一个域当中不能重复声明、不能重名。解决办法:变量只需声明一次即可,声明其他类型变量时不要与已声明的变量重名。

LuerFly的博客! 1万+

【深度学习新浪潮】李飞飞团队VAGEN框架深度解析:让VLM智能体学会“三思而后行“

VAGEN框架的真正价值,不仅在于性能指标的突破,更在于重新定义了VLM智能体的发展方向——人工智能的进步不应只追求"做得对",更要实现"想得清"。李飞飞团队通过强制显式思考、动态表示适配和精细化奖励三大创新,让智能体第一次具备了可解释的世界建模能力。正如人类通过"观察-预测-行动"认识世界,VAGEN为AI注入的这种思考范式,或许正是通往通用人工智能的关键一步。对于开发者而言,开源的VAGEN框架不仅提供了强大的工具,更揭示了一个重要理念:让AI学会思考,比让它学会执行更重要。

专注:太空算力、AI infra、异构调度、大模型成本工程 281

static修饰属性、方法、类的区别

一、static修饰属性 1.属性随着类的加载而加载,是类变量,其加载早于对象,不需要new即可加载 2.类变量所在的类的所有对象共用这一个属性,存放在静态域中 二、static修饰方法 1.方法随着类的加载而加载随着类的加载而加载,是类方法,其加载早于对象,不需要new 2类方法所在的类的所有对象共用这一个方法. 3类方法内部只可调用静态的属性和静态的方法,而不能调用非静态的属性和方法 反之,非...

jump_sayyeah的博客 5781

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java中static修饰类的问题

Java中static修饰类的问题 众所周知,Java中static关键字可以修饰方法与变量:   修饰变量的时候,这个变量属于类变量,可以直接通过类名.变量名来引用。   修饰方法的时候可以直接通过类名.方法名来访问。 但大家可能不知道static关键字还可以修饰类,普通类是不允许声明为静态的,只有内部类才可以。 被static修饰的内部类可以直接作为一个普通类来使用,

龙腾四海365的专栏 4967

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

你知道Java中final和static修饰的变量是在什么时候赋值的吗?

深入底层了解类变量

CoderW 3666

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

static修饰类 及final与static用法总结

static与final总结与 static修饰类

Hackill 曰:敏而好学 不耻下问 4837

Java学习笔记——内部类和static修饰符

Java学习笔记——内部类 内部类 内部类(inner class)是定义在另一个类中的类。 内部类的特点: 内部类是一种编译时的语法,编译后生成的两个类是独立的两个类。(对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两个类)。 可以自由访问外部类的任何成员(包括私有成员),但外部类不能直接访问内部类的...

weixin_43827144的博客 889

java中static修饰类_static为什么可以修饰类?

展开全部Java里面static一般用来修饰成员变量或函数e68a84e8a2ad3231313335323631343130323136353331333365646263。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类(见如下代码)public class OuterClas...

weixin_36196497的博客 2423

java static 修饰类吗_Java中static修饰类的问题

Java中static修饰类的问题众所周知,Java中static关键字可以修饰方法与变量:修饰变量的时候,这个变量属于类变量,可以直接通过类名.变量名来引用。修饰方法的时候可以直接通过类名.方法名来访问。但大家可能不知道static关键字还可以修饰类,普通类是不允许声明为静态的,只有内部类才可以。被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类(见如下代码)packa...

weixin_30725829的博客 2455

static修饰

在初始化阶段,static变量被赋予程序员指定的值,static块被执行。某些代码异味与static滥用相关,如:过大的类(God Class)常包含大量static方法,特征 envy(方法过于频繁访问其他类的static成员)等。常见的static反模式包括:将所有方法都设为static的"万能工具类",过度使用static变量作为全局状态,在static方法中创建大量对象等。检查是否有不必要的static成员,static变量是否考虑了线程安全,static方法是否过于庞大复杂等。

Donald_brian的博客 897

Java. Static 修饰类_static 表示静态,它可以修饰属性,方法和代码块。

(1)static 表示静态,它可以修饰属性,方法和代码块。1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有。这个属性就是全类公有。(共有的类变量与对象无关,只和类有关)。2.static修饰方法(静态方法),会使这个方法成为整个类所公有的方法,可以用类名.方法名访问。3.static修饰初始代码块,这时这个初始代码块就...

weixin_39620984的博客 3096

final、static、修饰符、内部类、参数传递

static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个的类的某个对象。static修饰的成员可以被多个对象共享。static修饰的成员属于类,但是会影响每一个对象。被static修饰的成员叫做类成员,不是对象的成员。当static成员变量时,该变量称之为类变量。该类的每个对象都能共享同一个类变量的值。任何对象都可以更改类变量的值。也可以在不创建类的对象的情况下对类变量进行操作。类变量: 就是使用static修饰的成员变量。static 数据类型 变量名;

2301_77165049的博客 1037

论Java中,修饰符中static、final以及abstract的使用。

论Java中,修饰符中static、final以及abstract的使用。

chengxinzhongnuo的博客 1471

Java中,final与static共同修饰的有什么特点

static final在Java中用于定义全局常量和不可变方法。修饰变量时,表示类级别的不可变常量(如PI=3.14),必须在声明或静态块中初始化,使用全大写命名;修饰方法时,表示类调用的不可重写方法(如工具类方法);修饰类时仅适用于静态内部类,使其不可继承。这种组合通过编译期优化提升性能,常用于数学常量、系统配置等场景,确保代码的安全性和一致性。与单独修饰相比,static final同时具备共享性和不可变性。

m0_74863653的博客 622

关于Java内部类字段和方法不能使用static修饰的原因

昨天的文章中,遗留了一个问题就是,为什么Java内部类字段和方法不能使用static修饰。先下下面一段代码:class OuterClass { public int age=20; class InnerClass { static int i = 100; // compile error static void f() { } // compile error } } ...

三劫散仙 9838
上一篇: springboot项目导入idea中环境配置相关问题解决
下一篇: springboot中service的注入方式
A__cup__of__Java
博客等级 码龄9年 19粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值