1月14号内容

一.昨日回顾
1)面向对象思想的特点?
1)更符合生活中思想行为习惯
2)将复杂的事情的简单化
3)角色发生变化(从执行者变成指挥者)
举生活中的例子:

2)String类的特点是什么?
1)String:不可变的字符序列
2)String是一个常量,一旦被赋值,其值不能被更改! 是一种特殊的引用类型!
String类型的数据作为形式参数,形参的改变对实际参数没有影响!
3)String类常用的构造方法有几种?
String() 空参
String(String s) :给定一个字符串常量 相当于 String s = “abc” ;
String(bytes[] byte) 将字节数组构造成一个字符串对象
String(bytes[] bytes,int offset,int length):将字节数组的一部分构造成字符串对象
String(char[] chs) :将字符数组构造成字符串对象
String(char[] chs,int offset,int length) :将字符数组构造成一个字符串对象
4)有关 Object类中equals方法以及toString()方法描述什么意思.
toString(): 描述任意Java类的对象的地址值 :当前类的全限定名称 +@+十六进制字符串形式
如果没有重写Object类中的toString(),输出对象名称,打印出来就是地址值,建议子类都要重写该方法
重写之后,输出当前对该对象的信息描述(成员变量的信息)
eqauls方法:
底层源码
public boolean equals(Object obj){
return (this == obj) ;
}
默认比较的是两个对象的地址值是否相同, 重写该方法,
比较的是两个对象的内容(成员变量信息)是否相等

Object的toString的底层源码
this.getClass().getName()+"@"+Integer.toHexString(this.hashCode()) ;
package com.qianfeng
class Student{}
Student s = new Student() ; 如果输出s对象名
   com.qianfent.Student@十六进制数据的字符串形式

