Java基础复习—Java核心API1

文章目录

        • Strin字符串
            • String基础知识
            • String 中常用的API
            • StringBuffer类和StringBuilder类
        • Object类
            • 什么是Object
            • Object类中的方法
        • 包装类
            • 包装类的认识

Strin字符串

String基础知识

​ String 是一个引用类型,默认值为 null

​ String 类是用关键字 final 修饰的,所以 String 类不能被继承

import java.util.Arrays;

public class StringDemo {
	public static void main(String[] args) {
		//定义字符(char)数组
		char[] s1 = {'北','京'};
		char[] s2 = {'达','内','科','技'};
		System.out.println(s2);
		char[] s3 = Arrays.copyOf(s1, s1.length+s2.length);
		//将s2中的内容复制到s3数组中去
		System.arraycopy(s2, 0, s3, s1.length, s2.length);
		System.out.println(s3);
		
		//定义字符串(String)数组
		String s4 = "北京";
		String s5 = "达内科技";
        //s4.concat(s5),concat()方法的作用是合并数组
		String s6 = s4.concat(s5);
		System.out.println(s6);
        /*	运算结构:
        		达内科技
				北京达内科技
				北京达内科技
		*/
	}
}

​ 通过上述代码的描述。主要理解 char[] 就等同于字符串String,其实String类内部就是 char[] ,s1.concat() 方法的底层实现原理就是用数组复制完成的。

String 中常用的API

(1) charAt() : 获取字符串中的某个字符

(2) length() : 获取字符串长度

(3) trim() : 去掉字符串两端的空白

(4) indexOf() : 查找某个子串在字符串中第一次出现的位置

(5) substring(int beginIndex,int endIndex) : 截取字符串中的某一段子串, 从 start开始, end结束

(6) substring(int start) : 截取从start位置开始以后的字符串

(7) toLowerCase() : 将字符串转换为小写

(8) toUpperCase() : 将字符串转换为大写

(9) toCharArray() : 将字符串转换为字符数组

(10) endsWith() : 判定是否以指定的字符串结束

(11) startsWith() : 判定是否以指定的字符串开始

(12) lastIndexOf() : 查找某个子串最后一次出现的索引

(13) equals() : 判定输入的字符串是否与参数相等

(14) equalsIgnoreCase() : 判定输入的字符串是否与参数相等,不分大小写

StringBuffer类和StringBuilder类

​ String是不可能改变的,如果要改变一个String类型的变量的值,会创建出新的对象。然后让String类型指向新的String对象,此时堆内存中就会生成很多新的没有被引用的对象,JVM的GC就开始工作回收这些对象,这样使用效率就比较低。

StirngBuffer和StringBuilder是类似于String的缓冲区,通过它可以对字符串进行修改而不会创建许多对象

StringBuffer是线程安全,效率比较低;StringBuilder是线程不安全,效率比较高

StringBuffer 和 StringBuilder 中提供如下常用方法

(1) append(String) : 在字符串的末尾追加字符串

(2) insert(int , String ) : 在字符串的某个位置插入子串

(3) delete(int , int) : 删除字符串中的某段子串

(4) toString() : 转换为字符串文本

方法使用如下:

public class StringBufferDemo {
	public static void main(String[] args) {
		StringBuilder builder = new StringBuilder();
		builder.append("达内集团").append("科技").append("上市了").insert(0, "北京").delete(4, 6);//delete()不包括6   4<=x<6
        //转换为字符串类型
		String str = builder.toString();
		System.out.println(str);
	}

}
//输出结果为:北京达内科技上市了

Object类

什么是Object

​ Object 类可以视为所有类的父类,如果某个类没有明确的父类,会默认继承 Object 类。可以使用Object类型的变量指向任意类型的对象,在Object类中有一个无参数的构造方法,在构造一个子类实例时都会默认先调用该构造方法

Object类中的方法

​ 只要定义一个类,就默认继承Object类,也就是说,继承了Object类中的属性和方法

包装类

包装类的认识

