JavaSE部分—一线大厂真题
1.百度
下面程序的输出是()
String X =“fmn";
x.toUpperCase();
String y = x.replace('f,'F');
y=y +“wxy";
System.out.println(y);
A.FmNwxy
B.fmnwxy
C.wxyfmn
D.Fmnwxy
考察的方法
String类特点
不可变特性
- 长度不可变—底层是一个final修饰的数组,由于数组是不可变的
- 内容不可变—由于是static修饰的,不可直接对他进行操作,所以导致内容不可变
String是一个类
String类中的常用方法
- String中重写的方法 equals hashCode compareTo
- String中常用的方法 split subString indexOf replace
- String中不怎么常用的方法
考察的方法
1.x.toUpperCase();
转换为大写,方法的返回值为全大写,但是由于没有接受返回值,String的不可变特性,变量x没有发生改变
2.x.replace('f,‘F’);
将'f'转换为'F'用新的变亮y磊接受返回值
答案为D
2.百度
class A{
public int a;
public int b; .
public A(int aa,int bb){
a = aa--;
b= a*bb;
}
}
则执行Ax = new A(4,5);语句后
x.a和x.b的值分别为()
A.20和5
B.3和15
C.5和4
D.4和20
考察的点
- 类的设计:属性、构造方法、构造方法的赋值
- 运算符:自增运算符
a = aa–;
先赋值,后自减,先将4赋值给啊,之后aa再自减
3.阿里
以下程序运行结果为
public class TestThread{
public static void main(String[ args){
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("foo");
}
};
}
}
Thread t = new Thread(r);
t.run();
System.out.print("bar");
A.foobar
B.barfoo
C .AB都有可能
D.bar
E.foo
F.程序无法正常运行
考察点
- Java中的线程相关
继承Thread 或者 实现Runnable
重写run方法
调用start方法 进入线程就绪状态 - 匿名内部类
匿名内部类重写run方法,start()方法属于Thread,所以若想要调用start()方法需要调用一个线程,用t对象吧r对象目的是为了调用start()方法,让线程进入就绪状态。
若t对象调用的是start()方法,则两个线程竞争,谁先调用就是随机的,但是t对象调用的是run()方法,所以就是顺序执行。
Thread t = new Thread(r);
t.run();
System.out.print("bar");
- 一个注解 @Override