API常用工具类
Application Programming Interface,应用程序编程接口
主要有String、包装类、java.util、Object
String
1.被 final 修饰的类,不能被继承;
2.字符串存在于常量池中。如果 new String() 会在堆内存中开辟空间,如果是直接赋值的话,会在常量池中开辟空间
String类常用方法
String a = new String("abc");
String b = new String("ABC");
System.out.println(a.isEmpty());//判断 a 是否为空
System.out.println(a.length());//输出该 a 的长度
System.out.println(a.equals(b));//判断两个字符串是否相等
System.out.println(a.equalsIgnoreCase(b));//判断两个字符串是否相等,不区分大小写
System.out.println(a.charAt(0));//返回一个字符串内下标为*的单个字符
System.out.println(a.substring(1));//从下标1开始截取字符串到结束
System.out.println(a.substring(0,2));//截取从下标0开始到下标2结束(不包含下标为2的字符)
System.out.println(a.replace("a","熊大");//将 a 替换成熊大
System.out.println(a.trim());//去掉字母首尾的空格
System.out.println(a.indexOf("b"));//查找b在目标字符串内的下标位置
String 类型转换;
String c = new String("AbC");
c.getBytes();//将 c 转换成 bytes 型数组;ASCII码范围只有-127~+128
System.out.println(c.toCharArray());//将 c 转换成 char 型数组
System.out.println(a.toLowerCase());//将 c 中所有英文字母转换成小写字母
System.out.println(c.toLowerCase());//将所有英文字母转换成小写
System.out.println(c.toUpperCase());//将所有英文字母转换为大写字母
System.out.println(c.concat("DEF"));//将DEF拼接到AbC后面
StringBuffer
StringBuffer l = new StringBuffer("Abc");
System.out.println(l.append("DEF"));//将DEF拼接到AbC后面
System.out.println(l.insert(1,"追加字符串"));//在指定下标处追加字符串
System.out.println(l.deleteCharAt(1));//删除下标处的字符
System.out.println(l.delete(0,2));//删除下标区间的字符
System.out.println(l.reverse());//反转字符串
System.out.println(l.substring(1));//从下标1处截取字符串到结束
System.out.println(l.substring(1,5));//从下标1处截取字符串到下标5处,不包含下标5;
String 与 StringBuffer的区别
引用自https://blog.csdn.net/lclai/article/details/6141548
1.String 对象一但产生后就不能修改,重新赋值其实就是重写;StringBuffer 对象内容则可以修改。
2.StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
3.String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。
4.StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。
5.StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。
StringBuffer的常用方法
6.StringBuffer类中的方法要偏重于对字符串的变化例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。
Integer 常用方法
Integer aaa = new Integer("520");
System.out.println(aaa.intValue());//转换成int
System.out.println(Integer.parseInt("520"));//String转换成int
System.out.println(Integer.valueOf("520"));//String转换成Integer
Character常用方法
System.out.println(Character.isUpperCase('A'));//判断指定字符串是否为大写字母
System.out.println(Character.isUpperCase('A'));//判断指定字符串是否为小写字母
System.out.println(Character.isDigit(aaa));//字符串只含有数字则返回True
System.out.println(Character.toUpperCase('t'));//将小写字符转换为大写
System.out.println(Character.toLowerCase('A'));//将大写字符转换为小写
Math常用的方法
double aa = -3.1415926;
System.out.println(Math.abs(aa));//取绝对值
System.out.println(Math.ceil(aa));//返回最小值
System.out.println(Math.floor(aa));//返回最大值
System.out.println(Math.max(aa, aaa));//取最大值
System.out.println(Math.pow(2, 2));//求幂(目前是求2的2次方)
System.out.println(Math.random());//随机数(大于0小于1的随机小数)
System.out.println(Math.round(3.6));//四舍五入成整数
System.out.println(Math.sqrt(3.3));//求double值的正平方根
Calendar常用的方法
System.out.println(Calendar.getInstance());//获取日期
Calendar instance = Calendar.getInstance();
System.out.println(instance);
Date date = instance.getTime();//Calendar转换成Date
System.out.println(date);
instance.add(Calendar.MONTH,-2);//月数减2
System.out.println(instance);
instance.set(Calendar.MONTH,7);//设置月数为7
System.out.println(instance);
Random概述
// 生成随机数
Random random = new Random();
int i = random.nextInt(100);
System.out.println(i);
//生产100到90之间的随机数
int x = 90 + random.nextInt(100-90);
System.out.println(x);
包装
包装:基本数据类型是没有方法的,但是可以通过包装类来实现方法的调用基本数据类型和包装类在写法的区别上只有:
int的包装类是Intger
char的包装类是Charcter
其余的基本数据类型都是首字母大写
Object
Object是所有类的父类
它的所有方法都可以被子类使用
Object的一些方法
1.getClass:返回对象的字节码文件对象;
2.hashCode: 返回对象的哈希码值(对象的内存地址值)
3..equals:比较两个对象是否相等
4.toString:getClass().getName()+"@"+Intger.toHexString(hashCode());
类的全路径名 + @ +对象哈希码值的十六进制
!!! equals 和 == 的区别:
.equals:底层的代码就是==;
.equals:只能比较引用数据类型
==:可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候
Date
Date表示日期
日期格式化
yyyy-MM-dd HH:mm:ss:SSS (year month day hour minute second millisecond)
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”);
String format = sdf.format(date);
System.out.println(format);
//获取当前时间毫秒值
Date date = new Date();
long time = date.getTime();
long l = System.currentTimeMillis();
System.out.println(time);
System.out.println(l);
//将String 类型转换成 Date 类型
Date date = ****.parse(age);
//Date转换成String 的方法
format
使用Date实现计算一个人来到这个世界上多少秒
//先从键盘获取出生日期
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = scanner.next();
System.out.println("请输入你的出生年月(****-**-**)");
String age = scanner.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(age);//String -> Date
//出生日期的毫秒值
Long myTime = date.getTime();
//现在时间的毫秒值
Date date3 = new Date();
Long nowTime = date3.getTime();
//得到相差值
Long time = nowTime - myTime;
//换算成秒
long miao = time / 1000;
System.out.println(name + "你来到这个世界" + miao + "秒");