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

Java中静态变量的适用场景

阅读更多

    Java类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,有些时候可以认为是全局变量。因此在某些时候为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处:
/**
 * @author Administrator
 */
public enum FaxTemplate {
   酒店通知单, 机票催票, 度假通知;

 

 

 

 Map<String, Position> variablePositions = new HashMap<String, Position>();
 Map<String, CollectionPosition> collectionPositions = new HashMap<String, CollectionPosition>();

 String templatePath;
 String resultPath;
 String name;
 String file;

 

 

 public FaxTemplate setCollection(String name, String rowRange) {
  

collectionPositions.put(name, new CollectionPosition(rowRange));
  return this;
 }

 

 public FaxTemplate setCollectionColumn(String collectionName,
   String cellName, String strVal) {
  collectionPositions.get(collectionName).set(cellName,
    Integer.parseInt(strVal));
  return this;
 }

 

public static class CollectionPosition {
  public RowRange rowRange;
  public Map<String, Integer> cells = new HashMap<String, Integer>();

  public CollectionPosition(String rowRange) {
   this.rowRange = new RowRange(rowRange);
  }

  public CollectionPosition set(String cellName, Integer val) {
   cells.put(cellName, val);
   return this;
  }

  public Integer get(String cellName) {
   return cells.get(cellName);
  }
 }

 public static class RowRange {
  public int start;
  public int end;

  public RowRange(String strVal) {
   String[] strs = strVal.split(",");
   this.start = Integer.parseInt(strs[0]);
   this.end = Integer.parseInt(strs[1]);
  }
 }

 public static class Position {
  public int row;
  public int col;

  public Position(int row, int col) {
   this.row = row;
   this.col = col;
  }

  @Override
  public boolean equals(Object obj) {
   if (obj == null) {
    return false;
   }
   if (getClass() != obj.getClass()) {
    return false;
   }
   final Position other = (Position) obj;
   if (this.row != other.row) {
    return false;
   }
   if (this.col != other.col) {
    return false;
   }
   return true;
  }

  @Override
  public int hashCode() {
   int hash = 7;
   return hash;
  }

 }
}

分享到:
评论

相关推荐

    Java零基础-static关键字.md

    在阅读过程中,尝试编写简单的Java程序,使用static关键字定义和调用静态成员变量和静态方法。 建议通过阅读相关的Java教材或搜索资料,进一步扩展学习与static关键字相关的高级主题,如静态代码块、静态内部类和...

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 ...静态变量的特点类变量 局部变量

    一个用Java语言编写的龟兔赛跑的程序

    这个程序是一个用Java语言编写的龟兔赛跑的程序,它可以模拟一个简单的竞赛...它还使用了一个随机数生成器,用于随机生成乌龟和兔子的速度,并使用了一个静态变量和一个静态方法,用于记录比赛是否结束和比赛的胜利者。

    Java常见面试问题整理.docx

    面试问题整理:JVMJRE、JDK、JVM,JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。...这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。

    AIC的Java课程1-6章

    第5 版 清华大学出版社  “SCJP学习指南” 人民邮电出版社  “Java 编程思想” 第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 ...

    小朋友你是否对java中的static满脸问号

    访问静态变量和方法的方式 5.静态代码块和其他代码块的执行顺序 6.静态内部类 7.静态导包 1.static的作用 (1)static是一个能创建独立于具体对象的域变量或者方法 即使没有创建对象也能使用的属性和方法(这一点很...

    突破程序员基本功的16课.part2

    4.4.4 尽量少用静态变量 4.4.5 避免在经常调用的方法、循环中创建Java对象 4.4.6 缓存经常使用的对象 4.4.7 尽量不要使用finalize方法 4.4.8 考虑使用SoftReference 4.5 小结 第5课 表达式中的陷阱 5.1 关于...

    activiti工作流代码案例

    这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。 ACT_ID_*: 'ID'表示...

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    day020-继承加强和设计模式代码和笔记.rar

    static是为了在静态方法中可以返回当前类中的对象 final:可加可不加,加了可以保证不可修改,且提供获取效率 3. 提供一个public修饰的方法getInstance给外部返回一个对象 4. 单例模式...

    资深互联网大佬的5000字吐血总结——Java面向对象三大修饰符之abstract、static、final

    抽象类的应用场景:【理解】二、static (静态的)1. static可以修饰属性2. static 可以修饰成员方法3. static 可以修饰初始化代码块扩充内容三、final(最终的,最后的)1.final可以修饰变量2.final可以修饰方法3....

    通过可视化和事件结构推断来调试并发程序

    由于并发程序固有的不确定性,传统的调试技术是不够的,尤其是在事后调试的场景中。 通过静态分析来探查缺陷可以避免高昂的故障重现成本。 在本文中,我们提出了一种针对并发错误的新颖调试方法。 我们利用错误报告...

    java-接口的使用,多态的使用,instanceof关键字,笔记本usb接口案例

    生活中的接口 接口的定义基本格式 接口就是多个类的公共规范. 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法 接口的使用场景是什么? 我们创建一个接口.然后通过实现此接口来规范多个类 如何定义一个接口...

    Spring-Reference_zh_CN(Spring中文参考手册)

    1.2. 使用场景 2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@...

    Beetl模板引擎-其他

    适用于各种应用场景,从对响应速度有很高要求的大网站到功能繁多的CMS管理系统都适合。Beetl本身还具有很多独特功能来完成模板编写和维护,这是其他模板引擎所不具有的。2、非常简单:类似Javascript语法和习俗,...

    大数据培训课程安排.pdf

    主要技术包括:⼤数据前篇(什么是⼤数据,应⽤场景,如何学习⼤数据库,虚拟机概念和安装等)、Linux常见命令(⽂件管理、系 统管理、磁盘管理)、Linux Shell编程(SHELL变量、循环控制、应⽤)、Hadoop⼊门...

    C#微软培训资料

    11.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三章 事件和索引指示器 .148 ...

    Map-Cutter-JavaFX:该程序应通过创建表示每个区域的SVGPath(可缩放矢量图形)来帮助将给定的图像(地图)切成可视区域。

    Map-Cutter-JavaFX 该程序应通过创建表示每个区域的SVGPath... 此类将创建具有特定值的变量以控制区域的位置平移(X&Y),因此它们将完全可调整大小,并且应符合场景的大小更改。 保留所有权利-Yahya Almardeny。

Global site tag (gtag.js) - Google Analytics