编程
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 
posted on 2017-09-03 18:49  2637282556  阅读(182)  评论(0编辑  收藏  举报