Day: May 31, 2017

JAVA: 理解Java中的类初始化

在运行 Java 代码时,很多时候需要弄清楚程序执行的流程,而面向对象的 Java 程序并非像主要为面向过程而设计的 C 语言一样去顺序执行(简单按照代码的顺序),这使得对于类文件的加载以及执行流程的理解非常重要。本文简单介绍了 Java 类的初始化部分具体过程,包括成员变量、静态代码块、构造函数等的初始化时机及执行流程。 初始化时机 根据 javase 8 的文档说明[1],一个类(本文暂不考虑接口)T 将在下列情况第一次出现前立即被初始化: T 的一个实例被创建[2]; T 的一个静态方法被调用; T 声明的一个静态变量被赋值; T 声明的一个静态变量被使用并且这个变量不是常量[3]; 暂不考虑这种情况(涉及到顶层类,断言,内部类等)… Read More

JAVA:获得平台相关的行分隔符、路径分隔符,兼容各平台

【问题】 不同系统平台下的行分隔符、路径分隔符等常常不同。如 行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r 路径分隔符在windows下是 \ ,在LInux下是 / ——来自网络资料 如何在Java程序获取当前平台的分隔符,以及其他系统相关的状态呢? import java.util.Properties; public class SeparatorUtils { /* system properties to get separators */ static final Properties PROPERTIES = new Properties(System.getProperties()); /** * get… Read More