`
dr2tr
  • 浏览: 144884 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Interface与常量存放

阅读更多

首先,Interface常用来存放常量。与定义在类中的常量区别:

1、常量定义在类中,相对其他类来说是可见可用的。
2、常量定义在接口中,其他类来要用时,该类要实现接口,方可使用。

另外,在Interface中定义常量也有不足之处。主要是由于Interface中的fields默认为static final, 故通常实现Interface的类(假设为C)在编译的时候,已经把Interface中的值编译了进去。所以之后及时Interface中常量值改变了,除非把实现Interface的类(C)也重新编译,否则是不能使用改变的值的。

这种情况的解决方法是将常量放入class中声明,使用class方法来得到此常量的值。为了保持对此常量引用的简单性,我们可以使用一个静态方法。如:

//file A.java
public class A{
  private static final String name = "bright";
  public static String getName(){
    return name;
  }
}

//file B.java
public class B{
  public static void main(String[] args){
    System.out.println("Class A's name = " + A.getName());
  }
}

分享到:
评论

相关推荐

    网进科技JAVA编码规范

    - `com.netmarch.interface`:存放接口类。 - `com.netmarch.infaimpl`或`com.netmarch.dao`:存放接口实现类。 - `com.netmarch.abst`:存放抽象类。 - `com.netmarch.hibernate`:存放Hibernate相关类。 - `...

    Java当中的内存分配.pdf

    字符串的不可变性保证了字符串常量池可以安全地存放字符串对象的引用。例如:String str1 = "abc",str1指向了字符串常量池中的"abc";如果再次出现String str2 = "abc"时,str2也会指向"abc"。 五、数组和数组对象...

    CS-Server-Interface-开源

    3. **Windows操作系统兼容性**:CS-Server-Interface特别针对Windows环境进行了优化,这意味着它能够无缝地与Windows服务器集成,利用该操作系统的优势,如易用性和广泛的软件支持。 4. **开源软件**:作为开源软件...

    C++JAVA内存分配.pdf

    4. **本地方法栈(Native Method Stack)**:与C++的栈类似,但主要用于支持JNI(Java Native Interface)调用的本地方法。 5. **运行时常量池(Runtime Constant Pool)**:这是方法区的一部分,包含了类和接口的...

    Ptgm-InterfaceJava:接口文件的 Netbeans 项目

    1. **接口(Interface)**:在Java中,接口是一种完全抽象的类型,只包含常量声明和抽象方法。它们用于定义类需要遵循的合同,确保多态性和实现解耦。 2. **Netbeans IDE**:这是一个开源的IDE,支持多种编程语言,...

    2023JVM面试题及答案-共50道.docx

    - 运行时常量池(Runtime Constant Pool)存放在方法区(在JDK 8及以后版本,替换为元空间Metaspace),存储类加载后的信息,如类中的`constant_pool`内容。 - 类文件常量池(Constant Pool)是JVM规范中的概念,...

    JVM大厂必备面试题八股文

    2. **方法区(在JDK 8以后称为元空间)**:存放已加载的类信息、常量、静态变量、即时编译后的代码数据等。在JDK 1.7及以前,方法区被称为永久代,但在JDK 1.8中被元空间替代,元空间使用本地内存,避免了内存溢出...

    易语言API对话框源码.zip

    在易语言中,API(Application Programming Interface)对话框是与操作系统交互的重要手段,允许程序员调用操作系统内建的功能,如消息提示、文件选择等。 在"易语言API对话框源码.zip"这个压缩包中,包含了使用...

    深入理解Java 虚拟机内存模型.rar

    - 与JVM栈类似,但为Java Native Interface(JNI)调用的本地方法服务。 4. **Java堆(Heap)** - 堆是所有线程共享的一块区域,主要用于对象实例的分配。新生代、老年代、Survivor空间等都是堆的组成部分,通过...

    dotNet命名规范和编码实践.rar

    9. 字符串常量(String Constant):使用`Constants`类来存放字符串常量,命名方式与常量相同。 编码实践方面,有以下几点需要注意: 1. 注释:保持注释清晰简洁,使用XML注释为API提供文档。例如,`/// <summary>...

    JVM底层及深度调优面试宝典.pdf

    - NativeInterface(本地接口):负责与本地库交互,使Java程序能够和其他语言写的库进行交互。 2. Java程序运行机制: - 使用IDE编写Java源代码(.java文件)。 - 使用javac编译器将源代码编译成.class字节码文件...

    java秋招笔试面试知识点总结

    接口是用interface定义的,它只包含抽象方法和常量。一个类可以实现多个接口,但是只能继承一个抽象类。 9. 多态的实现:多态是面向对象编程的一个重要特性,它允许同一操作作用于不同的对象,可以有不同的解释和...

    JAVA语言程序设计-第八章 接口和包

    2. **接口的语法**:接口定义使用`interface`关键字,常量默认为`public static final`,方法默认为`public abstract`。例如: ```java interface MyInterface { int MY_CONSTANT = 10; void myMethod(); } ``...

    Go语言学习笔记(自己整理的,超级全面)

    `src`存放源代码,`bin`存放编译后的可执行文件,而`pkg`则存放编译后的包对象。 Go语言中的`strconv`包提供了字符串与各种基本类型之间的转换功能,如`strconv.Itoa()`将整数转换为字符串,`strconv.ParseInt()`则...

    远泓科技笔试题(obj_c)

    这是Objective-C中定义的事件处理方法,用于响应用户操作,`xcode`中通过Interface Builder进行事件绑定。 13. iOS开发经验与兴趣: 尽管没有实际的iOS开发经验,但表达了对iOS开发的热情,希望加入iOS开发团队。...

    asm4.tar.gz_arch asm

    10. dmi.h - DMI是戴尔管理接口(Dell Management Interface)的缩写,但在这个上下文中,它更可能指的是桌面管理接口(Desktop Management Interface),用于收集和处理硬件信息,可能包含与硬件识别和管理相关的...

    vc讲义.doc

    3. **常量与变量的区别**: - `const char *p1;` 和 `char *const p2;` 之间的区别在于前者是指向常量字符的指针,而后者是指向字符的常量指针。也就是说,`p1` 所指向的内容不可更改,但 `p1` 本身可以指向其他...

    开源项目-zxh0-jvm.go.zip

    - Go语言可能通过JNI(Java Native Interface)与Java代码交互,允许在Go中调用Java方法,反之亦然。 3. **JVM的关键技术**: - 类加载机制:包括加载、验证、准备、解析和初始化五个阶段。 - 内存管理:涉及...

    jvm的内存结构图的ppt模型分析.zip

    永久代或元空间主要存放类的元数据,如类信息、方法信息等。 2. **栈内存**:每个线程都有一个独立的程序计数器、虚拟机栈和本地方法栈。程序计数器记录着线程当前执行的指令地址;虚拟机栈是方法执行的内存模型,...

    运行时数据区域

    这些方法通常由C/C++编写,并通过JNI(Java Native Interface)与Java程序交互。 #### 五、Java堆 **定义**:Java堆是虚拟机管理的最大内存区域,是所有线程共享的内存区域。它的主要目标是存放对象实例和数组,...

Global site tag (gtag.js) - Google Analytics