0813

本文详细介绍了Java中类库的概念,包括JDK提供的库、自封库及第三方库的使用方法。同时,深入探讨了Object类的功能,如hashCode(), toString(), equals()等,并对比了equals()与==的区别。此外,还讲解了Scanner类和String类的使用,包括构造方法、常见方法及注意事项。

0813

类与库


1、jdk提供的
2、自己封装的
3、第三方的库(一般需要收费)

类库
就是把java文件编译成 .class ,然后变成jar,提供用户使用

引入第三方库步骤
1、下载jar (导入到工具类)
2、在项目里新建一个文件夹 lib jar 包放入到lib
3、添加项目依赖
4、使用
查看源码快捷键:按住 Ctrl 然后单击该单词

api

Object

导包(java.lang)(一个类里导一次就好)
描述
1、所有类的直接爸爸或者间接爸爸都是Object
2、如果这个类没有父类,也没有继承Object,系统会默认继承
3、Object类调用不了父类的super()构造

常用的基本方法

返回该对象的哈希码值:public int hashCode()
1、如果是同一个对象,两次调用 hashCode() 返回的哈希码值是一样的
2、两个对象的哈希值一样,并不一定是同一个对象
3、把哈希值转换为16进制:Integer.toHexString(obj.hashCode())

返回此 Object 的运行时类,描述类的信息:public final Class<?> getClass()
返回当前类的完成的包名 + 类名:public String getName()
返回一个“以文本方式表示”此对象的字符串:public String toString()
返回当前类的完成的包名+类名:getClass().getName()
默认 toString() 的返回值没有任何意义,需要重写:一般是得到这个类的成员属性的值(快捷键是 Alt+insert)

比较的引用对象(比较的是两个引用数据类型的地址):public boolean equals(Object obj)
需要重写这个 equals(Object obj) 方法,这样才有具体的意义

==与equals()
相同点:都可以做比较(做引用数据类型的比较)
不同点:
“==”是基本数据类型的话比较具体的值,是引用数据类型的话比较内存地址
“equals ()” 只能比较引用数据类型的内存地址(一般都会进行重写)

Scanner 类

1、导包java.util
2、System.in 输入流对象(从键盘获取你输入的数据)
3、构造:Scanner (InputStream source)

常规的方法

nextInt()、nextBoolean、nextDouble、nextByte()等(基础数据类就没有 nextChar())
若接收的值与键盘输入的值不匹配:java.util.InputMismatchException
可以通过判断来解决:public boolean hasNextInt()
读取的一行的记录:nextLine()
注意:

Scanner input = new Scanner(System.in);
int num = input.nextInt();
System.out.println(num);
String num1  = input.nextLine();
System.out.println(num1);

会产生一个错误:直接结束(把回车键(\r\n)当成字符读取)
解决:1、重新来实例化Scanner类
2、把接收int类型的转换为String类型( String 类型比 int 类型操作方便)

String类

1、它是一个字符串 是一个引用数据类型
2、在java.lang下,不需要进行导包
3、字符串字面值:也就是 String str=“aaaa”
4、字符串字面值是存在方法区里的字符串常量池里
5、符串是常量;它们的值在创建之后不能更改(不能改变的就是具体的值,而引用地址是可以改变)可以实现数据共享

构造方法 3+1
1、空的构造:public String()
2、public String(byte[] bytes)
3、public String(char[] value)
4、String str=“abc”
总结:字符串字面值都是存在方法区里的常量池里,如果新建一个字符串字面值,都会先去常量池里查找是否存在,如果存在,直接把地址指向新建的,不存在重新开辟空间存

String 常规的方法分三类
判断性

判断两个字符串是否相等:str1.equals(str2)【一般放在输出语句里面,或者用于if()里】
判断字符串是否包含此字符:str.contains(“a”)
判断字符串的后缀:str.endsWith(“java”)
判断字符串的前缀:str.startsWith(“java”)
判断两个字符串切忽略大小写:str1.equalsIgnoreCase(str2)
进行非 null 验证:str.isEmpty()

获取性

根据索引来获取字符串相对应的值(索引是从0开始的):str.charAt(0)
返回字符串的长度:str.length()
返回字符串第一次出现的索引值(找到返回值的输出索引值,找不到返回值得输出-1):str.indexOf(“3”) 【小括号里必须加"",否则找不到】
截取字符串(包头不包尾):str.substring(0,2) 【数字代表其索引,而不是第几位】
根据什么进行拆分:

        String str="我爱你中国";
        String [] arr =str.split("");
        for (String str1:arr){
            System.out.println(str1);
        }

【若想把一句话拆分成一个个的字,就根据空串拆分("")就好】

转化性

将一个字符串转换成一个字节数组:

String str="abcdefg";
        byte[] arr=str.getBytes();
        for (byte by:arr){
            System.out.println(by);
        }

结果为:

97
98
99
100
101
102
103

返回一个新的字符(第一个参数是需要替换的字符,第二参数是插入的字符):public String replace(char oldChar,char newChar)

String str="abcd";
System.out.println(str.replace("d","z"));
//结果为:abcz

把字符串转换成大写:str.toUpperCase()
把字符串转换成小写:str.toLowerCase()
去掉前后的空格:str.trim()【只能去掉整个字符串前面或者后面的,不能去除字符串中间的】
把int类型转换成String 类型(这是静态的方法,基本数据类型之间的相互转换)):

String str="abcd";
System.out.println(str.valueOf("100"));

【输出为:100。即无论前面的字符串定义是什么,都会将他改变为valueOf()括号里面的内容。】
把字符串转换成一个char的数组:str.toCharArray()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值