二.方法
Object类:
public int hashCode() (了解):
返回该对象的哈希码值,不是实际的地址值,但是和地址值相关(可以理解为地址值),通过底层的哈希表得出来的(哈希算法);
public final Class getClass() :
返回当前对象的运行时类(字节码文件)
public String getName():
返回当前字节码文件对象所表示的字符串表现形式(具体哪个类或者接口…)
public String toString():
返回该对象的字符串表示,返回一个“以文本方式表示”此对象的字符串.建议所有子类都重写此方法;
public boolean equals(Object obj):
指示其他某个对象是否与此对象“相等”。
Scanner类:
Scanner类中提供一个判断功能:
public boolean hasNextXXX() :
判断是否录入的是该XXX类型的数据
public XXX nextXXX() :
接收指定的类型
String类:
String中常用的构造方法:
public String():
空参构造;
public String(byte[] bytes) :
将一个字节数组构成成一个字符串对象;
public String(byte[] bytes, int offset,int length):
将字节数组的一部分内容转换成字符串,参数:offset:指定索引,参数length:指定长度
public String(char[] value) :
将字符串数组构成字符串内容;
public String(char[] value,int offset,int length):
将字符数组的一部分构成成字符串;
public String(String original):
将一个字符串常量构造成一个字符串对象;
String类中获取功能的方法:
public int length() :
返回此字符串的长度;
public char charAt (int index) :
返回指定索引处的字符值;
public int indexOf (String str) :
返回指定子字符串第一次出现在该字符串内的索引;
public int indexOf (int ch) :
返回指定字符第一次出现在该字符串内的索引;
public static String valueOf(基本数据类型int 变量名a):
将一个int类型转换成字符串;
valueOf(Object obj):
可以将任意的java数据类型转换字符串内容;
public String substring (int beginIndex) :
返回一个子字符串,从指定索引开始默认截取字符串末尾;
public String substring (int beginIndex, int endIndex) :
返回一个子字符串,从指定位置开始截取到,指定位置结束。含beginIndex,不含endIndex;
public String concat (String str) :
拼接功能;
String类中字符串的转换功能:
public byte[] getBytes():
将字符串转换成字节数组;
public char[] toCharArray():
将字符串转换成字符数组 (当前转换功能开发中使用居多);
valueOf(Obejct obj):
将其他数据转成字符串;
public String toUpperCase():
将指定的字符串转换成大写;
public String toLowerCase():
将指定的字符串转换成小写;
String类的其他功能:
public String replace(char oldChar,char newChar):
将字符串中的指定的字符替换成新的字符
public String replace(String oldStr,String newStr):
替换指定字符串
public String trim():
去除字符串的两端空格;
public int compareTo(String anotherString):
按字典顺序比较两个字符串;
StringBuffer类:
StringBuffer:
线程安全的可变字符序列!
StringBuilder类:
单线程程序中,会使用StringBuilder替代StringBuffer,执行效率高! (线程不安全的)
StringBuffer:
线程安全的:线程安全------> 同步 ------> 执行效率低
StringBuilder:
线程不安全----->不同步----->执行效率高
StringBuffer的构造方法:
public StringBuffer() :
创建一个字符串缓冲区(足够大,无限制的添加字符串内容),没有任何字符串,初始容量为16个字符
public StringBuffer(int capacity):
直接指定具体的字符串缓冲区的容量大小
public StringBuffer(String str):
构造一个带内容的字符串缓冲区,容量为16+当前str的长度 (常用)
获取功能:
public int length() :由于字符串缓冲区StringBuffer存储都是字符串内容,获取字符缓冲区中的长度,就是获取字符串长度! (实际值)
public int capacity():理论值(超过一定容量,系统会自动分配)
StringBuffer的添加功能:
public StringBuffer append(String str) :(开发中使用居多)
在字符串缓冲区中追加内容 ,返回StringBuffer本身(在字符串缓冲区中的末尾追加)
public StringBuffer insert(int offset,String str):
在指定的位置索引处,插入一个指定的字符串 (在指定的位置插入数据)
StringBuffer的删除功能
public StringBuffer deleteCharAt(int index):
删除指定索引处的字符,返回缓冲区本身
public StringBuffer delete(int start, int end):
删除从指定位置开始到指定位置结束的字符(包前不包后),返回缓冲区本身
StringBuffer的反转功能:
public StringBuffer reverse() :
将此字符串缓冲区中的字符串内容反转
StringBuffer的替换功能:
public StringBuffer replace(int start,int end, String str):
从指定位置开始到指定位置结束替使用当前str替换内容,返回自己本身
截取功能:
public String substring(int start,int end):
从指定位置截取到指定位置结束(包前不包后)返回的一个新的字符串
public String substring(int start)
Integer类:
1)快速计算出: 100对应的二进制数据,八进制数据,十六进制数据
通过Integer类的静态功能:
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
2)int类型的范围
Integer类存在一些成员变量(字段)
public static final int MIN_VALUE:最小值
public static final int MAX_VALUE:最大值
JDK提供的核心类:Integer 是int类型的包装类类型
为了方便基本类型和引用类型 类型转换,引出 关于基本数据类型的包装类类型
实际开发中
已知一个String类型数据 ,— 基本类型的包装类类型 ----> 基本类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
Integer构造函数
Integer(int value) :
将int类型构造成Integer类型
Integer(String s) :
将字符串构造成Integer类型
String的静态功能:valueOf(int i) /Integer的静态功能toString(int i)
String类型转int类型:
1)拼接:
举例:String s=""+1;
2)String类型的 valueOf(int i):
举例:String s2 = String.valueOf(i) ;
3)Integer类型的方法:
String s3 = Integer.toString(i) ;
int类型转String类型:
1)Integer的构造函数
举例:Integer integer = new Integer(String str) ;
2)Integer中的静态intValue:
举例:int num = integer.intValue() ;
3)Integer的静态功能:(此方法在别的数据类型中也可以用)
举例:int num2 = Integer.parseInt(String str) ;
切割:public String[] split(String regex) ; (自己定义按什么分割)
面试题:
1)StringBuffer和StringBuilder的区别?
共同点:都是可变的字符序列
前者:是一个线程安全的类, 同步的,线程角度来说,执行效率低
后者:是一个线程不安全的类,不同步的,线程角度来说,执行效率高
在单线程程序中,StringBuilder用来替代StringBuffer
2)StringBuffer和数组都属于容器,有什么区别?
StringBuffer:构造的是一个字符串缓冲区,里面存储的内容都字符串内容,可变的字符序列,它的长度可以变化的!
数组:存储元素必须是同一种数据类型 int[] arr = {int类型的元素…} ;
数组的长度是固定的,不支持可变的!
String:特点 一旦被赋值,其值不能改变!不支持可变的!
3)StringBuffer和String类型作为形式参数有什么区别?
String是一种特殊的引用类型,它作为形式参数和基本数据类型作为形式参数是一样的!(经常会出现在面试题中!)
StringBuffer它作为形式参数,和引用类型一样,形式参数的改变直接影响实际参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值