System类概述
System表示当前运行的jvm,System提供了标准输入、标准输出和错误输出流对象。
对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法,以及获取系统时间和显示告知垃圾回收器回收垃圾释放内存空间的方法。
System是只读的不能被实例化
public static void exit(int status)
//退出系统
public static void gc()
//通知垃圾回收系统期望快速回收垃圾以释放内存空间
public static long currentTimeMillis()
//通知当前系统时间毫秒表示
public static Properties getProperties()
//获取当前系统属性map集合
public static String getProperty(String key)
//按照给定的名称获取当前系统属性字符串表示
currentTimeMillis方法
Users [] userList = new Users[100];
long begin = System.currentTimeMillis();//开始时间
for (int i = 0; i < userList.length; i++) {
userList[i] = new Users("用户"+i);
System.out.println(userList[i].getName());
}
long eng = System.currentTimeMillis();//结束时间
System.out.println("存储并输出100个数据用时"+(eng-begin)+"毫秒");
getProperty方法
//查看当前系统jvm信息
Properties pros = System.getProperties();
System.out.println(pros.toString());
arraycopy方法拷贝数组
int []srcs = {0,1,2,3,4,5,6,7,8,9};
int []dest = new int[srcs.length-2];
System.arraycopy(srcs, 1, dest, 0, dest.length);
for (int i : dest) {
System.out.print(i+" ");
获取本地计算机信息
//利用system获取本地计算机信息
Map<String,String> maps = System.getenv();
Set<String> keys = maps.keySet();//获取所有信息名称
for(String name : keys) {
System.out.println(name+" = "+maps.get(name));
String类概述
字符串构建方式
public String()
public String(byte[] bytes)
public String(char[] chars)
public String(char[] chars,int offset,int count)
public String(String str)
public String(StringBuffer buffer)
//字符串构建方式1
String dec = "中国人";//静态区
String newDec = new String(dec);
System.out.println("是否具有相同的字符序列"+(dec.equals(newDec)));
System.out.println("dec和newdec是否具有同一个引用"+(dec == newDec));
//字符串构建方式2
char [] chs = {'2',34,'美','♧'};
String str = new String(chs);
System.out.println(str);
System.out.println("字符串长度"+str.length());
String类常用方法
charAt方法索引字符
String name = "列奥纳多.达芬奇";
//charAt方法,给定的索引不能超出字符串序列索引范围否则出现异常
char res = name.charAt(2);
System.out.println(res);
compareTo方法比较字符串大小
//compareTo方法,如果当前对象大于参数则返回正数,小于返回负数,相等返回0
String a = "abcdefg";
String b = "abgdefg";
System.out.println(a.compareTo(b));
endWith/startsWith方法测试是否以某个字母开头
//测试是否以某个字符串正则表达式所描述的为开头或结尾的方法
String email = new String ("abc@163.com");
System.out.println(email+"是否以.com为结尾的"+(email.endsWith(".com")));
trim方法去掉字符串前后的空格(中间的不会去掉)
//去掉空格的trim方法
String srcStr = " lala ";
System.out.println(srcStr.length());
String newStr = srcStr.trim();
System.out.println("新字符串"+newStr);
System.out.println("原字符串"+srcStr);
index方法查找目标字符或字符串方法
//String 对象的indexOf 查找目标字符或字符串方法
String email01 = new String("abc@163.com");
int index = email01.indexOf('@');
System.out.println("@符号的位置索引"+index);
System.out.println(email01.indexOf('@',4));
System.out.println(email01.indexOf(".com"));
split分割字符串方法
//字符串的分割方法
String carNames = "奔驰,宝马,奥迪,劳斯莱斯";
String [] carArray = carNames.split(",");
System.out.println(carArray.length);
for (int i = 0; i < carArray.length; i++) {
System.out.print(carArray[i]);
subString提取字符串方法
// 提取字符串的substring方法,提取开始位置索引必须不超过原串的范围
//提取字符串的结束索引位置的字符被忽略(舍弃),结束索引必须不超出原串的范围
String str2 = new String("我是中国公民");
System.out.println(str2.substring(3));
System.out.println(str2.substring(1,5));
tocharArray方法将字符串转换为char型数组
//将字符串转换为char型数组的tocharArray
char []chars = "奥迪,奔驰,宝马,劳斯莱斯".toCharArray();
System.out.println(chars.length == "奥迪,奔驰,宝马,劳斯莱斯".length());
System.out.println(chars);
转换大小写
System.out.println("abcdefg".toUpperCase());//转换大写
System.out.println("ABCDEFG".toLowerCase());//转换大写
contains方法判断字符串是否包含
//字符串包含方法
String name2 = "喀秋莎.莉莉";
System.out.println(name2.contains("."));
replace方法替换字符串
//字符串替换方法
String color = "blue";
System.out.println(color.replace('u', 'l'));
System.out.println(color.replace("blue", "yellow"));
valueOf静态方法构建字符串
//静态方法构建字符串对象
String dest3 = String.valueOf(new Users());
System.out.println(String.valueOf(new Boolean(true)));
StringBuilder类
StringBuilder和StringBuffer都是可变(自身字符序列可被修改)的 字符序列;
StringBuilder是非线程安全的,StringBuild是线程安全的;
涉及线程安全请款下通常选择StringBuffer;
StringBuilder的执行效率比StringBuffer更高。
StringBuilder builder = new StringBuilder("我是中国人");
System.out.println(builder.toString());
System.out.println("长度"+builder.length());
System.out.println("默认容量"+builder.capacity());
append方法追加字符串
StringBuild类型的对象通过append方法增加字符串之后,原对象也会改变。
StringBuilder builder = new StringBuilder("大家好");
StringBuilder builder2 = builder.append(123).append("king");
System.out.println(builder2);
System.out.println(builder);
System.out.println(builder2 == builder);
delete方法删除字符串
public static String removeStringFromStartToEnd(String res,int start,int end) {
StringBuilder builder = new StringBuilder(res);
builder.delete(start, end);
return builder.toString();
String str = StringManagermengt.removeStringFromStartToEnd("sdkj", 1, 3);
System.out.println(str);
delete方法删除字符
public StringBuilder deleteCharAt(int index)
replace方法替换字符
public static String replaceTargetFromStartToEnd(String res,String replace) {
StringBuilder builder = new StringBuilder(res);
if (builder.toString().contains("=")) {
builder.replace(builder.indexOf("="), builder.indexOf("=")+1, replace);
return StringManagermengt.replaceTargetFromStartToEnd(builder.toString(),replace);
}
return builder.toString();
String target = "=========";
System.out.println(StringManagermengt.replaceTargetFromStartToEnd(target,":"));
insert方法插入字符
StringBuilder builder = new StringBuilder(res);
if(builder.toString().contains(tag)) {
int insertTag = builder.indexOf(tag)+4;//在此处插入insertObj
builder.insert(insertTag, inserObj);
return StringManagermengt.insertObjectOn(builder.toString(), tag, inserObj);
}
return builder.toString();
String target = "{name:king,age:,address:rmdj,age:,}";
Integer intobj = Integer.valueOf(18);
String str = StringManagermengt.insertObjectOn(target,"age:,",intobj);
System.out.println(str);
append方法业务场景
Id | Name | Gender | Address | Post |
---|---|---|---|---|
1 | King | 1 | 花园街 | 1 |
2 | Lucy | 0 | 中央大路 | 2 |
3 | Maik | 1 | 华尔街 | 1 |
4 | Tom | 1 | 花园路 | 3 |
5 | Rose | 0 | 西斯大街 | 2 |
可能根据给定的name,gender,address和post进行查询
StringBuilder sqlBul = new StringBuilder("select * from staff");
if (args.size() !=0) {
sqlBul.append("where 1=1 ");
if (args.containsKey("name")) {
sqlBul.append("and name = "+args.get("name")+"");
}if (args.containsKey("post")) {
sqlBul.append("and post = "+args.get("post")+" ");
}if (args.containsKey("address")) {
sqlBul.append("and address = "+args.get("address")+"");
}if (args.containsKey("gender")) {
sqlBul.append("and gender = "+args.get("gender")+"");
}
}
System.out.println("最终的sql: "+sqlBul.toString());
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","King");
map.put("post", 3);
map.put("address","'人民大街' ");
map.put("gender", 0);
new StaffDao().findByArgs(map);