常用类
一.System
System 代表Java程序运行平台
System 是一个fianl 类 该类的所以属性都是静态
常用的方法:
currentTimeMillis(); //返回以毫秒为单位的当前时间 从1970-01-01 开始
long a = System.currentTimeMillis()/1000/60/60/24/365+1970;
System.out.println("当前年份为:"+a); //可以算出当前的年份
System.exit(0); 终止Java虚拟机(直接停止程序 不推荐使用)/renturu 也能终止执行方法 推荐使用 renturn
getproperties(); 确定系统当前属性
gc(); 代表垃圾回收
引用技术算法(Refetence Counting)
根搜索算法(Gc Roots Tracing)
标记——清除算法:首先标记要回收的垃圾,然后进行清除 缺点:会在内存中产生很多的碎片
复制算法:把要要清除的东西放在一边 不清楚的放在一边 能很好的清除而且不会在内存中产生碎片 缺点:把内存变成了一半
标记——整理算法:动态的把要清除的东西 放在一边 不会使内存减半 优点:融合前两种算法 更人性化
Runtime 类
其方法:
rt.availableprocessors(); 当前处理器数量
rt.freeMemory(); 空闲内存数
rt.totalMemory(); 总内存数
rt.maxMemory(); 最大内存数
字符串相关类 String
==对象的时候,判断的是内存地址是否相等
方法:
length(); 长度
CharAt(); 返回索引 char值
CompareTo (); 将字符串按字典顺序比较
Concat(); 将字符串拼接
Contains(); 判断字符串是否包含某个字符
getBytes(); 根据平台默认的字符编码 将该字符串转换为字节类型
indexOf(); 返回字符在字符串中的下标
isEmpty(); 判断是否为空
split(); 拆分字符串
toLowerCase(); 将字符串转化为小写
toUpperCase(); 将字符串转化为大写
trim(); 忽略前后空格 (中间的不能忽略)
replace(); 将字符串的内容替换
substring(); 从开始第几位截取到结束位置前一位字符 返回一个新的的字符串
String 里面的值不被更改 长度也不能被修改
import java.lang.reflect.Array;
import java.util.Arrays;
/***
*
* @author Administrator
*字符串相关类
*/
public class Stringclass {
public static void main(String[] args) {
// String s ="abcd";
// System.out.println(s.charAt(1));
//s.charAt(1)搜索字符串下标 对应的字符 返回指定索引处的 char 值。
//--------------------------萌萌的分割线君------------------------------------------
// String s ="abc";
// String s1 ="defg";
// System.out.println(s1.compareTo(s));
//compareTo 以字典的顺序比较字符串 如果前一个字符串大于后一个字符串 就是正数 相反就是负数
//--------------------------萌萌的分割线君------------------------------------------
// String s ="abc";
// String s1 ="defg";
// System.out.println(s.concat(s1));
//concat 将字符串拼接
//--------------------------萌萌的分割线君------------------------------------------
// String s = "qwe";
// System.out.println(s.contains("1"));
//contains 判断字符串中是否包含某个字符 是的话 返回 true 不是返回 false
//--------------------------萌萌的分割线君------------------------------------------
// String s = "abcdefg";
// System.out.println(s.getBytes());
//getBytes 根据平台默认的字符编码 将该字符串转换为字节类型
// System.out.println(Arrays.toString(s.getBytes()) );
//Arrays.toString将 结果存入新的数组中去
//--------------------------萌萌的分割线君------------------------------------------
// String s = "abc";
// System.out.println(s.indexOf("c"));
//indexOf 返回指定字符在字符串中的下标 如果没有 他就会返回 -1
//--------------------------萌萌的分割线君------------------------------------------
// String s = "aaa";
// System.out.println(s.isEmpty());
//isEmpty 判断字符串是否为空? 是返回true 不是返回false
//--------------------------萌萌的分割线君------------------------------------------
//★ 难点
// String s = "a:b:c:d:e:f:g";
// System.out.println(Arrays.toString(s.split(":",6)));
//Arrays.toString 将 结果存入新的数组中去
//split 拆分字符串
// 例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
// Regex Limit 结果
// : 2 { "boo", "and:foo" }
// : 5 { "boo", "and", "foo" }
// : -2 { "boo", "and", "foo" }
// o 5 { "b", "", ":and:f", "", "" }
// o -2 { "b", "", ":and:f", "", "" }
// o 0 { "b", "", ":and:f" }
//--------------------------萌萌的分割线君------------------------------------------
// String s = "acdefg";
// String s1= "ABCDEFG";
// System.out.println(s.toUpperCase());
// System.out.println(s1.toLowerCase());
//toUpperCase 将字符转换成大写
//toLowerCase 将字符转换成小写
//--------------------------萌萌的分割线君------------------------------------------
// String s = " adc";
// System.out.println(s.trim());
// String s1 = " adc ";
// System.out.println(s1.trim());
// String s2 = " a d c ";
// System.out.println(s2.trim());
//trim 忽略字符串前后的的空格(中间的的空格不能忽略)
//--------------------------萌萌的分割线君------------------------------------------
// String s = "abcdefg";
// System.out.println(s.replace("c", "0"));
//replace 将字符串的内容更改 模型:replace(“需要更改的字符”, "希望更改成的字符")
//--------------------------萌萌的分割线君------------------------------------------
String s = "abcdefghijklmn";
System.out.println(s.substring(0, 5));//运行结果为: abcde
//substring 从开始第几位截取到结束位置前一位字符 返回一个新的的字符串
//substring ( 0 第一个字符的下标, 5 截取结束的下标但是 不会截取第五个 而是截取前一个字符)
}
}
StringBuffer(可增长字符串)
StringBuffer a = StringBuffer(); //创建一个可以拼接的字符串
方法:
insert(); 把字符追加多字符串中/指定的地点
append(); 始终把字符添加到缓冲区的末端
public class StringBufferclass {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("12345");
sb.append("6789");
sb.append("lalala");
sb.insert(5, "kk");
System.out.println(sb);//最后运行结果:12345kk6789lalala
//append 将指定字符始终添加到缓冲区的末端
//insert( 5 加到下标为5的字符前面 注意下标从零开始 ,“KK” 表示需要添
加的字符 )
//insert 可以把字符添加到指定的地方
}
}
String Builder 类
他是StringBuffer 的轻量版
性能: StringBuilder> StringBuffer>String
StringBuilder 线程不安全 StringBuffer线程安全
日期相关类
Date——JavaUtil
Date 类默认的方法 不适用于我们
getYear(); 有横线表示 不推荐使用 因为会遇到千年虫的问题
SimpleDateFormat 日期格式化
模型:
SimpleDateFormat a = new SimpleDateFormat("yyyy-MM-hh");
a.format(); 将Date转换成符合的字符串类型("yyyy-MM-hh")
a.parse(); string字符串 转换成Date
Calendar 类是一个抽象类
模型 :Calender c = new Gregorian Calender();
c.get(Calendar.YEAR) /获得具体时间
包装类
Java中分为基础数据类型和引用类型
包装:把基础类型 转换为 引用类型
为什么要用:有些应用中要求不能使用基础数据类型 必须是引用类型
int ———包装———> Integer类
char———包装——> Charachter类
int num = 10;
Integer num1 = new Integer(num);// 包装完成 手动包装
Integer num2 = num;//自动装箱
Integer anum = 10;
int b = anum; //自动拆箱
int b2 = num1.intValue();//手动拆箱
为什么要装箱和拆箱?
①装箱————基础数据类型————引用类型 引用类型有更多的方法
②有些操作规定了我们必须使用引用类型,而不能使用基础数据类型
正则表达式(pattern)
指出一个表达式 判断用户/别的数据是否满足我们的表达式
模型:pattern a = new pattern.compile("^<------ 正则表达式的开始 结束----->$");