API Object String StringBuffer/StringBuilder

1 什么是API

API(Application Programming Interface,应用程序接口) 是一些预先定义的函数.目的是提供应用

程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节.

API是一种通过功能集,有事公司会将API作为其公共开发系统,也就是公式指定自己的系统接口标准,当需要进行系统整合,自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码

2 Object

2.1 概念

Object类是所有java类的祖先,也就说我们所说的"顶级父类"

它存在于java.lang.Object,这个包不需要我们手动导包

需要注意的是:每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法.

在不明确给出超类的情况下,java会自动把Object类作为要定义类的超类

 

2.2 常用方法介绍

toString()

本方法用于返回对应对象的字符串表示

hashCode()

本方法用于返回对应对象的哈希码值

哈希码值的得出是通过一种算法,意在让不同的对象具有不同的哈希码值,用于区分不同的对象.

但是有时候也存在不同对象哈希码值相同的特殊情况,我们称之为"哈希碰撞"现象

equals()

本方法用于指示其他某个对象是否与当前对象"相等"

3 Sting

3.1 特点

String是一个封装char[]数组的现在,字符串不可变

通过下图中的底层实现可以看出:被final修饰,是常量

String str = "abc"; 等效于: char data[] = {'a','b','c'};

3.2 创建String对象的方式

方式一:

String(char[] value) 分配一个新的String,使其表示字符数组参数中当前包含的字符序列.

方式二:String str = "abc";

1.如果是第一次使用字符串,java会在字符串堆中常量池创建一个对象

2.再次使用相同的内容时,会直接访问堆中常量池中存在的对象.

3.3 常见方法

 

 

4 StringBuilder/StringBuffer

4.1 特点

1.封装了char[] 数组

2.是可变的字符序列

3.提供了一组可以对字符内容修改的方法

4.常用append()来代替字符串做字符串连接+

5.内部字符数组默认初始容量是16: super(str.length()+16);

6.如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充需要的

容量大小,int newCapacity = value.length*2+2;

7.StringBuffer 1.0出道线程安全,StringBuilder1.5出道线程不安全

5.1  ==和equals的区别

1.当使用==比较时,如果相比较的两个变量是引用类型,那么比较的是两者

的物理地址(内存地址),如果相比较的两个变量都是数值类型,那么比较的是具体数值是否相等.

2.当使用equals()方法进行比较时,比较的结果实际上取决于equals()方法的具体实现

众所周知,任何类都继承Object类,因此所有的类均具有Object类的特性,比如String,integr等,

他们在自己的类中重写了equals()方法,此时他们进行的是数值的比较,而在Object类的默认实现

中,equals()方法的底层是通过==来实现的.

5.2 StringBuilder和StringBuffer的区别

1.在线程安全上;

--stringBuffer是旧版本就提供的,线程安全的.@since JDK1.0

--StringBuilder是jdk1.5后产生的.@since 1.5

2.在执行效率上, StringBuffer>StringBuffer>String

3.源码体现:本质上都是在调用父类抽象AbstractStringBuilder来干活,只不过Buffer把代码加了同步

关键字,使得程序可以保证线程安全问题.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员黑马二代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值