java面试题(3)

时间:2024-06-19 23:11:09 学人智库 我要投稿
  • 相关推荐

java面试题(3)

  13)请说一下System.gc()函数的作用。什么时候可以调用垃圾回收器?(瞬联)

java面试题(3)

  垃圾回收函数,手动调用的.

  当一个对象停止被活动声明所引用,它就变成了垃圾(garbage)可以被回收重新使用

  14)你做过的项目中采用了什么安全认证机制?(IBM)

  15)Math.round()什么作用?

  Math.Round(3.44, 1) = 3.4

  Math.Round(3.45, 1) = 3.4

  Math.Round(3.46, 1) = 3.5

  -----------------------------------------------

  Math.Round(3.54, 1) = 3.5

  Math.Round(3.55, 1) = 3.6

  Math.Round(3.56, 1) = 3.6

  -----------------------------------------------

  Math.Round(3.64, 1) = 3.6

  Math.Round(3.65, 1) = 3.6

  Math.Round(3.66, 1) = 3.7

  -----------------------------------------------

  Math.Round(3.74, 1) = 3.7

  Math.Round(3.75, 1) = 3.8

  Math.Round(3.76, 1) = 3.8

  这种舍入方法叫做银行家舍入(Banker'sRound),这就是已经规定下来的标准、Round的标准、世界的标准。

  Round <> 四舍五入

  16、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

  以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

  package java_example150;

  public class TestThread3{

  private int j;

  public static void main(String[] args){

  TestThread3 t = new TestThread3();

  Inc inc = t.new Inc();

  Dec dec = t.new Dec();

  for(int i=0;i<2;i++){

  Thread ts = new Thread(inc);

  ts.start();

  ts= new Thread(dec);

  ts.start();

  }

  }

  private synchronized void inc(){

  j++;

  System.out.println(Thread.currentThread().getName()+"-inc:"+j);

  }

  private synchronized void dec(){

  j--;

  System.out.println(Thread.currentThread().getName()+"-dec:"+j);

  }

  class Inc implements Runnable{

  public void run(){

  for(int i=0;i<10;i++){

  inc();

  }

  }

  }

  class Dec implements Runnable{

  public void run(){

  for(int i=0;i<10;i++){

  dec();

  }

  }

  }

  }

  17.CORBA是什么?用途是什么?

  答:CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:

  1. 用不同的程序设计语言书写

  2. 在不同的进程中运行

  3. 为不同的操作系统开发

  18.JAVA代码查错

  1.

  abstract class Name

  {

  private String name;

  public abstract boolean isStupidName(String name) {}

  }

  答案: 错。abstract method必须以分号结尾,且不带花括号。

  2.

  public class Something

  {

  void doSomething ()

  {

  private String s = "";

  int l = s.length();

  }

  }

  答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量

  (final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。

  3.

  abstract class Something

  {

  private abstract String doSomething ();

  }

  答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢? (同理,abstract method前不能加final)。

  4.

  public class Something

  {

  public int addOne(final int x)

  {

  return ++x;

  }

  }

  答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。

  5.

  public class Something

  {

  public static void main(String[] args)

  {

  Other o = new Other();

  new Something().addOne(o);

  }

  public void addOne(final Other o)

  {

  o.i++;

  }

  }

  class Other

  {

  public int i;

  }

  答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference

  (比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable

  (成员变量),而o的reference并没有改变。

  6.

  class Something

  {

  int i;

  public void doSomething()

  {

  System.out.println("i = " + i);

  }

  }

  答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

  7.

  class Something

  {

  final int i;

  public void doSomething()

  {

  System.out.println("i = " + i);

  }

  }

  答案: 错。final int i 是个final的 instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。

  8.

  public class Something

  {

  public static void main(String[] args)

  {

  Something s = new Something();

  System.out.println("s.doSomething() returns " + doSomething());

  }

  public String doSomething()

  {

  return "Do something ...";

  }

  }

  答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能访问non-static instant variable。

http://www.unjs.com/

【java面试题(3)】相关文章:

java面试题及答案10-03

10个经典的Java面试题集合09-20

Microsoft面试题09-04

iOS面试题07-10

公司面试题09-12

hibernate面试题10-18

英语面试题精选06-13

小升初面试题06-10

PHP面试题10-14

小升初面试题型08-24