4.30牛客网刷题易错点:

发布时间:2022-09-05 05:00

1.下列代码哪里有错误?

byte b1=1,b2=2, b3, b6;
final byte b4=4, b5=6;
b6=b4+b5;
b3=(b1+b2); 错误

System.out.println(b3+b6);
解: 其中b3=(b1+b2)编译出错;
因为b1和b2都是byte类型的值,计算时候会将它们提升为int类型,所以b1+b2计算后已经是int型,赋给b3,b3是byte型,类型不匹配,编译不会通过;
注意:java中的byte char short 进行计算时都会提升为int类型;
2.关于==和equals( )方法:
String str1=new String(“hello”);
String str2=new String(“hello”);
System.out.println( str1==str2 ); /返回false
解析:因为他们分别指向两个通过new关键字创建的String对象,所以str1和str2两个变量不相等;
‘==比的永远是变量地址,对象不同,地址自然不同’;
equals:只要两个字符串所包含的字符序列相同,通过equals()比较返回的就是true,否则返回false;
3.在非空线性链表中删除p指针所指节点的直接后继,需要怎么做?data表示数据域,next表示后继指针;
r=p.next; p.next=r.next; free®;
或者:p.next=p.next.next; free(p.next);
4.顺序表结构适合随机存取,而链表适合顺序存取;
5.线索二叉链表是利用(rchild域存储)后继节点的地址。
解析:左孩子域:0指示左孩子,1指示节点前驱;
右孩子域:0指示右孩子,1指示节点后继;
6.向一个有n个元素的顺序表里插入一个新的元素并保持原来顺序不变,平均要移动n/2个元素。
删除一个元素,移动(n-1)/2;
查找一个元素,移动(n+1)/2;

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号