概述
java拥有着丰富的基础类库,Java8中就有着失少4000多个基础类,这些类库可以帮助我们更好的去开发。这篇文章当然不可能讲完所有的类,但是对于一个合格的程序员来说,我们至少要了解其中百分之80的类库,能较为灵活的使用其中的常用类。
一 System类
java程序运行的平台,可以由System类来与之交互。
System.in.println();
System.out.println();
System.err.println();
分别是标准输入,标准输出,错误输出。
二 Runtime类
Runtime类 代表程序运行时的环境,每个java程序都有一个与之相对应的Runtime实例,程序可以通过该对象与其运行时环境相连。
比如:availableProcessors()来访问处理器数量。
freeMemory()为空闲内存
等等方法来访问运行时的方法
三 Object类
Object类是所有类,数组,枚举类的父类。可以接收一切对象。定义一个类的时候,默认的去继承Object类
其中 要注意Object类中的 equals方法和toString方法
在Object中 equals方法是判断指定对象与该对象是否相等。(是否是同一个对象,也就是地址相同)(因为一般来说,这样去比没有意义,一般都要重写)。
而在Object中toString方法,是返回该对象的字符串表示,当程序使用System.out.println方法输出一个对象的时候,系统会自动调用它的toString方法,但是Object类的 toString方法是返回:运行时类名+@+十六制hashCode值。所以很多类都重写了这个方法,比如String,就重写了,是比较两个值是否相等。
还有int hashCode方法 返回对象的hashCode值
四 Objects类
+s 就是工具类,比如Collections Arrarys 等等。
这里面的方法大都是安全的,不会出现NullPointerException
五 包装类
基本数据类型<-——>引用数据类型
为了解决基本数据类型,不能引用的问题。
1 基本数据类型转换成包装类
装箱
Integer it1 = new Integer(100);
Double db1 = new Double(10.5);
2 包装类转成基本数据类型
拆箱
int i = it1.intValue
double db = db1.doubleValue
以上上是手动的 在jdk1.5以后就不用这么麻烦了,可以有自动拆装箱
3 自动拆装箱
Integer it2 = 1000;
int i2 = it2;
4基本数据类型,包装类——> String 字符串
1. +" "号
2. String.valueOf()
int i = 10;
String str = String.valueOf(i);
这个时候 str是"10";
3 包装类的话,直接调用toString方法
5 String 字符串——> 基本数据类型,包装类
String str1 = "10";
Integer it1 = new Integer(str1);
int i = Integer.parseInt(str1);
六 String StringBuilder StringBuffer
首先讲String:
String:构造方法
String();
初始化一个新创建的 String
对象,使其表示一个空字符序列。
String(byte[] bytes);
通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String
。新 String
的长度是字符集的函数,因此可能不等于 byte 数组的长度。
String(byte[] bytes,int offset,int length)
通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String
。新 String
的长度是字符集的函数,因此可能不等于该子数组的长度。
有不懂的可以去查API,byte 和 char
除了构造方法,还有很多的方法
substring(int startpoint);取
substring (int start,int end);
replace(char old,char new);替换
replaceAll(String old ,String new);
trim()去掉首尾空格
concat(String str)连接字符串
split(String regex)根据正则表达式来拆分此字符串
字符串String <——>字节数组byte[] 、字符数组char[]的转换
字符串String转为 字符数组char[]
String str =“aaa”;
char[] c = str.toCharArray()
sysout(Arrays.toString(c));
字符串String转为字节数组byte[]
String str1 = "haha";
byte[] b = str1.getBytes();
sysout(Arrays.toString(b));
StringBuilder 线程不安全的,效率略高(一般情况下选build)
StringBuffer 线程安全的 效率略低
StringBuffer的用法和StringBuilder的用法完全一样,只是多了线程安全这一点
与String最大的不同就是StringBuilder 和StringBuilder 的长度是可以变的,而String是无法改变长度的。
StringBuilder 和StringBuffer 中多了
StringBuilder sb = new StringBuilder();
sb.append("haha")
sb.insert(0,"!!!")
sb.replace(5,6,",")//开始,结束,替换
sb.delete(5,6)
sb.reverse()//颠倒
sb.length();
sb.capacity()容量
七 Math类
常用的就是其中的PI 和E
int t = (int)Math.random()
Math中还有许多数学计算功能
八 Random类 和 ThreadLocalRandom类
比Math类里面random方法更为强大
提供了nextXXX()来获取伪随机数
构造这个类的时候,可以加种子
九 BigDecimal
用来应对浮点型的精度丢失问题
BigDecimal f1 = new BigDecimal("0.05");//注意要用字符串的方法表示,不能用
或者 BigDecimal f2 = BIgDecimal.valueOf(0.01)
add subtract multiply divide
十 Date类
首先注意包 java.util包下 而不是java.sql包下
Date的两个构造方法
1 Date()//程序运行的当前时间
2 Date(long date)
还有Long t1 = System.currentTimeMills()
date.getTime() 从1970年到今天的毫秒
十一 Calendar类
通过getInstance()得到值
Calendar c = Calendar.getInstance()
c.get(Calendar.YEAR)
也可以设置
c.set(Calendar.YEAR)
PS 以sunday为第一天
ps add()会出现进位
十二 DateFormat
日期转文本
SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date())
System.out.println(date)
十三 正则表达式
提供了Pattern 和Matcher 两个类来提供支持
\ 相当于 前一个用来转意
Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaaab”);
boolean b = m.matchers();
String str = “巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴巴拉拉”
Matcher m = Pattern.compile("((13\d)|(15\d)\d{8})").macher(str);
while(m.find){
System.out.println(m.group())
}
最后
以上就是刻苦悟空为你收集整理的java基础类库的全部内容,希望文章能够帮你解决java基础类库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复