美文网首页
10道经典java面试必知基础题

10道经典java面试必知基础题

作者: java老大哥 | 来源:发表于2018-10-11 14:07 被阅读0次

    对于很多初入编程行业的程序员来说,第一次面试编程工作时是最紧张最无助的,因为他们从来没有面试过这类工作,不知道主考官会问什么。那么一般初级Java面试时会问哪些问题呢?优效学院在这里为大家准备了20道经典Java面试基础题。

    1、如果main方法被声明为private会怎样?

    能正常编译,但运行的时候会提示”main方法不是public的”。

    2、说说&和&&的区别。

    &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

    &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null&& !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 &++y>0) y会增长,If(x==33 && ++y>0)不会增长

    &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

    备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。

    3、如果要重写一个对象的equals方法,还要考虑什么?

    hashCode。

    4、Java的”一次编写,处处运行”是如何实现的?

    Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。

    5、说明一下public static void main(String args[])这段声明里每个关键字的作用

    public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.

    static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。

    void: main方法没有返回值。

    String是命令行传进参数的类型,args是指命令行传进的字符串数组。

    6、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

    使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:

    final StringBuffer a=new StringBuffer("immutable");

    执行如下语句将报告编译期错误:

    a=new StringBuffer("");

    但是,执行如下语句则可以通过编译:

    a.append(" broken!");

    有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:

    public void method(final StringBuffer param){

    }

    实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:

    param.append("a");

    7、是否可以从一个static方法内部发出对非static方法的调用?

    不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

    8、下面的代码有什么不妥之处?

    1. if(username.equals(“zxx”){}

    username可能为NULL,会报空指针错误;改为"zxx".equals(username)

    2. int x = 1;

    return x==1?true:false; 这个改成return x==1;就可以!

    9、int 和 Integer 有什么区别

    Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

    原始类型封装类

    booleanBoolean

    charCharacter

    byteByte

    shortShort

    intInteger

    longLong

    floatFloat

    doubleDouble

    引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的 数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

    10、如何把一段逗号分割的字符串转换成一个数组?

    如果不查jdk api,我很难写出来!我可以说说我的思路:

    1 用正则表达式,代码大概为:String [] result = orgStr.split(“,”);

    2 用 StingTokenizer ,代码为:StringTokenizer tokener = StringTokenizer(orgStr,”,”);

    String [] result =new String[tokener .countTokens()];

    Int i=0;

    while(tokener.hasNext(){result[i++]=toker.nextToken();}

    记住这10道经典Java面试基础题之后,大家是否对接下来的面试感到信心倍增呢?

    更多java网络编程、多线程面试题已经整理好,评论并转发小编就及时回复你了哦!

    相关文章

      网友评论

          本文标题:10道经典java面试必知基础题

          本文链接:https://www.haomeiwen.com/subject/fzdbaftx.html