Java基础面试题docWord格式文档下载.docx
- 文档编号:13747805
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:12
- 大小:37.88KB
Java基础面试题docWord格式文档下载.docx
《Java基础面试题docWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java基础面试题docWord格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
byteb4=3+4;
1第三行会出现问题。
如果是变量相加,首先会自动提升数据类型,然后再运算。
2第四行编译运行通过。
如果是常量相加,会直接计算,然后看运算的结果是否在其数据类型所能描述的范围内
、判断下列代码的第二行和第三行编译是否能通过?
并说明理由
shorts=5;
s=s+2;
//报错,变量s参与运算,会自动提升数据类型至int
s+=2;
//编译通过。
s+=2隐含了强制类型转换,相当于s=(short)(s+2);
五、请用高效的形式写出:
2*8
2<
<
3
六、如何交换两个变量?
①用第三方变量来做(开发做)inttemp=a;
a=b;
b=temp;
②用按位异或来做(面试做)按位异或的特性:
一个数据对另一个数据异或两次,又变回原本的值。
a=aAb;
b=aAb;
3用算术运算符
a=a+b;
b=a-b;
a=a-b;
七、写出下面程序的运行结果
classFu
//靈ts
static
{
system.out.printlncFU鄕eHfts^:
);
}
//隱窪>
l±
system.outprintlncFU^BftaM--);
public?
()
:
lassZi
•入、
system.out.printlncFU甚蹄^w=);
extendsFu
/L箔
•瓠、
system.outprintln(Ni®
^^ffiM:
"
构造代码块
System.out.println("
zi构造代码块"
publicZi()
System.out.printlnC'
zi构造方法"
classBlockCodeDemo2
publicstaticvoidmain(String[]args)
Ziz=newZi();
Ziz2二newZi();
如果子父类中都有静态代码块,构造代码块,构造方法,那么执行顺序为?
父类的静态代码块-->子类的静态代码块-->父类的构造代码块-->父类的构造方
法-->子类的构造代码块-->子类的构造方法
注意:
静态代码块只加载一次(.class字节码文件只加载一次的情况下)
Fu静态代码块zi静态代码块
Fu构造代码块
Fu构造方法
zi构造代码块
zi构造方法
Fu构造方法zi构造代码块zi构造方法
八、方法重载和方法重写有什么区别?
1方法重载:
同一个类中,出现方法名相同、参数列表不同的两个或多个方法时,
即构成方法重载。
2方法重写:
子父类间,出现一模一样的方法时,被称为方法的重写,或者复写、覆盖。
也就是要求返回值类型、方法名、参数列表都一致,
dayl2
九、如何理解字符串一旦初始化就不可以被改变。
Strings="
hello"
;
s+="
world"
System.out.println(s);
解释:
字符串一旦被初始化就不能被改变,说的不可以改变的是hello这个字符串在常量池中的值不可以被改变,而非s这个引用不能改变
十、si、s2有区别吗?
Stringsi=newString("
abcH);
在Sting常量池
Strings2="
abc"
答:
第一种方式:
在内存中存在两个对象,一个在堆内存中中;
第二种方式:
在内存中只有一个对象,在String常量池中,
i■—、length和length()这两个关键字的区别?
①它们都不是关键字
2length是属性,用来获取数组的长度
3length()是个方法,用来获取字符串的长度
十二、
1.publicstaticvoidmain(String[]args)
change(s);
publicstaticvoidchange(Strings)
把"
在String常量池的地址值传递进去,change方法里的s对象指向了"
,然后和"
连接形成新的字符串"
abchello"
,把新的字符串"
的地址值赋给change方法里的s,但main方法的s还是指向"
,因为〃abc"
是字符串对象,一但初始化就不会被改变。
2.publicstaticvoidmain(String[]args){
Stringsi="
a"
b"
Strings3="
ab"
System.out.println(s3==si+s2);
System.out.println(s3=="
+"
);
常量相加,直接累加,然后再常量池里找有没有,有结果就是常量池的值。
而变量相加,需要重新在常量池里开辟空间,然后把si、s2替换为"
、"
进行连接,形成一个新的"
对象,和s3内容相同,但属于不同的空间即不同的对象,十三、
Integeril=newInteger(127);
Integeri2=newInteger(127);
System.out.println(il==i2);
//false
System.out.println(il.equals(i2));
//true
Integeri3=newInteger(128);
Integeri4=newInteger(128);
System.out.println(i3==i4);
System.out.println(i3.equals(i4));
Integeri5=128;
Integeri6=128;
System.out.println(i5==i6);
System.out.println(i5.equals(i6));
Integeri7二127;
Integeri8=127;
System.out.println(i7==i8);
System.out.println(i7.equals(i8));
1通过new出来的是不同的对象,所以比较对象,相当于比较对象的地址值,肯定
为false(自动装箱,也相当于自动创建Integer对象)
2一般都会重写Object类中的euqals方法,不再比较地址值,而是比较对象的内
容是否相同。
址。
十四、用LinkedList模拟栈数据结构
题意解析:
你有一个LinkedList可以用,需要你自己定义一个桟集合,对外提供添加和获取功能(把LinkedList对象的方法封装在自定义栈方法的内部)
publicclassMyStack{
privateLinkedListlink;
publicMyStack(){
link=newLinkedList();
publicvoidadd(Objectobj){
link.addFirst(obj);
publicObjectget(intindex){
returnlink.get(index);
publicintsize(){
returnlink.size();
publicclassLinkedListStack{
publicstaticvoidmain(String[]args){
MyStackstack=newMyStack();
stack.add("
stack.add(”world"
stack.add(njava"
for(inti=O;
i<
stack.size();
i++){
System.out.println(stack.get(i));
十五、Collection和Collections的区别?
A:
Collection是Collection集合的顶层接口
它里面定义了Collection集合的共性方法,
B:
Collections是一个类,定义了针对Collection集合操作的各种功能,有排序、
二分查找、識、找最大值、随机置换等。
十六、Map和Collection的区别?
Map:
是双列集合,键必须是唯一的,值可以重复,是键值对形式的集合。
Collection:
是单列集合,它的子接口List可以存储重复元素,
它的另一'
子接口Set,兀素唯一o
十七、统计字符串中每一个字符出现的次数需求:
cbxzbvavdvgd••获取字符串中,每一个字母出现次数:
na(l)b
(2)c(l)d
(2)g(l)v(3)x(l)z(l)"
代码如下:
cbxzbvavdvgd"
把字符串转成字符数组
char[]chs=s.toCharArrayO;
//创建一个map集合,用出现的字母做键,出现的字母的次数做值,因为键存在自然顺序,所以选TreeMap
TreeMap<
Character,Integer〉tm=newTreeMap<
Character/Integer>
();
//遍历数组中的字符,获取字符键对应的值,如果值为空,则添加该键和值1的键
值对,如果值不为空,用原来的值+1替换原来的值
for(charkey:
chs){
Integervalue=tm.get(key);
if(value==null){
tm.put(key,1);
}else{
tm.put(key,value+1);
//获取字符键的Set集合
Set<
Character>
keySet=tm.keySet();
//创建一个StringBuilder对象,用来拼接遍历到的字符和出现的次数
StringBuildersb=newStringBuilder();
for(Characterkey:
keySet){
Integeri=tm.get(key);
sb.append(key).append(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 基础 试题 doc