String类/Object类/包装类

String类

1 == 和 equals 的区别

==

equals

进行数值比较,比较的是两个字符串对象的内存地址数值

进行字符传内容比较

2 String类中两种对象实例化的区别

直接赋值

构造方法

只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用

会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()方法手工入池

3 String、StringBuffer、StringBuilder的区别

String

StringBuffer

StringBuilder

内容不能修改

内容能修改

 

采用同步处理,属于线程安全操作

采用异步处理,属于线程不安全操作

4 String类方法

字符数组->字符串

字符串->字符数组

String->StringBuffer

StringBuffer->String

charAt()

toCharArray()

StringBuffer的构造方法

toString()

String类构造方法

 

append()

 

字符串比较

字符串查找

字符串替换

字符串拆分

字符串截取

其他方法

equals()(区分大小写)

contains()

replaceAll()

split()

substring()

trim() (去掉字符串左右空格)

equalsIgnoreCase()(不区分大小写)

indexOf()/lastIndexOf()

replaceFirst()

 

 

toUpperCase()/toLowerCase() (转大小写)

compareTo()

startsWith()/endsWith()

 

 

 

intern() (入池)

 

 

 

 

 

concat() (连接字符串)

 

 

 

 

 

length() 

 

 

 

 

 

isEmpty() (字符串判空)

5 判断一个字符串是否由数字组成

public static boolean isNumber(String str){
    char[] data = str.toCharArray();
    for(int i=0; i<data.length; i++){
        if(data[i] < '0' || data[i] > '9'){
            return false;
        }
    }
    return true;
}

public static void main(String[] args){
    String str = "abc1234";
    System.out.println(isNumber(Str) ? "字符串由数字组成" : "字符串中含非数字元素");
}

6 字符串首字母大写

public static String firstUpper(String str17){
    if("".equals(str17) || str17 == null){
        return str17;
    }
    if(str17.length()>1) {
        return str17.substring(0, 1).toUpperCase() + str17.substring(1);
    }
    return str17.toUpperCase();
}

public static void main(String[] args){
    System.out.println(firstUpper("shuxue"));
    System.out.println(firstUpper(""));
    System.out.println(firstUpper("a"));
}

Object类

Object类接收所有类的对象

1 Object类的方法

无参构造

取得对象信息

对象比较

Object()

toString()

equals()

Java中所有数据类型只要遇见String并且执行+,所有对象默认使用toString()方法变成字符串

2 Object可接收所有引用数据类型,包括类、数组、接口

//接收数组
Object obj = new int[]{1,2,3};
int data = (int[])obj;
//接收接口
IMessage msg = new MessageImpl();  //向上转型
Object obj = msg;   //打印出接口地址

包装类

包装类处理基本数据类型

1 分类

对象型包装类(Object的直接子类)

数值型包装类(Number的直接子类)— 存在数值转换异常

Boolean(boolean)、Character(char)

Byte(byte)、Short(short)、Long(long)、Double(double)、Float(float)、Integer(int)

2 手工装/拆箱

装箱

拆箱

基本数据类型->包装类对象

将包装类中包装的基本数据类型值取出

包装类提供的构造方法

Number类提供的intValue()方法

3 字符串与基本类型互相转换

字符串->int

字符串->double

字符串->boolean

基本数据类型->字符串

Integer.parseInt()

Double.parseDouble()

Boolean.parseBoolean()

String.valueOf() / ""+数据类型

4 定义int类型的包装类

class IntDemo {

    private int num ;

    public IntDemo(int num) {

        this.num = num ;

    }

    public int intValue() {

        return this.num ;

    }

}

5 Integer var = ?在-127~128之间赋值,可以用==比较,除此之外用equals比较

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值