Java周记(四)

周一

1.常用类之Object (重点)

int hashcode():哈希码值(理解为"地址值",并非实际地址值) 了解
        1)public int hashCode():获取对象的hash码值--->支持散列表   (支持key-value键值对)
                       key     value
                         1      张三
                         2      李四
                         3      王五
                         4      高圆圆
                 hashCode()(哈希算法 hash table)"理解为地址值",   不是真实地址值,每一个对象的hash码值不同
                 
String toString():重点                 
          2)String toString():返回对象的字符串表示形式,结果应该是    一个更容易让人读懂的信息表达式(建议所有的子类都覆盖这个方法)
                   几乎Java所有类都会重写toString()方法
                  idea--->alt+ins---->toString
​
boolean equals(Object obj):比较两个数据(引用类型) 是否相等
        public boolean equals(Object obj):指定其他对象与此对象    是"相等"
    ==和equals()方法区别?
    ==:比较两个基本类型,数据值是否相等
    ==:连接是两个引用类型,比较的是地址值是否相等
    而Object的equals方法,默认比较的是两个引用类型的地址值是否相等,建议子类需要重写这个equals(),重写之后比较的是
    两个对象的成员信息是否相同!(Java中所有类都会重写!)    ,重写equals方法,必须同时重写hashCode()方法
    重写equals:比较每一个对象的成员信息是否相同 如果一样,还要比较每一    个成员信息 hashCode()哈希码值是否一样,如果都相同
    系统认为这个两个人是一样的!
    alt+ins--->equals and hashcode方法
    
clone():克隆
    Object的克隆方法
       protected Object clone() throws                           CloneNotSupportedException  创建对象并返回它的"副本"
             方法里面本身就会带有CloneNotSupportedException:克隆      不支持的异常(当要对某个Object的类进行克隆
             如果这个类不能实现cloneable接口,那么就会出现这个异常)

2.Scanner类提供一个判断功能

构造方法

  • public Scanner(InputStream source) 创建键盘录入对象

  • 创建一个文本扫描器

  • Scanner 对象名 = new Scanner(System.in) ;

  • --->System类---变量名

  • public static final InputStream in

    成员方法:

  • nextXXX():获取功能

  • public int nextInt() :录入int类型

  • public String nextLine() ;录入String类型

    判断功能:

  • public boolean hasNextInt():判断录入的下一个数据是否为int类型,是,返回true,否则false

  • public boolean hasNextLine():判断录入的下一个数据为一行内容

    键盘录入的时候

  • 先录入int,在录入String ----nextLine() ,这块会出现被漏掉("回车符号")

  • 解决方案:

  • 1)在第一个录入int之后,重新创建一个新的键盘录入对象Scanner ,然后在使用nextLine()

  • 2)在录入String---- String next()

3.String以及StringBuffer(字符串缓冲区) (重点)

String类: 这个类final修饰不能被继承

  • 字符串是不变; 它们的值在创建后不能被更改(字符串是一个常量,存储在常量池中)

构造方法:

  • public String():空字符串 类似于 String s = "" ;

  • public String(String original):构造一个字符串对象,里面指定一个字符串常量值

  • public String(byte[] bytes) :使用平台默认字符集(idea默认utf-8)解析解码--->字节数组--->字符串

  • String(byte[] bytes, int offset, int length) :将一部分字节数组构造成字符串

  • public String(char[] value):将字符数组---构造成String

  • public String(char[] value,int offseet,int len):将一部分字符串数组构造成字符串

区别

String s = new String("hello") 和String s = "hello" ; 有什么区别?分别创建了几个对象?(面试题)

  • 前者:在堆内存中开辟空间,然后字符串值常量---指向常量池, 两个对象

  • 后者:推荐的方式,直接常量赋值,直接在常量池中找,有就返回地址,没有,开辟常量空间!

String类相关的获取功能

  • 1)public char charAt(int index) :获取指定索引处的字符

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

  • 3)public String concat(String str)拼接功能-- 将一个字符串拼接到指定字符串的后面(末尾追加)

  • 4)public String substring(int beginIndex):截取--->从指定位置开始截取,默认截取到末尾结束!

  • public String substring(int beginIndex, int endIndex) 截取--->从指定位置开始截取到指定位置结束

  • 包前不包后(包含第一个位置,不包含最后一个位置,只能取到endIndex-1处)

  • 5)public String[] split(String regex):拆分(分割) ,按照指定的分割符将字符串拆分成字符串数组

  • 6)public int indexOf(int ch) :返回此字符第一次在字符串中出现的索引值

  • public int lastIndexOf(int ch):返回此字符最后一次在字符串中出现的索引值

String类的转换功能(编码和解码必须一致,否则乱码)

  • 1)char[] toCharArray()   将字符串转换成字符数组

  • 2)byte[] getBytes()   平台默认字符集编码(String--->byte[]) 和

    byte[] getBytes(String charset):  指定的字符集进行编码

    String(byte[] bytes) :(bytes[]--->String )   平台默认字符集解码

    String(byte[] bytes,String charset) :(bytes[]--->String )   指定字符集解码

  • 3)public String toLowerCase():  将字符串转换成小写

    public String toUpperCase():  将字符串转换成大写

  • 4)万能方法: 可以将任何数据类型---->String

    public static String valueOf(int i/float....Object)

concat的用法 + substring()+转换功能---

  • 需求:给定一个字符串,输入"Hellowold" ,输出 "hELLOWORLD"

  • 1)可以录入字符串 s1

  • 2)将字符串的一个字符截取出来 s2

  • substring(0,1) -->"H"----->转换小写 toLowerCase()

    s1字符串 subString(1) ----> "ellowold"--->转换成大写 toUpperCase() --->s3

    2)和3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值