一、笔记
1、Api
定义:应用程序接口(帮助文档)
接口:用于规定方法名称的规则的集合。
api:需要查看源码(快捷键:ctrl+鼠标左键),学者去模仿
库:
1.jdk 提供的
2.自己封装的
3.第三方的库:步骤:1.下载jar (导入到工具类)
2.在项目里新建一个文件夹 lib jar 包放入到lib
3. 添加项目lib
4. 使用
类库: 就是把java文件编译成.class,然后打包生成jar包,导入jar包就可以使用jar包的全部类型,各种包就合成一类库。
2.Object类
导包java.lang(只要值这个包下面的都不需要进行导包)
描述:
1.所有类的直接爸爸或者是间接爸爸都是Object
2.如果这个类没有父类, 也没有继承Object,系统会默认继承
3. Object 类 调用不了父类的super()构造
构造方法: 无参构造方法
常用的基本方法:
public int hashCode() 返回该对象的哈希码值
1. 如果是同一个对象, 两次调用 hashCode() 返回的哈希码值 是一样的
2. 两个对象的哈希值一样并不一定同一一个对象
3. Integer.toHexString(obj.hashCode()) 把哈希值转换为16进制
getClass()方法
public final Class<?> getClass() 返回此 Object 的运行时类,描述类的类的信息
其实存的是一些字节码文件
getName()方法
public String getName() 返回当前类的完成的包名+ 类名
toString方法
public String toString() toString 方法会返回一个“以文本方式表示”此对象的字符串
1.没有重写之前: toString返回值的介绍 : getClass().getName() + "@" + Integer.toHexString(hashCode()
getClass().getName() 返回当前类的完成的包名+ 类名
Integer.toHexString(hashCode()) 把哈希值转换为16进制
2..默认toString()返回的没有任何意义,所有需要重写: 一般重写是得到 这个类的成员属性的值 快捷键是 Alt+insert
equals方法
public boolean equals(Object obj) 要与之比较的引用对象 (比较的是两个引用数据类型的地址是否一样
没有重写之前:这个方法最后还是== 进行比较的
== 与 equals()的区别:
相同点: 都可以做比较(做引用数据类型的比较)
不同点: == 如果是基本数据类型比较的是 具体的值, 如果是引用数据类型比较的是内存地址
equals() 只能比较引用数据类型的地址值(一般都要进行重写)
3.Scanner类
- 导包java.util
- System.in 输入流对象(从键盘获取你输入的数据)
构造:Scanner(InputStream source)
实例化一个对象 的步骤:
1. 导包 2.实例化 类名 对象名 =new 类名() 3.对象名.方法名() 对象名.属性
常规的方法:
nextInt() nextBoolean nextDouble nextByte() nextDouble(基础数据类就没有 nextChar())
方法出错:类型不对应
java.util.InputMismatchException : 错误原因: 因为接收的值与你键盘输入的值不匹配
public boolean hasNextInt() 判断来解决以上的问题
接收字符串的两个方法:
next()
nextLine() 读取的一行的记录
产生错误:
原因:
把回车键(\r\n) 当成字符读取,所有直接结束
解决:
- 重新来实例化Scanner类
- 把接收int类型的转换为String类型(String 类型比int 类型操作方便)
4.String类
概述:
1.它是一个字符串 是一个引用数据类型
2.在java.lang下,不需要进行导包
3.字符串字面值是存在方法区里的字符串常量池里
4.符串是常量;它们的值在创建之后不能更改(不能改变的就是具体的值,而引用地址是可以改变)可以实现数据共享
内存图的分析:
总结:字符串字面值都是存在 方法区里的常量池里,如果新建一个字符串字面值,都会先去常量池里查找是否存在,如果存在,直接把地址指向新建的,不存在重新开辟空间存.
String 常规的方法分为三类:
1.判断功能:
1.equals(Object anObject) 判断两个字符串是否相等:
2.boolean contains(CharSequence s) 判断字符串是否包含此字符
3.boolean endsWith(String suffix) 判断此字符串的后缀结尾
4.startsWith(String prefix) 判断字符串的前缀
5.public boolean equalsIgnoreCase(String anotherString) 判断两个字符串忽略大小写
6.public boolean isEmpty() 进行非空验证
2.获取功能:
1. public char charAt(int index) 根据索引来获取字符串相对应的值,索引是0 开始的
2. public int length() 返回的是字符串的长度
3. public int indexOf(int ch) 返回字符串第一次出现的索引值(找到返回的是索引值,找不到返回的是-1)
4.public String substring(int beginIndex,int endIndex):获取指定索引范围的字符串 (包头不包尾) (beginIndex 开始的索引,endIndex 结束的索引 )
5.public String[] split(String regex) 根据什么进行拆分
3.转换功能:
1.public byte[] getBytes() 将一个字符串转换成一个字节数组
2.public String replace(char oldChar,char newChar)返回一个新的字符,第一个参数是需要替换的字符 第二参数是插入的字符
3.public String toUpperCase(Locale locale) 把当前字符串转换成大写
4.public String toUpperCase(Locale locale) 把字符串转换成小写
5.public String trim() 去掉前后的空格
6.public static String valueOf(int i)把int类型转换成String类型,这是一个静态的方法(基本数据类型之间相互转换)
7.public char[] toCharArray() 把字符串转换成一个char的数组
二、总结
第十一天的学习,今天学习了API,没接触前以为学习起来很简单,就是查查帮助文档就行了,但是实际要用起来却比想象中的要难,而且还要理解其用法才能真正的运用起来,API要用多久才能把你干掉。还要继续努力为挣钱蓄力啊。