文章目录
JavaAPI的常用类
Object
所有类的基类 所有类都直接或者间接的继承Object类
String
String是由多个字符组成的 也可以看作是字符数组
包装类
基础数据类型不具备面向对象的概念,为了弥补不足,引入了包装类方便使用面对对象的变成思想操作基本类型。
java.util
Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、 计算函数(math)类
Object的构造方法
String的常用方法
练习
package com.xinzhi.stringtset;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
public class TestString {
public static void main(String[] args) {
// 在jdk1.4之前是用创建对象的方式声明字符串的
String str1 = new String("123");
String str = "qwer2fasdfasdfa";
String str2 = " QWER ";
System.out.println("判断字符串是否为空:" + str.isEmpty());
System.out.println("获取字符串长度:" + str.length());
System.out.println("判断两个字符串是否相等:" + str.equals(str2));
System.out.println("不区分大小写进行判断:" + str.equalsIgnoreCase(str2));
System.out.println("返回该下标的char元素:" + str.charAt(2));
System.out.println("从开始下标元素截取到结束:" + str.substring(1));
System.out.println("从开始下标截取到指定结束下标,包头不包尾:"+str.substring(3,9));
System.out.println("替换字符串:"+str.replace("a","c"));
System.out.println("去掉收尾空格:"+str2.trim());
System.out.println("转换bytes类型数组:"+ Arrays.toString(str.getBytes()));
System.out.println("给一个元素,判断在数组中的位置"+str.indexOf("a"));
System.out.println("同上,但倒着来:"+str.lastIndexOf("a"));
}
}
String类型的转换功能
String的注意事项
String是一个用final修饰过的引用数据类型,他的值一旦创建便不能修改。
String直接用””创建对象会放到常量池中。用””号创建会先去常量池中寻找,如果有就直接返回如果没有再进行创建 String直接用构造函数来创建对象,对象不会放到常量池中而是会放在内存堆里面
String每次修改字符的时候都会从新创建一个对象那么就会造成内存空间被不必要的占用。那么我们可以使用StringBuffer来解决这个问题
StringBuffer概述
StringBuffer是用来解决String更改字符串造成的时间浪费和空间浪费的
String 和StringBuffer的区别
内存操作不同
String是每次进行更改都会产生一个新的对象
StringBuffer不会产生新的对象而是在原有的对象上进行更改
String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢。 String a = “a” + “b” + “c”
StringBuffer是线程安全的所以对象操作会比较慢在进行并发处理的时候,会有阻塞现象
包装
什么是包装?
java中的数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。为了弥补这个缺陷,java提供了包装类。
包装类的实现
java为我们提供了基本数据类型的包装类,这些包装类分为两类,一种是对象型包装类,不继承任何其他类(Object的直接子类),另一种是数值型包装类,继承于Number类。
// byte的包装类
public final class Byte extends Number implements Comparable<Byte>
// short的包装类
public final class Short extends Number implements Comparable<Short>
// int的包装类
public final class Integer extends Number implements Comparable<Integer>
// long的包装类
public final class Long extends Number implements Comparable<Long>
// float的包装类
public final class Float extends Number implements Comparable<Float>
// double的包装类
public final class Double extends Number implements Comparable<Double>
//Boolean和Character两个类就是正常的属性方法封装,但是数值型的包装类继承了一个Number类。
public abstract class Number implements java.io.Serializable
//其实Number中定义的方法就是用于拆箱装箱的。
Integer的常用方法
Character常用的方法
java.util
util类是java为我们提供的一整套工具类。其中包含,获取时间,时间的格式转换,数字的运算,接收用户输入,生存随机数等
Math
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Date时间格式化
/** 输出格式: 2016-10-26 4:48:11*/
System.out.println((new java.text.SimpleDateFormat("yyyy-M-d h:mm:ss")).format(new Date()));
/** 输出格式: 2016-10-26 16:48:11 */
System.out.println((new java.text.SimpleDateFormat("yyyy-M-d H:mm:ss")).format(new Date()));
// 这里需要注意的就是24时和12时的显示正则,H大写为24时计时法,h小写为12时计时法,两个h时,即hh,当为个位数时间时前面自动补0即下午4点显示04