Java 如何取得操作系统的属性
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;
public class SystemProperties
{
public static String LINE_SEPARATOR = "line.separator";
public static String FILE_SEPARATOR = "file.separator";
public static String USER_LANGUAGE = "user.language";
public static String FILE_ENCODING = "file.encoding";
public static String OS_NAME = "os.name";
public static String USER_DIR = "user.dir";
public static String USER_COUNTRY = "user.country";
private static SystemProperties SystemPropertiesInstance = null;
//零长度的byte数组对象创建起来将比任何对象都经济,查看编译后的字节码:
//生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码
private static byte[] lockObject = new byte[0];
private HashMap<String,String> ptHashtable = null;
private SystemProperties()
{
InitAllProperties();
}
public static SystemProperties newInstance()
{
synchronized(lockObject)
{
if(null == SystemPropertiesInstance)
{
SystemPropertiesInstance = new SystemProperties();
}
}
return SystemPropertiesInstance;
}
public String getLineSeparator()
{
Object object = ptHashtable.get(LINE_SEPARATOR);
if(null ==object)
{
return null;
}
return object.toString();
}
public String getOSName()
{
Object object = ptHashtable.get(OS_NAME);
if(null ==object)
{
return null;
}
return object.toString();
}
public boolean isWindows()
{
if(getOSName().indexOf("Windows") >= 0)
{
return true;
}
return false;
}
public String getUserDir()
{
Object object = ptHashtable.get(USER_DIR);
if(null ==object)
{
return null;
}
return object.toString();
}
private void InitAllProperties()
{
Properties ps = System.getProperties();
Enumeration EP = ps.propertyNames();
ptHashtable = new HashMap<String, String>();
for(;EP.hasMoreElements();)
{
Stri
相关文档:
// 创建Excel
String destFileName = tableName + ".xls";//文件名
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=".concat(String .valueOf(destFileNa ......
JAVA虚拟机有一个字符串池,对于字符串池的访问可以使用字符串对象的intern()方法,可动态向池中添加对象,它的定义如下:
public native String intern();
这是一个本地方法,在调用这个方法时,JAVA虚拟机首先检查字符串池中是否存在与该字符串对象值相等的对象,如果存在就返回字符串池中的对象的引用,否则就新创建一个 ......
复制数组的方法:
在JAVA里面,可以用复制语句“A=B”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变。
以下是归纳的JAVA中复制数组元素值的的方法:(深拷贝)
1。使用FOR循环 ......
package server;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Recta ......