​ 在实际开发中经常需要对Java中的基本类型进行处理,比如需要把int类型的数据结构转换为字符串,把“123”的字符串转换为整型的123,但是int是基本数据类型不能处理。在 Java 中,已经将Java的基本数据类型与其提供的一些常用的数据操作方法进行封装,封装成了包装类,这样才有一切皆对象的感觉。

包装类是不可改变的,在构造了包装类对象后,不允许改变包装在其中的值

基本类型对应的包装类,如下表:

基本类型 包装类 父类
int Java.long.Integer Java.long.Number
long Java.long.Long Java.long.Number
double Java.long.Double Java.long.Number
short Java.long.Short Java.long.Number
float Java.long.Float Java.long.Number
byte Java.long.Byte Java.long.Number
char Java.long.Char Java.long.Object
boolean Java.long.Boolean Java.long.Object

​ 从上表可以看出,Java基本类型中除了char和boolean的包装类是直接继承Object以外,其他都是继承Number类

Number类是抽象类,其子类必须提供将其表示的数值转换为byte、double、float、int、long和short的方法

(1) doubleValue() : 以double形式返回指定的数值

(2) intValue() : 以int形式返回指定的数值

(3) floatValue() : 以float形式返回指定的数值

例如如下代码演示:

public class Date {
	public static void main(String[] args) {
		Number d = 1.0;
		Number n = 123;
		//输出number类型的d和n对象所属的类型
        //xx.getClass().getName()
		System.out.println(d.getClass().getName());
		System.out.println(n.getClass().getName());
		//将d转换为int类型
		int intvalue = d.intValue();
		//将n转换为double类型
		double doublevalue = n.doubleValue();
		
		System.out.println(intvalue);
		System.out.println(doublevalue);
	}
}
/*运算结果:	java.lang.Double
			java.lang.Integer
			1
			123.0
*/

​ 以上是通过Number对double和int进行转换

Integer类提供了多个方法,能在int类型和String类型之间进行互相转换,还能提供一些常量,比如:

(1) static int MAX_VALUE 值是 int 类型表示的最大值

(2) static int MIN_VALUE 值是 int 类型表示的最小值

(3) parseInt(String name) 将字符串类型转换为int类型

例如如下程序:

public class IntegerDemo {
	public static void main(String[] args) {
        /*
		目前已经为自动装箱拆箱。不需要再手动装箱拆箱
		Integer in = new Integer(10);  装箱
		int ints = in.intValue();	拆箱
		System.out.println(ints*ints);	100
		 */
		String str = "123";
		//将字符串str转换为int类型
		int intValue = Integer.parseInt(str);
		System.out.println(intValue);
        
        String str1 = "一百二十三";
        int intValue1 = Integer.parseInt(str1);
        //抛出异常:NumberFormatException  
        //Integer 所要转换的字符串必须是数值字符串,否则会报错
        System.out.println(intValue1);

	}
}
/*运算结果:123   */

​ 以上是通过Integer将字符串转换为int类型

Double 类的对象是 double 的包装类,其中提供的构造方法有

(1) Double(double value) : 包装一个 double 类型的 Double 实例

(2) Double(String s) : 包装一个类型为String的Double实例,这里需要注意 s 必须是整型的字符串

Double 类中提供的方法:

(1) double doubleValue() :

(2) static double parseDouble(String s) : 返回一个新的double值,该值被初始化为用指定的String表示的值

例如如下程序:

public class DoubleDemo {
	public static void main(String[] args) {
		//将1包装成Double对象
		Double dou = new Double(1);	//装箱
		System.out.println(dou);

		//将str转换成double类型
		String str = "123";
		double doubleValue = Double.parseDouble(str);
		System.out.println(doubleValue);
		
		//抛出异常:NumberFormatException
        //parseDouble 所要转换的字符串必须是数值字符串,否则会报错
		String str1 = "一百";
		double doubleValue1 = Double.parseDouble(str1);
		System.out.println(doubleValue1);
	}
}

​ 以上是将字符串转换为 Double 类型

你可能感兴趣的:(java基础,java)