您的位置:首页 > 编程语言 > Java开发

java基础笔试题

2016-04-20 01:43 369 查看
1,一个.java的源文件是否可以包含多个类(不是内部类)?有什么限制?

可以有多个类,只能有一个public类,并且public的类名必须和文件名一致

2.java有没有goto?

java中的保留字,现在没有使用

3,java中&和&&的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符的两边的表达式的

结构都为true时,整个运算结果才为true,否则只要有一方为false,则表达式为false

&&具有短路功能,如果一个表达式为false,则不会进行第二个表达式 ,例如

if(str != null && str.equals(”))表达式,当str为null时,后面的表达式不会执行,如果将&&改成&,则出现空指针异常

&可以作为位运算符,当&操作符的两边的表达式不是boolean类型时,&表示按位与操作,例如

0x31 & 0x0f 的结果是 0x01 获取改整数的最低4个bit位。

4, 在java中如何跳出当前的多重循环

在java中,要想跳出多重循环,可以在外面的循环语句前加一个标号,然后在里循环的代码体中使用带有标号的break语句,即可跳出外层循环。

ok;
for(int i=0;i<10;i++) {
for(int j=0;j<10 j++)
system.out.println("i="+i+"j"+j);
if (j==5) break ok;
}


通常不使用这种方法,让外层的循环表达式的结果可以收到里层循环体代码的控制,例如在二维数组中查找出某个数

int arr[][]={{1,2,3},{4,5,6,7},{9}};
boolean found=false;
for(int i=0; i<arr.length && !found;i++){
for (int j=0; j<arr[i].length;j++){
System.out.println("i="+i+"j="+j);
if (arr[i][j]==5){
found=ture;
break;
}
}
}


5,switch语句能否作用在byte上,能否作用在string,能否作用在long上?

在switch(expr1) 中,expr1只能是整数表达式或者是枚举常量,整数表达式可以是int类型或者integer包装类型。

由于byte,char,short类型都可以隐含转换成int

所以byte,char,shor以及包装类型都是可以的,所以,long,string类型的就不可以,不符合switch语法。

6,char变量中能不能存贮一个中文汉字,为什么?

char型变量时用来存储unicode编码的字符,在unicode字符集中包含了汉字,所以char型变量中可以存储汉字。因为unicode编码占有两个字节,所以char型变量也占有两个字节。

8,用最有效的方法计算出2乘以8等于几?

2 >> 3

因为一个数左移n位,就相当于乘以了2的几次方,一个数乘以8只要左移三位即可,

cpu位运算直接支持,效率最高

9.请设计一个一百亿的计算器

10.使用final修饰一个变量时,是引用不能变,还是引用的对象不能变?

解答:使用finnal修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。

修改方式如下:

final StringBuffer a = new StringBuffer(“immutable”);

a=new StringBuffer(“”);

a.append(“broken”);

将final修饰的变量内容改变了。

11,==和equals方法究竟有什么区别?

解答:==操作符用来比较两个变量的值是否相等

equals方法:用于比较两个独立的对象的内容是否相等。

如下代码:

String a = new String(“foo”);

String b = new String(“foo”);

因为a 和b是两个不同的对象,即a和b中存储的数值是不相同的。所以a==b 返回false

因为两个对象中的内容是一样的,所以a.equals(b) 返回true

equals方法继承与object类,字符串的比较基本上都使用equals方法比较

12,静态变量和实例变量的区别?

静态变量需要加static关键字,而实例变量不加

静态变量不属于某个实例对象,而是属于类,也称类变量 通过类.类变量

实例变量必须创建对象后才可以通过这个对象来使用。

13.是否可以从一个static方法内部发出对非static方法的调用

不可以,因为非static方法要与对象关联在一起,必须创建该对象后,才可以在该对象上使用,

而static方法调用非static方法,可能这个非static方法的对象实例还没有创建。

14,Integer和int的区别

解答:int是java提高的8中原始数据类型,int的默认值是0

integer是java为int提供的封装类,Integer默认值是null
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: