Java基础---API概述---常用类(Object类/String类)---equals和==

API概述

API:application programming interface,应用程序编程接口
用于规定方法名称的规则集合,定义了方法的修饰符、返回值类型、方法的名称、方法的参数列表、方法的功能。
应用程序编程接口也包含了各种有实际功能内容的方法、类、枚举、接口。

类库

1、java的源代码编译之后,会形成字节码文件,这些文件包含了类中所有的内容,在脱离源代码的前提下,这个字节码文件   仍可以继续使用。
2、java中可以将字节码文件,打包成jar
(1)jar包,是.class文件的压缩包,是java的专用压缩包,一旦获得了jar包,就相当于获得了里面所有的.class文件
(2)jar的生成:在eclipse中选中要打包的类型(项目,包,类),右键选择export---java---jar file 选择生成的jar文件的路径。
(3)jar的使用:将下载好的jar包,建议在工程目录下创建一个lib文件夹,拷贝到当前目录下,选择该jar包,右键build Path,---add to build Path(将当前的jar包中的类型添加到工程的编译路径)
(4)jar包的移除:先把jar包删除,将依赖路径也删掉,(不要让当前的工程在依赖这个jar包)右键工程---build Path --- configure build path----libraries --,选择要移除的jar -- remove
3、类库:
	(1)jar包的内容还是太少,一系列的jar包组成了一个类库,library
	(2)一旦导入了类型库,就相当于导入了类库中所有的jar包,相当于获取了所有的.class文件
       选中工程----右键----build path----add libraries----选择要添加的类型库即可

Object类

1、Object类是所有类型的顶层父类,所有类型直接或者间接的父类,所有的类型(包括数组)都含有Object类型中的所有的方法。随意定义一个类型,不手动的定义其父类,那么这个类的父类就是Object类。
2、Object类型的构造方法:Object()
	(1)可以自己创建对象
	(2)让子类访问,所有子类都会直接,或者间接的访问顶层父类中的空参构造
	(3)Object类在执行构造方法的时候,不去访问自己的父类的构造方法,因为没有父类了

Object类中的方法

toString

1、返回当前对象的字符串表示,在打印对象的引用时会自动自动调用toString方法。
2、Object类型中,这个方法的实现:全类名+@+哈希码值的十六进制表示
	getClass().getName() + "@" + Integer.toHexString(hashCode());
3、对象返回这样的一个地址值的字符串,没有什么意义,开发中需要打印对象的属性信息,因此子类需要重写这个方法。
4、重写:返回该对象中的所有成员变量的值。
5、操作:
	可以使用快捷键直接生成: Alt + shift  +s  s
    也可以根据格式需要自己重写

equals方法

1、用于比较两个对象是否相等的方法
	boolean equals(Object obj)
2、在object类型中的equals方法,比较的是两个对象的地址值是否相同
3、比较两个对象的地址,没有意义,开发中需要比较两个对象的属性信息是否相同,因此子类需要重写这个equals方法。
4、重写:比较两个对象中所有的属性
5、操作:
	可以使用快捷键直接生成: Alt + shift  +s  h
    也可以根据格式需要自己重写

== 和equals的区别

1、比较的内容不一样:
	==可以比较任意的数据类型,既可以比较基本的数据类型,还可以比较引用的数据类型,equals方法只能比较引		用数据类型。
2、比较规则不同:
	==号在比较基本数据类型的时候比较是数据的值,==号在比较引用数据类型的时候,比较的是地址值;
	equals方法在重写之前,比较的也是两个对象的地址,重写后比较的是属性值

Scanner类

1、录入基本数据类型的方法
	nextByte()	
	nextDouble() 
    nextFloat() 
    nextInt() 
    nextLong()
    nextShort() 
	nextBoolean()
	
	next方法,可以录入下一个完成的标记,返回一个字符串,通过空格来分隔各个标记
    nextLine();可以录入下一个完整的标记,返回一个字符串,通过换行符来分隔各个标记
	
	没有nextChar()方法,因为将来录入字符的时候,都按照录入字符串的方式,通过charAt(0) 来获取字符串中的下标为0 的字符。
	Scanner scanner = new Scanner(System.in);
 		System.out.println("请输入一个字符:");
 		char input = scanner.next().charAt(0);
 		System.out.println(input);
 		
2、注意:
	  当调用完以空格作为分隔符的方法next()之后,再调用一个以换行符为分隔符的方法nextLine()时,nextLine()不会再等待用户录入了,而是直接就结束程序了 如果打印返回的字符串,就是一个空串。
   解决方法:
     (1)连续调用两次nextLine(),第一次将空串跳过,第二次就会等待键盘录入了
	 (2)创建两个Scanner对象,新的Scanner对象没有上次录入的数据,所以不会影响下次的录入
	 (3)所有的录入都以字符串的形式录入到内存中,然后再进行数据类型的转换

String类

