学到了技术之后要考虑的就是面试找工作的事情,这个问题困扰着很多人,今天就让我们扣丁学堂就Java面试题以及平时的练习题来做一个比较全面的讲解,由于时间原因,只能整理一部分供大家了解学习,有不详细不完整的地方还望指出并改正。
(1)A:请问Strings=newString("hello");创建了几个对象。
两个。一个"hello"字符串对象,在方法区的常量池;一个s对象,在栈内存。
B:请写出下面的结果
Strings1=newString("abc");
Strigns2=newString("abc");
Strings3="abc";
Strings4="abc";
sop(s1==s2);//false
sop(s1==s3);//false
sop(s3==s4);//true
C:字符串对象一旦被创建就不能被改变。
指的是字符串常量值不改变。
(2)字符串中各种功能的方法
A:判断
****booleanequals(ObjectanObject):判断两个字符串的内容是否相同,复写了Object的方法
****booleanequalsIgnoreCase(StringanotherString):判断两个字符串的内容是否相同,
不区分大小写
****booleancontains(Strings):判断一个字符串中是否包含另一个字符串
注意:判断字符串是否包含特殊字符.直接表示为str.contains(".")
booleanendsWith(Stringsuffix):测试此字符串是否以指定的后缀结束
booleanstartsWith(Stringsuffix):测试此字符串是否以指定的前缀开始
booleanisEmpty():测试字符串是否为空
B:获取
*****intlength():返回此字符串的长度
*****charcharAt(intindex):返回指定索引处的char值
*****intindexOf(intch):返回指定字符在此字符串中第一次出现处的索引。
intindexOf(intch,intfromIndex):返回在此字符串中第一次出现指定字符处的索引,
从指定的索引开始搜索。
intindexOf(Stringstr):返回指定子字符串在此字符串中第一次出现处的索引。
intindexOf(Stringstr,intfromIndex):返回指定子字符串在此字符串中第一次
出现处的索引,从指定的索引开始。
***intlastIndexOf(intch):返回指定字符在此字符串中最后一次出现处的索引。
intlastIndexOf(intch,intfromIndex)
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
intlastIndexOf(Stringstr)
返回指定子字符串在此字符串中最右边出现处的索引。
intlastIndexOf(Stringstr,intfromIndex)
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
*****Stringsubstring(intbeginIndex)(注意:该方法substring的String是小写!!!)
返回一个新的字符串,它是此字符串的一个子字符串。
Stringsubstring(intbeginIndex,intendIndex)(注意该方法的String是小写!!!)
返回一个新字符串,它是此字符串的一个子字符串,包含头不包含尾。
C:转换
*****byte[]getBytes():(很常用!)从字符串到字节数组的方法
voidgetChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)
将字符从此字符串复制到目标字符数组。
*****char[]toCharArray():(很常用!)从字符串到字符数组的方法
****staticStringcopyValueOf(char[]data)
返回指定数组中表示该字符序列的String。
staticStringcopyValueOf(char[]data,intoffset,intcount)
返回指定数组中表示该字符序列的String。
*****staticStringvalueOf(数据类型):把该数据类型的数据转换成字符串。
***StringtoLowerCase():把字符串转换成小写
StringtoUpperCase():把字符串转换成大写
***字符串的连接
Stringconcat(Stringstr):将指定字符串连接到此字符串的结尾。
D:替换
Stringreplace(charoldChar,charnewChar):用新字符替换旧字符(替换所有)
Stringreplace(Stringtarget,Stringreplacement):用新的子串换旧串
E:分割
String[]split(Stringregex):根据指定的字符串把一个字符串分割成一个字符串数组
F:
Stringtrim():去除字符串的前后空格
G:
intcompareTo(StringanotherString)
按字典顺序比较两个字符串。
intcompareToIgnoreCase(Stringstr)
按字典顺序比较两个字符串,不考虑大小写。
(3)练习
1:模拟登录,给三次机会,并提示还有几次.
默认的用户名和密码为admin。区分大小写。
自己从键盘输入用户名和密码。
2:给定一个字符串统计,统计大写字母,小写字母,数字出现的个数.
***注意:不包括特殊字符
从键盘输入一个不包含特殊字符的字符串(只有26个字母和0-9组成)。
3:给定一个字符串,把它变成首字母大写,其他字母小写的字符串.
从键盘输入一个字符串,全部26个字母组成的。
4:子串在整串中出现的次数。
也就是说:获取一个字符串中,指定的字串在该字符串中出现的次数.
例如:
"nbasdnbafllgnbahjnbakqqqqlnba"在这个字符串中,多有个nba.
5:对字符串中字符进行自然顺序排序。
"basckd"-->"abcdks"
先留做思考内容:
6:两个字符串的最大相同子串。
两个字符串的最大相同子串。
比如:
"sadabcdfghjkl"
werabcdtyu"
2:StringBuffer
(1)字符串的缓冲区,是一个容器。
(2)它和String的区别
它是缓冲区可变长度的。
(3)构造方法
StringBuffer()构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。
StringBuffer(intnum)构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(Stringstr)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
(4)常用方法
A:增加数据
**append:添加各种类型的数据
**insert:在容器指定位置插入各种类型的数据。
B:删除数据
**deleteCharAt:删除指定位置的字符
**delete还可以用于清空StringBuffer的缓冲区
C:替换
**replace
D:获取
**charAt
E:长度和容量
**length()元素的个数
**capacity元素的理论值
F:获取元素的位置
**indexOf
**lastIndexOf
G:截取
**substring(intstart)
**substring(intstart,intend)
H:反转
**reverse
(5)字符串和StringBuffer的转换
String-->StringBuffer通过构造:
如:StringBuffersb=newStringBuffer(Stringstr)
StringBuffer--String通过toString方法
如:StringBuffersb=newStringBuffer();
sb.toString();
3:StringBuilder
和StringBuffer的功能是一样的,但是有区别:
StringBuffer(JDK1.0)是线程安全的。
StringBuilder(JDK1.5)不保证线程安全。
一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。
JDK版本的升级原则:
A:提高效率
B:提高安全性
C:简化书写
4:基本数据类型的对象包装类
(1)为了更方便的操作每个基本数据类型,java对其提供了很多的属性和方法供我们使用。
(2)用途:
**将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能操作该数据。
**常用的操作之一:用于基本数据类型与字符串之间的转换。
A:方便操作
B:用于和字符串进行相互转换
(3)基本数据类型和对象类型的对应
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
(4)构造方法
字段摘要:
staticintMAX_VALUE值为2^31-1的常量,它表示int类型能够表示的最大值
staticintMIN_VALUE值为-2^31的常量,它表示int类型能够表示的最小值
staticClass<Integer>TYPE表示基本类型int的Class实例
Integer(intvalue)构造一个新分配的Integer对象,它表示指定的int值。
Inreger(Strings)注意:s必须是纯数字的字符串。否则会有异常NumberFormatException
(5)几个常用的方法
Integer.toBinaryString();
以二进制(基数2)无符号整数形式返回一个整数参数的字符串表示形式。
Integer.toOctalString();
以八进制(基数8)无符号整数形式返回一个整数参数的字符串表示形式。
Integer.toHexString();
以十六进制(基数16)无符号整数形式返回一个整数参数的字符串表示形式。
staticintInteger.parseInt(Strings)将字符串参数作为有符号的十进制整数进行解析,
字符串必须是int型范围内的数字字符串
staticintInteger.parseInt(Strings,intbasic)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数.
字符串必须是int型范围内的数字字符串
shortshortValue()以short类型返回该Integer的值。
intintValue()以int类型返回该Integer的值。
staticIntegervalueOf(intnum)返回一个表示指定的int值的Integer实例。
staticIntegervalueOf(Strings)返回保存指定的String的值的Integer对象。
staticIntegervalueOf(Strings,intradix)
返回一个Integer对象,该对象中保存了用第二个参数提供的基数进行
解析时从指定的String中提取的值。
以上就是针对于JAVA面试做出的详细的介绍以及知识点的整理,想要了解更多问题的小伙伴可以登录扣丁学堂的官网了解更多内容。扣丁学堂Java培训不仅有专业的老师和与时俱进的课程体系,还有大量的Java视频教程供学员观看学习哦。扣丁学堂java技术交流群:487098661。微 信 号:codingbb