spring是近年来很火的一项开发技术,从而使得面试的时候面试官经常问到相关于spring等问题,也可以这么说,你会不会spring技术?你能不能在面试的时候完整的回答有关spring面试题,就决定了你能不能被录取,能不能拿高薪~~~哈哈哈,说的有点大了,面试的时候我们不仅仅要掌握spring相关技术知识点,还要掌握其他技能:分布式、线程池、jvm、等大厂面试必问的技术知识点。
那么 ,以下内容就是我给大家罗列了一下15道大厂高频spring面试题,我绝对敢和你们打赌,有百分之95以上的人答不上来。我跟你们赌一包辣条,你们敢的话可以跟我赌~~~~~
1、下面程序的运行结果是()(选择一项)
String str1="hello";
String str2=new String("hello");
System.out.println(str1==str2);
答案:B
分析:str1没有使用new关键字,在堆中没有开辟空间,其值”hello”在常量池中,str2使用new关键字创建了一个对象,在堆中开辟了空间,”==”比较的是对象的引用,即内存地址,所以str1与str2两个对象的内存地址是不相同的
2、Java语言中,String类中的indexOf()方法返回值的类型是()
3、给定以下代码,程序的运行结果是 ()(选择一项)
public class Example {
String str=new String("good");
char [] ch={'a','b','c'};
public static void main(String[] args) {
Example ex=new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
答案:B
分析:在方法调用时,在change方法中对str的值进行修改,是将str指向了常量江池中的”test ok”,而主方法中的ex.str仍然指向的是常量池中的”good”。字符型数组在方法调用时,将主方法中ex.ch的引用传递给change方法中的ch,指向是堆中的同一堆空间,所以修改ch[0]的时候,ex.ch可以看到相同的修改后的结果。
4、执行下列代码后,哪个结论是正确的()(选择两项)
String[] s=new String[10];
分析: 引用数据类型的默认值均为null
s.length数组的长度
5、实现String类的replaceAll方法
思路说明:replaceAll方法的本质是使用正则表达式进行匹配,最终调用的其实是Matcher对象的replaceAll方法。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestStringReplaceAll {
public static void main(String[] args) {
String str = "a1s2d3f4h5j6k7";
// 将字符串中的数字全部替换为0
System.out.println(replaceAll(str, "\\d", "0"));
}
/**
* @param str:源字符串
* @param regex:正则表达式
* @param newStr:替换后的子字符串
* @return 返回替换成功后的字符串
*/
public static String replaceAll(String str, String regex, String newStr) {
Pattern pattern = Pattern.compile(regex);
Matcher mathcer = pattern.matcher(str);
String reslut = mathcer.replaceAll(newStr);
return reslut;
}
}
6、在“=”后填写适当的内容:
String []a=new String[10];
则:a[0]~a[9]=null;
a.length=10;
如果是int[]a=new int[10];
则:a[0]~a[9]= (0)
a.length= (10)
7、是否可以继承String类?
答:不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。
public final class String implements java.io.Serializable,
Comparable< String>, CharSequence
8、给定两个字符串s和t, 写一个函数来决定是否t是s的重组词。你可以假设字符串只包含小写字母。
public class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length())
return false;
int bit[] = new int[26];
for(int i=0;i<s.length();i++){
bit[s.charAt(i)-'a']++;
}
for(int i=0;i<s.length();i++){
if(--bit[t.charAt(i)-'a']<0)
return false;
}
return true;
}
}
9、String s=new String(“abc”);创建了几个String对象。
两个或一个,”abc”对应一个对象,这个对象放在字符串常量缓冲区,常量”abc”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”abc”对象的内容来创建出一个新String对象。如果以前就用过’abc’,这句代表就不会创建”abc”自己了,直接从缓冲区拿。
10、输出结果?
String str1=“hello”;
Sring str2=“he”+new String(“llo”);
Sysem.out.println(str1==str2));
Sysem.out.println(str.equal(str2));
false
true
11、下列程序的输出结果是什么?
import java.util.*;
public class Test 6{
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
Integer k=new Integer(i);
System.out.println(k+" Hello world");
}
}
}
0 Hello world
1 Hello world
2 Hello world
3 Hello world
4 Hello world
5 Hello world
6 Hello world
7 Hello world
8 Hello world
9 Hello world
12、关于java.lang.String类,以下描述正确的一项是()
13、下面哪个是正确的()
14.已知如下代码:执行结果是什么()
package com.bjsxt;
public class Test {
public static void main(String[] args) {
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.print(s1 == s2);
String s3 = "Hello";
String s4 = "Hello";
System.out.print(s3 == s4);
s1 = s3;
s2 = s4;
System.out.print(s1 == s2);
}
}
15、字符串如何转换为int类型
public class Test {
public static void main(String[] args) {
//方式一
int num=Integer.parseInt("123");
//方式二
int num2=Integer.valueOf("123");
System.out.println(num+" "+num2);
}
}
16、写一个方法,实现字符串的反转,如:输入abc,输出cba
17、编写java,将“I follow Bill Gate.Tom Gate.John Gate”中的“Gate”全部替换为“Gates”
18、String 是最基本的数据类型吗?
19、String 和StringBuilder、StringBuffer 的区别?
20、String类为什么是final的
21、String类型是基本数据类型吗?基本数据类型有哪些
22、String s="Hello";s=s+"world!";执行后,是否是对前面s指向空间内容的修改?
23、String s = new String("xyz");创建几个String Object?
24、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
。。。。。。。。。。。。。。。。。。。。。。。。。。等
时间不够,下期继续更新面试问题!
关注 + 收藏 + 点赞 = 找我不费事!
不管你是初学者,还是有经验的程序员都可以看视频巩固学习。适合准备入行开发的零基础员Java>>>,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。
每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。