发布于 2015-01-25 14:57:52 | 309 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Java设计模式,程序狗速度看过来!

Java程序设计语言

java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。


本文为大家整理了一份数码视讯2015校园招聘-JAVA笔试题及参考答案,感兴趣的同学参考下。

以下为试题

一、选择题(每题5分,共20分)

   1、访问修饰符作用范围由大到小是(D)

   A、 private-default-protected-public

   B、 public -default-protected- private

   C、 private- protected-default- public

   D、public - protected- default-private

   2、以下(D)不是Object类的方法?

   A、clone()

   B、finalsize()

   C、toString()

   D、hasNext()

   3.Java中,以下(B)接口以键——值对的方式存储对象?

   A、java.util.Collection

   B、java.util.Map

   C、java.util.List

   D、java.util.Set

   4、指出下列程序运行的结果()

   Public class Example{

   String str=new String(“good”);

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

   public static void main(String args[]){

   Exampleex=new Example();

   Ex.change(ex.str,ex.ch);

   System.out.print(ex.str+”and ”);

   System.out.print(ex.ch);

   }

   public void change(String str,char ch[]){

   str=”test ok”;

   ch[0]=’g’;

   }

   A、good and abc

   B、good and gbc

   C、test ok and abc

   D、test ok and gbc

二、填空题(每题5分,共20分)

   5、JAVA基本数据类型包括__字符类型char,布尔类型boolean,数值类型____.

   6、Math.round(11.5)等于多少?12,Math.round(-11.5)等于多少?-11

   7、程序String str1="hello";String str2="he"+newString("llo");

   System.out.println(str1==str2);的运行结果是:false

   8、字符串分为两大类,一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用StringBuffer类的对象表示。

三 简答

   9. 接口和抽象类的区别是什么?(10分)

   答案:接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

   另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

   还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

   10. 利用递归方法求5!

   答案:

   public class Test {

   public static void main(String args[]) {

   int x = 5;

   int rs = Fac(x);

   System.out.println("" + x + "! = " + rs);

   }

   public static long Fac(int x) {

   if(x > 1)

   return (x * Fac(x - 1));

   else

   return 1;

   }

   }

   11. 编写多线程代码有几种实现方法?请用一段代码分别举例实现。

   答案:

   三种:

   (1)继承Thread类,重写run函数

   创建:

   classxx extends Thread{

   public void run(){

   Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源

   }}

   开启线程:

   对象.start() //启动线程,run函数运行

   (2)实现Runnable接口,重写run函数

   开启线程:

   Threadt = new Thread(对象) //创建线程对象

   t.start()

   (3)实现Callable接口,重写call函数

   Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

   Callable和Runnable有几点不同:

   ①Callable规定的方法是call(),而Runnable规定的方法是run().

   ②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的

   ③call()方法可抛出异常,而run()方法是不能抛出异常的。

   ④运行Callable任务可拿到一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等

   待计算的完成,并检索计算的结果.通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果

   12. 编程题:写一个观察者模式出来(先画类图,在用代码实现)

   答案:

 

     /// <summary>
  
     ///抽象主题类
  
     /// </summary>
  
     public abstract class Subject
  
     {
  
         private IList<Observer> observers = new List<Observer>();
  
         /// <summary>
  
         ///增加观察者
  
         /// </summary>
  
         /// <param name="observer"></param>
  
         public void Attach(Observer observer)
  
         {
  
             observers.Add(observer);
  
         }
  
         /// <summary>
  
         ///移除观察者
  
         /// </summary>
  
         /// <param name="observer"></param>
  
         public void Detach(Observer observer)
  
         {
  
             observers.Remove(observer);
  
         }
  
         /// <summary>
  
         ///向观察者(们)发出通知
  
         /// </summary>
  
         public void Notify()
  
         {
  
             foreach (Observer o in observers)
  
             {
  
                 o.Update();
  
             }
  
         }
  
     }
  
     /// <summary>
  
     ///抽象观察者类,为所有具体观察者定义一个接口,在得到通知时更新自己
  
     /// </summary>
  
     public abstract class Observer
  
     {
  
         public abstract void Update();
  
     }
     /// <summary>
  
     ///具体观察者或具体通知者,将有关状态存入具体观察者对象;在具体主题的内部状态改变时,给所有登记过的观察者发出通知。具体主题角色通常用一个具体子类实现。
  
     /// </summary>
  
     public class ConcreteSubject : Subject
  
     {
  
         private string subjectState;
  
         /// <summary>
  
         ///具体观察者的状态
  
         /// </summary>
  
         public string SubjectState
  
         {
  
             get { return subjectState; }
  
             set { subjectState = value; }
  
         }
  
     }
  
     /// <summary>
  
     ///具体观察者,实现抽象观察者角色所要求的更新接口,已是本身状态与主题状态相协调
  
     /// </summary>
  
     public class ConcreteObserver : Observer
  
     {
  
         private string observerState;
  
         private string name;
  
         private ConcreteSubject subject;
  
         /// <summary>
  
         ///具体观察者用一个具体主题来实现
  
         /// </summary>
  
         public ConcreteSubject Subject
  
         {
  
             get { return subject; }
  
             set { subject = value; }
  
         }
  
         public ConcreteObserver(ConcreteSubject subject, string name)
  
         {
             this.subject = subject;
  
             this.name = name;
  
         }
  
         /// <summary>
  
         ///实现抽象观察者中的更新操作
  
         /// </summary>
  
         public override void Update()
  
         {
  
             observerState = subject.SubjectState;
  
             Console.WriteLine("The observer's state of {0} is {1}", name, observerState);
  
         }
  
     }


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务