Java总结 DAY11 0813 Vimcelia

类与库

库的来源:

1.jdk自身提供的;
2.自己封装的;
3.第三方提供的库(收费);

类库:

类库是指把java文件编译成class文件,然后打包成为 jar 文件供人使用.

引入第三方库步骤 :

1.下载jar (导入到工具类)
2.在项目里新建一个文件夹 lib ,把下载好的 jar 包放入到lib文件夹;
3. 添加项目依赖
4. 使用该库

Object

描述:

1.所有类的直接父类或者是间接父类都是Object ;
2.如果这个类没有父类,也没有继承Object,系统会默认继承;
3. Object 类调用不了父类的super()构造(Object没有父类)
4.构造方法: 无参构造方法

 public  Object(){
	}
常用的基本方法:
public int hashCode()

1.如果是同一个对象,两次调用 hashCode() 返回的哈希码值是一样的;
2.两个对象的哈希值一样并不一定是同一个对象(内存地址不同);
3.把哈希值转换为16进制

Integer . toHexString (obj. hashCode ( ) )   
public final Class<?> getClass()

返回此 Object 的运行时类描述类的信息,实际上存的是一些字节码文件。

public String getName()

返回当前类的完成的包名+ 类名

public String toString() toString

方法会返回一个“以文本方式表示”此对象的字符串

注意点:

默认toString()返回的没有任何意义,所有需要重写: 一般重写是得到这个类的成员属性的值(快捷键是 Alt+insert)

public boolean equals(Object obj)

要与之比较的引用对象 (比较的是两个引用数据类型的地址是否一样),返回值是true或者false,查找源代码发现equals实际上在最底层也是运用恒等于(==)来对比的;同时在正常使用的时候需要重写这个 equals(Object obj) 方法,那样才有具体的意义

恒等于(==) 与 equals( )

相同点: 都可以做比较(做引用数据类型的比较)
不同点:
1.恒等于(==)如果是基本数据类型比较的是具体的值, 如果是引用数据类型比较的是内存地址;
2.equals( ) 只能比较引用数据类型的地址值(一般都需要进行重写)

Scanner 类

1.导包java.util
2.System.in 输入流对象(从键盘获取你输入的数据)

构造:
	Scanner(InputStream source) 
实例化一个Scanner类对象的步骤

1.导包

import java.util.Scanner;  

2.实例化 类名 对象名 =new 类名()

Scanner input=new Scanner(System.in); 

3.对象名.方法名() 对象名.属性

Scanner类常规的方法:

nextInt()
nextBoolean()
nextDouble()
nextByte() …
注意:基础数据类就没有 nextChar( )
需要使用

	char ch=scanner.next().indexOf(0);
Scanner提示错误的原因:
java.util.InputMismatchException;

错误原因: 因为接收的值与你键盘输入的值不匹配

public boolean hasNextInt()  

判断来解决以上的问题

接收字符串的两个方法:
 next()    
 nextLine()  (读取的一行的记录) 
输入时无法连续输入两次:

原因是:系统把回车键(\r\n) 当成字符读取,因此所有直接结束;
解决方法:
1.重新来实例化Scanner类
2.把接收 i n t 类型的转换为 S t r i n g 类型 (S t r i n g 类型比 i n t 类型操作方便)

String :

1.它是一个字符串,也是是一个引用数据类型;
2.在java.lang下,不需要进行导包;
3.字符串赋值值 :也就是 String str=“aaaa”
4. 字符串是存在方法区里的字符串常量池里;
5.符串是常量;

它们的值在创建之后不能更改(不能改变的是具体的值,而引用地址是可以改变),可以实现数据共享

构造方法:

1.空的构造 public String()
2.public String(byte[] bytes)
3.public String(char[] value)
4.String str=“abc”(直接赋值)

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

判断两个字符串是否相等

equals(Object anObject) :

判断字符串是否包含此字符

boolean contains(CharSequence s) 

判断此字符串的后缀结尾

boolean endsWith(String suffix) 

判断字符串的前缀

boolean startsWith(String prefix)

判断两个字符串忽略大小写

public boolean equalsIgnoreCase(String anotherString)

进行非 null 验证

public boolean isEmpty()    
获取性

根据索引来获取字符串相对应的值,索引是从0 开始,到字符长度-1为止

public char charAt(int index)     

返回的是字符串的长度

public int length()     

返回字符串第一次出现的索引值(如果找到返回的是索引值,找不到返回的是-1)

public int indexOf(int ch)

包头不包尾 , beginIndex是 开始的索引 endIndex 是结束的索引

public String substring(int beginIndex,int endIndex)  

根据给定的条件进行拆分

public String[] split(String regex)  
转化性

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

public byte[] getBytes()   

返回一个新的字符( 第一个参数是需要替换的字符, 第二参数是插入的字符)

public String replace(char oldChar,char newChar)     

把当前字符串转换成大写

public String toUpperCase(Locale locale) 

把字符串转换成小写

 public String toUpperCase(Locale locale)

去掉前后的空格

 public String trim()  

把int类型转换成String 类型,这是一个静态的方法(基本数据类型之间相互转换)

 public static String valueOf(int i)

把字符串转换成一个char的数组

public char[] toCharArray()  

总结

今天总体来说学的是JAVA的api中的多种比较常见的方法,特别是String类的方法,通过调用各种方法来对相应的字符串进行 操作,但是在实际使用上,如果第一时间不能理清逻辑,脑袋里面想到相应的方法的话,会卡在原地很久,希望能够在之后几天的api学习里面更好的克服这个问题吧

疑问

1.怎么能够使用Api查找到自己想要的方法,有通过中文索引找到方法的吗?
2.在api查找方法过程中,遇到很多觉得实用的函数,但是实际上有很多参数不懂应该传入什么值?
3.测试类和方法类中应该什么时候放进循环和判断很难选择,这个时候如何更好的优化代码?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值