1、String就是字符串类型,属于java.lang 包,不需要导包
2、所有的字符串常量(“HelloWorld","abc")都属于String类型的对象
3、字符串字面值属于常量,存储在方法区中的常量池中
4、不可变的原因:String类型之提供了构造方法,没有提供set方法,因此在创建对象的时候,初始化成员变量,将来在创建对象完成之后,无法通过方法来修改

String类型的构造方法

1、String()创建一个空字符串
2、String(String original)创建的是一个参数字符串的副本(参数字符串是在常量池中存的,构造方法创建的字符串是在堆内存中的)
3、String(byte[] bytes):将一个字节数组转为字符串
	解码:将不认识的字节数组,转成认识的字符串
	编码:将一个字符串转换为一个字节数组的过程
	查询的是默认的平台编码
4、String(byte[] arr,int offset,int length),将字节数组的一部分转为字符串
5、String(char[])将字符数组转成字符串,不涉及到编码和解码的问题,就是将字符数组拼接成字符串
6、String(char[] chs,int offset,int length)将字符数组的一部分转成字符串

String类型的判断方法

1、equals(Object obj)判断调用者和参数对象描述的字符串内容是否相同
2、contains(CharSequence s)   当且仅当此字符串包含指定的 char 值序列时,返回 true。
3、equalsIgnoreCase(String anotherString)  将此 String 与另一个 String 比较,不考虑大小写。
4、startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
5、endsWith(String suffix)  测试此字符串是否以指定的后缀结束。
6、isEmpty()      当且仅当 length() 为 0 时返回 true 返回字符串的长度

String类型的获取方法

1、length()	获取字符串字符的个数
2、charAt(int index) 返回调用者字符串中索引为index的字符,和length方法结合就能够得到调用者字符串中的每一个字符
3、subString(int beginIndex):获取一个字符串,内容是从当前字符串的beginindex索引开始
4、subString(int beginIdex,int endIndex)获取一个指定索引范围的子串
	beginIndex - 起始索引(包括)。
	endIndex - 结束索引(不包括)。 
5、indexOf家族
	indexOf(int ch) 
          返回指定字符在此字符串中第一次出现处的索引。 
 	int indexOf(int ch, int fromIndex) 
          返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 
	int indexOf(String str) 
          返回指定子字符串在此字符串中第一次出现处的索引。 
 	int indexOf(String str, int fromIndex) 
  		  返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
6、lastIndexOf 家族
	和indexOf家族一样,只不过是从后向前所有的字符和字符串的索引也都不会发生变化

String类型的转换方法

1、byte[] getBytes():j将当前字符串,转成字节数组
2、char[] toCharAarray():将当前字符串转成字符数组
3、toUpperCase():将当前字符串,转成全大写的格式
4、toLowerCase()  使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
5、concat(String str)将指定字符串连接到此字符串的结尾。
6、valueOf家族 可以将任意数据类型的数据,转成字符串
package com.DaYu;

public class Demo01 {
	public static void main(String[] args) {
//		空参构造
		String str = new String();
		System.out.println(str);//空字符串
//String(String original)
//		创建的是一个参数字符串的副本(参数字符串是在常量池中存的,构造方法创建的字符串是在堆内存中的)
//		笔试题常见 
		String str1 = new String("java");//堆内存中//这边创建了两个对象
		String str2 = "java";//常量池中
		System.out.println(str1 == str2);//false
        System.out.println(str1.equals(str2));//true//两个字符串内容相同
		
		String str3 = "ja" + "va";//常量优化机制
		System.out.println(str2 == str3);//true
		String str4 = "ja";
		String str5 = "va";
		String str6 = str4 + str5;
		System.out.println(str2 == str6);//false
		
//		String(byte[] bytes)将字节数组转成字符串
		byte[] bytes = {56,78,99,97,100};
		String strs1 = new String(bytes);
		System.out.println(strs1);//8Ncad
		
		
//		String(byte[] arr,int offset,int length)将字节数组的一部分转为字符串
		byte[] bytes1 = {97,98,99,100,101};
		String strs2 = new String(bytes1,2,3);
		System.out.println(strs2);//cde
		
		
//		String(char[])将字符数组转成字符串
		char[] chs1 = {	'a','j','a','v','a'};		
		String strch1 = new String(chs1);
		System.out.println(strch1);//ajava
		
//		String(char[] chs,int offset,int length)将字符数组的一部分转成字符串
		char[] chs2 = {	'l','o','v','e','a'};		
		String strch2 = new String(chs2,2,2);
		System.out.println(strch2);//ve
        
        String str = "I love java I love java";
//		length()	获取字符串字符的个数
		System.out.println(str.length());
// 		charAt(int index)返回调用者字符串中索引为index的字符,和length方法结合就能够得到调用者字符串中的每一个字符
		char charAt = str.charAt(0);
		System.out.println(charAt);
		for (int i = 0; i < str.length(); i++) {
			System.out.println(str.charAt(i));
		}
        
//		byte[] getBytes():将当前字符串,转成字节数组
		String str1 = "中国fasdf灬行文";
		byte[] bytes = str1.getBytes();
		printByte(bytes);
		
		byte[] bytes1 = {-42 ,-48 ,-71 ,-6};
		String str2 = new String(bytes1);
		System.out.println(str2);
		
//		char[] toCharAarray():将当前字符串转成字符数组
		char[] charArray = str1.toCharArray();
		for (int i = 0; i < charArray.length; i++) {
			System.out.println(charArray[i]);
	}
}

String类型的其他方法

1、replace(char oldChar, char newChar) 
          返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
2、trim():去掉字符串两边的空格和制表符

猜你喜欢

转载自blog.csdn.net/qq_41401295/article/details/106519557