java 面试

1、下列 java 程序输出结果为______。

1 int i=0;
2 Integer j = new Integer(0);
3 System.out.println(i==j);
4 System.out.println(j.equals(i));

A、true,false

B、true,true

C、false,true

D、false,false

E、对于不同的环境结果不同

F、程序无法执行

正确答案:B

解析:

i==j ,这个是基本类型与 Integer 的比较, j 会自动拆箱成 int 类型,然后比较的是值。因此返回真。

j.equals(i) ,调用 equals 方法后,这个 i 会自动装箱成 Integer 类型,然后再比较值,所以也返回真。

2、代码片段:

1 byte b1=1,b2=2,b3,b6;
2 final byte b4=4,b5=6;
3 b6=b4+b5;
4 b3=(b1+b2);
5 System.out.println(b3+b6);

关于上面代码片段叙述正确的是()

A、输出结果:13

B、语句:b6=b4+b5编译出错

C、语句:b3=b1+b2编译出错

D、运行期抛出异常

C.

被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了
而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
Java中的byte,short,char进行计算时都会提升为int类型。

3、下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?

A、private

B、无修饰符

C、public

D、protected

B

4、有这么一段程序:

public class Test{
    public String name="abc";
    public static void main(String[] args){
        Test test=new Test();
        Test testB=new Test();
        System.out.println(test.equals(testB)+","+test.name.equals(testB.name));
    }
}

请问以上程序执行的结果是()

A、true,true

B、true,false

C、false,true

D、false,false

C

public boolean equals(Object obj) {
        return (this == obj);
    }

Object 中euqals的源码如上。没有重写equals时,是直接用==判断的,而String中重写了equals方法。

5、

以下代码将打印出

 public static void main (String[] args) {
    String classFile = "com. jd. ". replaceA11(".", "/") + "MyClass.class";
    System.out.println(classFile);
}

A、com. jd

B、com/jd/MyClass.class

C、///////MyClass.class

D、com.jd.MyClass

C

C。由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\.".

6、

以下程序运行的结果为()

 1 public class Example extends Thread{
 2      @Override
 3      public void run(){
 4         try{
 5              Thread.sleep(1000);
 6              }catch (InterruptedException e){
 7              e.printStackTrace();
 8              }
 9              System.out.print("run");
10      }
11      public static void main(String[] args){
12              Example example=new Example();
13              example.run();
14              System.out.print("main");
15      }
16 }

A、run main

B、main run

C、main

D、run

E、不能确定

A

答案:A
这个类虽然继承了Thread类,但是并没有真正创建一个线程。
创建一个线程需要覆盖Thread类的run方法,然后调用Thread类的start()方法启动
这里直接调用run()方法并没有创建线程,跟普通方法调用一样,是顺序执行的

7、

1 public class Test
2 {
3     public int x;
4     public static void main(String args[])
5     {
6         System. out. println("Value is" + x);
7     }
8 }

对于上面这段代码,以下说法正确的是:

A、程序会打出 "Value is 0"

B、程序会抛出 NullPointerException

C、非静态变量不能够被静态方法引用

D、编译器会抛出 "possible reference before assignment"的错误

C

答案:C
非静态成员只能被类的实例化对象引用,因此这里在静态方法中访问x会造成编译出错

8、关于以下程序段,正确的说法是:()

1 String s1="abc"+"def";//1
2 String s2=new String(s1);//2
3 if(s1.equals(s2))//3
4 System.out.println(".equals succeeded");//4
5 if(s1==s2)//5
6 System.out.println("==succeeded");//6

A、行4,行6都不执行

B、行6执行,行4不执行

C、行4执行,行6不执行

D、行4,行6都将执行

c 是对的,equals()比较的是字符串的内容,==比较的是内存地址值
s1存放在常量池中 s2存放在堆区中  内存地址值是不一样的

9、

下列哪一种叙述是正确的( )
A、abstract修饰符可修饰字段、方法和类
B、抽象方法的body部分必须用一对大括号{ }包住
C、声明抽象方法,大括号可有可无
D、声明抽象方法不可写出大括号

选D,abstract修饰符用来修饰类和成员方法

1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。

2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。

Abstract是Java中的一个重要关键字,可以用来修饰一个类或者一个方法。 修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类。一个类中只要有一个abstract 方法,那么这个类就要被声明为abstract,但是其中可以有非abstract方法。 abstract类可以使得类的设计者能够创建方法的原型,而真正的实现留给使用这个类的人。

10、针对以下代码,哪些说法是正确的:()

 1 class CompareReference{
 2    public static void main(String [] args){
 3    float f=42.0f;
 4    float f1[]=new float[2];
 5    float f2[]=new float[2];
 6    float[] f3=f1;
 7    long x=42;
 8    f1[0]=42.0f;
 9   }
10 }

A、f1==f2

B、x==f1[0]

C、f1==f3

D、f2==f1[1]

答案:B C

B、C f1、f2、f3是数组,是引用类型,f、x是基本类型。基本类型之间的比较,应该会将低精度类型自动转为高精度类型再比较,B选项是long和float比较,相当于long和long比较,所以B对。
时间: 2024-12-28 00:38:01

java 面试的相关文章

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

转:最近5年133个Java面试问题列表

最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我初入职场的时候,类似于 Vector 与 Array 的区别.HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在.如今,你将会被问到许多 Java 程序员都没有看过的领域,如 NIO,

java 面试 -- 4

Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础:若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大).本文的问题列表来自于http://www.nowcoder.com/discuss/3043,在此感谢原作者的无私分享:) 1. Java中的原始数据类型都有哪些,它们的大小及对应

Java 面试-- 1

JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能.不管你是面试各个级别的JAVA工程师.架构师.还是项目经理,这个系列文章都是你最宝贵的资

[转载]java面试中经常会被问到的一些算法的问题

Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享一下在面试中经常被问到的一些基本的算法,也当做一次知识的巩固. 排序算法的一些特点: * 排序算法的分类如下:* 1.插入排序(直接插入排序.折半插入排序.希尔排序):* 2.交换排序(冒泡泡排序.快速排序):* 3.选择排序(直接选择排序.堆排序):* 4.归并排序:* 5.基数排序.* * 关于

Java面试宝典

http://www.cnblogs.com/bluestorm/p/6429894.html Java面试宝典 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或

java面试回忆录

本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895 作者:sushengmiyan ------------------------- 1.报文格式定义如下: 20字符长的姓名+1字符长的性别+3字符长的年龄 姓名长度不足20的右边补空格 性别中0表示男,1表示女 年龄不足3字符的左边补0 如: denny     0026 这一段报文解析后表示姓名为denny性别为男,年龄为26 数据库表结构如下: create ta

Java面试问题总结

前几天Java面试中遇到的问题,这只是其中的一部分问题,面试中有很多问题是关于数据结构和算法的.在这里做下总结,希望有能力的人可以试着做一下,并在评论区留下您的答案,让大家相互学习.谢谢 程序设计部分 第1题* 已知类定义如下 class Node { public Double value; public List<Node> children; } 将以下递归程序改成非递归程序(两个程序的输出应保持顺序一致) publicstaticvoid process(Node node) { fo

java面试梳理

自己整理的有关java面试过的问题,有错的请矫正. 1, Spring的核心思想 控制反转和面向切面的编程 2,Spring的核心模块 反向控制与依赖注入.Bean配置以及加载 3,Scope是什么 Scope就是IOC容器里给对象设置的场景或者说存活空间,如果对象不处于Scope的限定后,容器会销毁对象. 取值有5种  分别是singleton(单一模式),prototype(多少个请求就有多少个),request(请求完即销毁),session,globalsession. 4,hibern

Java面试参考指南(二)

访问修饰符 对于基本的OOPS(面向对象)概念,请看Java面试参考指南的第一部分.访问修饰符规定了一个类如何访问另一个类及它的成员(包括方法和变量). Java中有下列访问修饰符: private:私有变量和方法(非外部类)只能被声明它们的类的实例所使用. default:类中的数据.方法和它本身能够被声明为默认default.类中所有default成员都可以被本包中的其它类所访问. protected:相比default有更高的访问权限.只有成员变量和方法能够被声明为protected.父类