2017年Java工程师面试题

发布时间:2016-12-28 00:00:00 编辑:嘉辉 手机版

  Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。下面yjbys小编为大家准备了关于Java工程师面试的题目,欢迎阅读。

  一、问答题(共两题每题5分)

  1、在软件开发的形式中,有单独开发和团队开发,请您分析两种开发形式的利弊?

  2、除了工资还有什么福利对你具有吸引力?

  二、案例分析(共四题每题5分)

  1、案例一:项目经理陈经理所在的项目组接到总监分配的一项紧急任务,要求在2天内完成A项目,陈经理马上召集其下属工程师小张和小黄进行工作分配并分析项目要点和各个要点的主要做法。时间已经过去了1天半,工程师小张发现,根据陈经理对项目要点的主要做法行不通,但时间已经所剩不多了。

  问题一:如果你是小张,你会怎么做?为什么?

  问题二:由于项目做法的问题导致项目的进度无法按总监的要求在2天内完成,总监怪罪下来,你认为这是谁的责任,为什么?

  2、案例二:工程师小李和工程师小陈分别在同一个项目组负责软件开发工作,他俩是同时进入公司的,而且被分配在邻座,因此关系非常好。工程师小李最近发现小陈经常在上班时间做一些与本公司业务无关的工作,并且在一次偶然的机会让小李发现,小陈的薪资比自己的薪资要高一倍多。

  问题一:如果你是小李,你会怎么做,为什么?

  问题二:如果你是小陈,你发现做的事情被小李发现了,你会怎么做,为什么?

  技术题

  一、基础题,共十题每题2分

  1、GC是什么?为什么要有GC?

  2、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?Byte a=1,b=1,bye c=a+b有什么错?Short a=1,b=1,Short c=a+b有什么错(答对一个给0.5分)

  3、Java有没有goto?

  4、数组有没有length()这个方法? String有没有length()这个方法?

  5、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?(答对第一句话即可得满分,或者意思差不多的即可)

  6、List, Set, Map是否继承自Collection接口?

  7、构造器Constructor是否可被override?

  8、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

  9、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?(答对第一句即可得满分)

  10、EJB中LocalHome的作用是什么?

  二、程序测试题(共四小题每题5分)

  1、谈谈你对以下程序的看法。

  class MyString extends String{

  public static int i = 0;

  private char[] chars = {‘a’,’b’,’c’};

  public MyString(){}

  static{

  System.out.println( “i = ” + ( i++ ) );

  }

  public String getString(){

  String s = “”;

  for( char c : chars ){

  s += c;

  }

  Return s;

  }

  }

  2、请写出以下程序的输出。

  class B {

  private int radius = 10;

  public void draw() {

  System.out.println(“B.draw(), radius = ” + radius);

  }

  public B() {

  System.out.println(“B constructor”);

  draw();

  }

  }

  public class A extends B {

  private int radius = 1;

  public void draw() {

  System.out.println(“A.draw(), radius = ” + radius);

  }

  public A(int radius) {

  this.radius = radius;

  System.out.println(“A constructor”);

  }

  public static void main(String[] args) {

  A a = new A(5);

  }

  }

  3、写出下列程序运行结果。

  public class Test {

  static Test st=new Test();

  static int x ;

  static int y=0 ;

  public Test(){

  x++;

  y++;

  }

  public Test(int x,int y){

  this.x=x;

  this.y=y;

  }

  public static Test getInstance(){ return st ;}

  static{

  int i=0;

  System.out.println(“i=”+i);

  }

  void test() {

  Inner inner2 = new Inner2();

  inner2.display();

  }

  public static void main(String[] args) {

  Test test1=Test.getInstance();

  test1.test();

  System.out.println(“test1:x=” + test1.x+”;y=”+test1.y);

  Test test2=new Test();

  test2.test();

  System.out.println(“test2:x=” + test2.x+”;y=”+test2.y);

  Test test3=new Test(0,0);

  test3.test();

  System.out.println(“test3:x=” + test3.x+”;y=”+test3.y);

  }

  public class Inner {

  int a= 1;

  void display() { System.out.println(“display: a = ” + a); }

  }

  public class Inner2 extends Inner {

  int a=2;

  void display() {System.out.println(“display: a= ” +a); }

  }

  }

  4、谈谈你对以下JavaScript函数的看法,能否提高效率?如果能请给出需要修改的地方,并讲出原因。

  function getFormAsString( formName ){

  returnString = “”;

  formElements = document.forms[formName].elements;

  for ( var i = formElements.length-1 ; i >= 0; –i ){

  returnString = returnString + “&” + escape( formElements[i].name ) + “=” + escape( formElements[i].value) ;

  }

  return returnString;

  }

  三、编程题(共三题,每题10分)

  1、写一个Singleton的类出来。

  2、给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842

  3、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次

  4、编成获取服务器本地ip地址

  四、综合附加题(共5每题10分)

  1、用Ajax写出客户端与服务器的简单异步调用(假设xmlHttp已被创建可以直接调用)

  2、在Oracle数据库中有一表Table1,表中有一字段a,如何删除表中a字段的重复数据,请使用光标与分组的办法?

  3、现在Oracle 10g中有一表

  FLWINR

  TCHNUM

  TCHINR

  TCHNAM

  CALMOD

  SUBFLWINR

  NXTTCHNUM

  760

  1

  C02

  分配专业室

  Flw1

  2

  (表名为Table1,其中关键字为FLWINR+TCHNUM+NXTTCHNUM)第一行是表的所有属性,第二行是其中的一条记录,当然假设该表有很多数据。要求把条件”FLWINR=’760′”的查询结果复制到新表中,该新表结构同Table1,命名为Table1_COPY。请用一句sql语句写出来。

  4、假设web服务器是Weblogic有以下的ejb代码及配置文件:

  package com.leo;

  import java.rmi.RemoteException;

  import java.rmi.Remote;

  import javax.ejb.*;

  public interface Hello extends EJBObject, Remote {

  //this method just get “Hello EJB” from HelloEJB.

  public String getHello() throws RemoteException;

  }

  package com.leo;

  import javax.ejb.*;

  import java.rmi.Remote;

  import java.rmi.RemoteException;

  import java.util.*;

  /**

  * This interface is extremely simple it declares only

  * one create method.

  */

  public interface HelloHome extends EJBHome {

  public Hello create() throws CreateException, RemoteException;

  }

  package com.leo;

  import javax.ejb.*;

  public class HelloEJB implements SessionBean{

  public void ejbCreate(){}

  public void ejbRemove(){}

  public void ejbActivate(){}

  public void ejbPassivate(){}

  public void setSessionContext(SessionContext ctx){}

  public String getHello() {

  return new String(“Hello,EJB”);

  }

  }

  Hello

  com.leo.HelloHome

  com.leo.Hello

  com.leo.HelloEJB

  Stateless

  Container

  Hello

  Hello

  HelloLocal

  要求写一个Java Client中调用HelloBean的类。

本文已影响1171
+1
0