java面试--代码 编程+输出内容

来源:互联网 发布:ipad白苹果数据还在吗 编辑:程序博客网 时间:2024/06/14 00:44

编程
1、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

public class ThreadTest1{    private int j;    public static void main(String args[]){    ThreadTest1 tt=new ThreadTest1();    Inc inc=tt.new Inc();    Dec dec=tt.new Dec();    for(int i=0;i<2;i++){    Thread t=new Thread(inc);    t.start();    t=new Thread(dec);    t.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<100;i++){    inc();    }    }}class Dec implements Runnable{    public void run(){    for(int i=0;i<100;i++){    dec();    }    }}}

2、写一个Singleton出来。

public class Singleton {   private static Singleton instance = null;  public static synchronized Singleton getInstance() {  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次       //使用时生成实例,提高了效率!  if (instance==null) instance=new Singleton();    return instance;   } }

3、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?

Public String translate (String str) {String tempStr = "";try {tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");tempStr = tempStr.trim();}catch (Exception e) {System.err.println(e.getMessage());}return tempStr;}

输出内容
1

public class FatherClass { public FatherClass() { System.out.println("FatherClass Create"); } } public class ChildClass extends FatherClass { public ChildClass() { System.out.println("ChildClass Create"); } public static void main(String[] args) { FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass(); } } 输出结果: FatherClass Create FatherClass Create ChildClass Create 

2

public class OuterClass { private class InterClass { public InterClass() { System.out.println("InterClass Create"); } } public OuterClass() { InterClass ic = new InterClass(); System.out.println("OuterClass Create"); } public static void main(String[] args) { OuterClass oc = new OuterClass(); } } 输出结果: InterClass Create OuterClass Create 

3

public class OuterClass { private double d1 = 1.0; //insert code here } You need to insert an inner class declaration at line 3. Which two inner class declarations are valid?(Choose two.) A. class InnerOne{ public static double methoda() {return d1;} } B. public class InnerOne{ static double methoda() {return d1;} } C. private class InnerOne{ double methoda() {return d1;} } D. static class InnerOne{ protected double methoda() {return d1;} } E. abstract class InnerOne{ public abstract double methoda(); } 说明如下: 一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错 二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。故 D 错 三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确 四.答案为C、E 
原创粉丝点击