一、System类
- System是final类
- 构造函数是私有的,不能被实例化。
- 类中的方法和属性都是静态的。
- 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
- 对外部定义的属性和环境变量的访问;
- 加载文件和库的方法;
- 还有快速复制数组的一部分的实用方法。
二、常用属性和方法
public final class System { /* First thing---register the natives */ private static native void registerNatives(); static { registerNatives(); } /** Don't let anyone instantiate this class */ private System() { } //字段******************************************************** //“标准”输入流。此流已打开并准备提供输入数据。默认设备是键盘 public final static InputStream in = nullInputStream(); //“标准”输出流。此流已打开并准备接受输出数据。默认设备是dos窗口 public final static PrintStream out = nullPrintStream(); //“标准”错误输出流。此流已打开并准备接受输出数据。 public final static PrintStream err = nullPrintStream(); //方法************************************************************ //终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止 public static void exit(int status){} //运行垃圾回收器 public static void gc(){} //返回一个不能修改的当前系统环境的字符串映射视图 public static Map<String,String> getenv(){} //获取指定的环境变量值。环境变量是一个取决于系统的外部指定的值,操作系统环境,比如环境变量path等 public static String getenv(String name){} //确定当前的系统属性。jvm环境 public static Properties getProperties(){} //获取指定键指示的系统属性。 public static String getProperty(String key){} //将系统属性设置为 Properties 参数。 public static void setProperties(Properties props){} //设置指定键指示的系统属性。 public static String setProperty(String key, String value){} //重新分配“标准”错误输出流。 public static void setErr(PrintStream err){} //重新分配“标准”输入流 public static void setIn(InputStream in){} //重新分配“标准”输出流。 public static void setOut(PrintStream out){} }
三、java.util.Properties类
- Properties 类表示了一个持久的属性集。
- 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
- Properties 可保存在流中或从流中加载。
- 属性列表中每个键及其对应值都是一个字符串。
- 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。
- 但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。
- 相反,应该使用 setProperty 方法。
- 如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store,list,propertyNames方法,则该调用将失败。
public class Properties extends Hashtable<Object,Object> { //字段**************************************** //一个属性列表,包含属性列表中所有未找到值的键的默认值 protected Properties defaults; //构造方法**************************************** //创建一个无默认值的空属性列表。 public Properties(){} //创建一个带有指定默认值的空属性列表。 public Properties(Properties defaults){} //常用方法**************************************** //用指定的键在此属性列表中搜索属性,如果未找到属性,则此方法返回 null。 public String getProperty(String key){} //用指定的键在属性列表中搜索属性,如果未找到属性,则此方法返回默认值变量 public String getProperty(String key, String defaultValue){} //将属性列表输出到指定的输出流。 public void list(PrintStream out){} public void list(PrintWriter out){} /** *从输入流中读取属性列表(键和元素对)。 *输入流按 load(Reader) 中所指定的、简单的面向行的格式, *并假定使用 ISO 8859-1 字符编码;所以汉字会出现乱码 */ public void load(InputStream inStream) throws IOException{} public void load(Reader reader) throws IOException{} //将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。 public void loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException{} //返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。 public Enumeration<?> propertyNames(){} //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果 public Object setProperty(String key, String value){} //以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流 public void store(OutputStream out, String comments) throws IOException{} //以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符 public void store(Writer writer, String comments) throws IOException{} //发出一个表示此表中包含的所有属性的 XML 文档。comment是注释 public void storeToXML(OutputStream os, String comment) throws IOException{} //使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档 public void storeToXML(OutputStream os, String comment, String encoding) throws IOException{} /** *返回此属性列表中的键集, *其中该键及其对应值是字符串, *如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。 *其键或值不是 String 类型的属性被忽略。 */ public Set<String> stringPropertyNames(){} //其他方法继承自HashTable和Object }
相关推荐
maven-resources-production java.lang.NegativeArraySizeException java.lang.NegativeArraySizeException 问题解决
2. 手动回收垃圾:可以使用 `System.gc()` 方法来手动回收垃圾。 3. 及时释放资源:及时释放内存、数据库连接等资源,以避免内存泄露。 其他解决方法 1. 使用 Java 提供的垃圾回收机制:Java 提供了多种垃圾回收...
2. 使用`java.lang.ClassLoader.loadLibrary()`代替`System.loadLibrary()`,这样可以提供更精确的库文件路径。 3. 检查是否有其他依赖库冲突,有时多个库可能使用相同的名字,导致加载混乱。 最后,博客链接...
在Java编程中,`java.lang.NumberFormatException`是一个常见的运行时异常,它通常发生在尝试将一个字符串转换为数值类型(如int、long、float或double)时,但该字符串无法被解析为有效的数值。"For input string: ...
1. 避免无谓的System.gc()调用,让JVM自行决定最佳的垃圾回收时机。 2. 调整堆大小,确保有足够的空间容纳程序运行所需的对象。 3. 使用对象池来复用对象,减少新对象的创建。 4. 使用合适的对象类型,避免创建不必...
`java.lang`包中最基本的类是`Object`,它是所有类层次结构的根,而`Class`类的实例则代表运行时的类。 `java.lang`包包括以下关键类: 1. **Boolean**: 表示布尔值`true`和`false`。 2. **Long, Short, Byte, ...
System.out.println("result is:" + result); LIST_A.add("haha"); return sps; } public static StaticParamsSingle getInstance() { return sps; } private static int getA() { System.out.println(...
在`java.lang.System`类中,有如`System.out`、`System.in`和`System.err`这样的全局变量,它们分别代表了标准输出、标准输入和标准错误流。在常规的测试环境中,这些流的输出很难捕获和控制。然而,使用`system-...
Java中的`java.lang.System`类是Java核心库中不可或缺的一部分,它是系统级操作的主要入口点。这个类提供了很多静态字段和方法,用于处理系统级别的任务,如输入输出流管理、系统属性获取、时间戳获取以及资源加载等...
system-rules, 用于测试使用 java.lang.System的代码的JUnit规则的Collection 系统规则 系统规则是用于测试使用 java.lang.System的代码的JUnit规则的Collection 。安装系统规则可以从 Maven 中心使用。<dependency>...
Java语言的核心库之一就是`java.lang`包,它包含了Java程序设计中最基础的类和接口,这些类和接口是每个Java应用程序必不可少的。由于`java.lang`包在编译时自动导入,因此程序员无需显式引入。本章将详细探讨这个...
在Android开发过程中,有时会遇到一个常见的运行时异常——`java.lang.NoClassDefFoundError`。这个错误通常意味着在编译期间能够找到类的定义,但在运行时却无法加载该类。本文将深入探讨这个问题,特别是在Android...
java.lang包还包含了一些与安全、线程和内存管理相关的类,如SecurityManager用于安全管理,Thread和ThreadGroup是线程相关的类,ClassLoader负责加载类,ThreadLocal为每个线程提供独立的变量副本,而Runtime类提供...
3. **System类**:`System`类提供了一些与系统环境相关的属性和方法,例如`System.out.println()`用于输出信息到标准输出流,`System.exit()`用来终止当前Java虚拟机。 4. **Math类**:包含了一些数学运算常量和...
08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system.PathClassLoader[/data/app/XXXX.apk] 我想大家经常因为疏忽出现...
`java.lang.ExceptionInInitializerError` 是Java编程语言中一个特殊的运行时异常,它通常表示在类的静态初始化过程中发生了异常。这个错误不是因为类的构造函数,而是由于静态变量初始化或者静态初始化块(也称为...
在Java编程中,`java.lang.NoSuchFieldException`是运行时异常的一种,通常发生在尝试访问或操作一个类的字段,但该字段在指定的类或其任何超类中不存在时。这个异常表明在编译期间可能存在的字段在运行时无法找到,...
05-27 15:35:11.487 E/AndroidRuntime( 2352): Process: com.android.systemui, PID: 2352 05-27 15:35:11.487 E/AndroidRuntime( 2352): java.lang.RuntimeException: Unable to create service ...
当我们遇到“java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around”这样的错误时,通常意味着在我们的项目中缺少了AspectJ库,这是Spring AOP实现的关键组成部分。 AspectJ是一个全面且成熟的...