经典的初级java面试题目,看看你都会了吗?
发布于:2018-10-11   作者:admin   浏览:1403次

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

  1536217968666907.jpg

  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面试基础题之后,大家是否对接下来的面试感到信心倍增呢?