易截截图软件、单文件、免安装、纯绿色、仅160KB

java中final的用法

许多程序设计语言都有自己的办法告诉编译器某个数据是“常数”。常数主要应用于下述两个方面:
(1) 编译期常数,它永远不会改变
(2) 在运行期初始化的一个值,我们不希望它发生变化

于编译期的常数,编译器(程序)可将常数值“封装”到需要的计算过程里。也就是说,计算可在编译期间提前执行,从而节省运行时的一些开销。在Java中,
这些形式的常数必须属于基本数据类型(Primitives),而且要用final关键字进行表达。在对这样的一个常数进行定义的时候,必须给出一个值。
无论static还是final字段,都只能存储一个数据,而且不得改变。

随同对象句柄使用final,而不是基本数据类型,它的含义就稍微让人有点儿迷糊了。对于基本数据类型,final会将值变成一个常数;但对于对象句柄,
final会将句柄变成一个常数。进行声明时,必须将句柄初始化到一个具体的对象。而且永远不能将句柄变成指向另一个对象。然而,对象本身是可以修改的。
Java对此未提供任何手段,可将一个对象直接变成一个常数(但是,我们可自己编写一个类,使其中的对象具有“常数”效果)。这一限制也适用于数组,它也
属于对象。
下面是演示final字段用法的一个例子:
//: FinalData.java
// The effect of final on fields

class Value {
  int i = 1;
}

public class FinalData {
  // Can be compile-time constants
  final int i1 = 9;
  static final int I2 = 99;
  // Typical public constant:
  public static final int I3 = 39;
  // Cannot be compile-time constants:
  final int i4 = (int)(Math.random()*20);
  static final int i5 = (int)(Math.random()*20);
  
  Value v1 = new Value();
  final Value v2 = new Value();
  static final Value v3 = new Value();
  //! final Value v4; // Pre-Java 1.1 Error:
                      // no initializer
  // Arrays:
  final int[] a = { 1, 2, 3, 4, 5, 6 };

  public void print(String id) {
   &n


相关文档:

解析Java类和对象的初始化过程

类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......

Java获取Oracle存储过程中执行查询返回的结果集

通过JAVA调用ORACLE的存储过程,在ORACLE的存储过程内部做了一个查询在JAVA中获取该查询结果,这个和SYBASE、SQLSERVER的获取不一样,等我的下一篇文章我会介绍如何获取SYBASE、SQLSERVER在存储过程中执行了查询后如何获取其结果及存储过程的编写。
在Oracle中需要返回查询结果集,必须将其以游标的形式返回,但游标又不是 ......

多路归并排序【JAVA实现】

对远远大于内存的数据进行外排序,在多路比较的时候用败者树效率会更高。
package my.sort;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.F ......

Java应用技巧:对于 Cookie 的操作详解


1.设置Cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);
设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
cookie.setPath("/test/test2");
设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request. ......

从虚拟机视角谈Java应用性能优化

Java
平台已无处不在,Java EE、Java SE、Java ME 和 Java Card,Java
的发展为无数程序员提供了工作机会,都是“Java”,然而除了基本的 Java
语法大都一致外,程序员必须基于不同的平台有不同的考虑,学习不同平台的特点:
不同平台的环境
Java EE 所运行的硬件服务器、操作系统,Java SE 所在 PC 机 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号