JAVA面试题
来源:互联网 发布:dota2 mac版分辨率 编辑:程序博客网 时间:2024/06/15 13:49
1.下列属于合法的Java标识符是()
A. cat
B. 5books
C. +static
D. -3.14159
E. $3212
F. @tom
2.JAVA接口的修饰符可以为()
A. Private
B. Protected
C. Final
D. abstract
3.ArrayList list=new ArrayList(20);中的list扩充几次()
A. 0
B. 1
C. 2
D. 3
4.下列说法正确的有()
A. Class中的constructor不可省略
B. Constructor必须与class同名,但方法不能与class同名
C. Constructor在一个对象被new时执行
D. 一个class只能定义一个constructor
5.下列运算符合法的是()
A. &&
B. <>
C. If
D. :=
6. 执行如下程序代码
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0); 后,C的值是()
A.0 B.1C.-1 D.死循环
7.下列哪一种叙述是正确的()
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
8.以下运算符按运算优先级从高到低排列顺序正确的是()
A. !,*,<,=
B. !,=,*,>=
C. !,*,&&,>=
D. !=,*,&&,>=
9.public class text1 {
private static void changeStr(String str) {
str="hello";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
} 输出结果是()
A. Hello
B. 1234hello
C. 编译错误
D. 1234
10.执行下列代码后,哪个结论是正确的String[] s=new String[10];()
A. S[9]为null;
B. S[10]为””;
C. S[0]为未定义;
D. S.length为10;
11."=="和 equals方法究竟有什么区别?
答:
==操作符专门用来比较两个变量的值是否相等,
equals 方法是用于比较两个独立对象的内容是否相同
12.Overload 和 Override的区别。 Overloaded的方法是否可以改变返回值的类型?
答:
Overload 是重载的意思,Override 是覆盖的意思,也就是重写。
13.多线程有几种实现方法?同步有几种实现方法?
答:
多线程有两种实现方法,分别是继承 Thread类与实现 Runnable接口
同步的实现方面有两种,分别是 synchronized,wait与 notify
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉
InterruptedException(中断异常)异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒
某一个等待状态的线程,而是由 JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是
让它们竞争。
14.编写一段代码讲字符串反转,例如:”abcd”,输出”dcba”.
答:
public class text1{
public void swap(char[] arr, int begin, int end) {
while(begin < end) {
char temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
begin++;
end--;
}
}
public String swapWords(String str) {
char[] arr = str.toCharArray();
swap(arr, 0, arr.length - 1);
int begin = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == ' ') {
swap(arr, begin, i - 1);
begin = i + 1;
}
}
return new String(arr);
}
public static void main(String[] args) {
String str = "abcd";
System.out.println(new text1().swapWords(str));
}
}
15.设计 4 个线程,其中两个线程每次对j 增加1,另外两个线程对j 每次减少1。写出程序。
答:
public class text1 {
private int j;
public static void main(String args[]) {
text1 tt = new text1();
Inc inc = tt.new Inc();
Dec dec = tt.new Dec();
for (int i = 0; i < 2; i++) {
Thread t = new Thread(inc);
t.start();
t = new Thread(dec);
t.start();
}
}
private synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "-inc:" + j);
}
private synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "-dec:" + j);
}
class Inc implements Runnable {
public void run() {
for (int i = 0; i < 100; i++) {
inc();
}
}
}
class Dec implements Runnable {
public void run() {
for (int i = 0; i < 100; i++) {
dec();
}
}
}
}
- Java面试题-朋友的面试题
- java 阿里面试题 百度面试题 CVTE面试题
- Java面试题集
- JAVA面试题
- Java面试题集
- Java 面试题
- JAVA面试题集
- java面试题1
- JAVA华为面试题
- java常用面试题
- java面试题
- JAVA面试题集
- JAVA面试题集
- java面试题集
- [转载] JAVA面试题
- Java面试题集
- JAVA面试题-1
- [转载] JAVA面试题
- 一个文件就写出一个selector
- ARM串口实验,ADC实验,I2C实验
- Apache Solr入门基础——Windows下安装与配置
- BPSK+AWGN信道下画出误符号率和误比特率的性能曲线
- java中的重载和重写(行业术语很重要)
- JAVA面试题
- 虚拟机安装遇到的几个小问题及解决方法
- Centos安装php高版本
- 不怕错
- 【第二十四课】HashMap和泛型的含义
- 前端项目练手---先定一个小目标,做他一个天猫官网
- 利用布局简单编写一个安卓手机信息页面
- DB2中索引(index)失效的原因、确认、重建及监控
- PHP函数: spl_autoload_register与autoload的功能详解