回 帖 发 新 帖 刷新版面

主题:JAVA2几个问题--欢迎讨论

一、填空(5分*4)
1) Java实现多线程的两个方法是:                和                    ;
2)Java实现循环的三种语句是:         、            和                ;
3)applet必须继承      类。应用程序一定要有一个     方法作为入口;如果应用程序需要一个窗口,它需要继承      类;
4)类是对象的    ;面向对象编程语言的主要特点是:        和       ;


二、多选题(5分*4)
1) 给定 String s = "story"; 下列哪些语句是正确的?(   )
A. s += "books";
B. char c = s[1];
C. int len = s.length;
D. String t = s.toLowerCase();

2) 下列那个语句是正确的?  (   )
A. float a = 2.0;
B. double b = 2.0;
C. int c = 2;
D. long d = 2 ;


3)如果i=System.in.read ();发生了IOException,将会输出什么?(   )
try
           {
                  i=System.in.read ();
                  System.out.println("Location 1");
            } catch (IOException e) {
                  System.out.println("Location 2");
            }
           System.out.println (“ Locotion 3”);
A. Location 1
B. Location 2
C. Location 3
D. 上面均不会。


4)下列那个方法与applet的显示无关?(   )
A. update()
B. draw()
C. repaint()
D. paint()


三、简答(10分*4)
1)下列代码编译时能否通过?如果能,能否正常运行?如果出错,是那条语句出错,为什么?
class Base {}
class Sub extends Base {}
public class CEx{
public static void main(String argv[]){
Base b=new Base();
Sub s=(Sub) b;
}
}
答:





2)简述线程的5种状态
答:



3)简要说明Java Applet的安全机制。

4) 简述授权事件模型的事件处理过程
答:



四、简答(10分*2)
1、 一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求1000之内的所有完数。
答:  




2、 编写一个小应用程序,面板上有3个相斥的复选框,分别为居中、左对齐、右对齐。有一个标签;当选择某一个复选框时,该标签就设置为相应的对齐方式。
答:

回复列表 (共10个回复)

沙发

怎么?没人知道?????

板凳

我的解答---不当处敬请指教

一、填空(5分*4)
1) Java实现多线程的两个方法是: 创建Thread类的子类 和 实现Runnable接口 ;
2)Java实现循环的三种语句是: for循环 、 while循环 和 do-while循环 ;
3)applet必须继承 Applet 类。应用程序一定要有一个 main 方法作为入口;如果应用程序需要一个窗口,它需要继承 Frame 类;
4)类是对象的 模板 ;面向对象编程语言的主要特点是: 和 ;


二、多选题(5分*4)
1) 给定 String s = "story"; 下列哪些语句是正确的?( A、C 、D )
A. s += "books";
B. char c = s[1];
C. int len = s.length;
D. String t = s.toLowerCase();

2) 下列那个语句是正确的? ( B、C、D )
A. float a = 2.0;
B. double b = 2.0;
C. int c = 2;
D. long d = 2 ;


3)如果i=System.in.read ();发生了IOException,将会输出什么?( B )
try
{
i=System.in.read ();
System.out.println("Location 1");
} catch (IOException e) {
System.out.println("Location 2");
}
System.out.println (“ Locotion 3”);
A. Location 1
B. Location 2
C. Location 3
D. 上面均不会。


4)下列那个方法与applet的显示无关?( A )
A. update()
B. draw()
C. repaint()
D. paint()


三、简答(10分*4)
1)下列代码编译时能否通过?如果能,能否正常运行?如果出错,是那条语句出错,为什么?
class Base {}
class Sub extends Base {}
public class CEx{
public static void main(String argv[]){
Base b=new Base();
Sub s=(Sub) b;
}
}
答:编译能通过,但是运行时出错!第6行Sub s=(Sub)b;错误。原因是 Sub 是Base 的子类,不可将一个基类转换成一个子类,但允许将一个子类转换成基类!若 Base b=New Sub();则 Sub s=(Sub)b; 是成立的。因为b实际是一个Sub实例。
2)简述线程的5种状态
答:线程的5种状态:
① 新建:当一个Thread类或其子类的对象被申明时创建
② 就绪:新建线程启动后进入线程队列等待CPU服务
③ 运行:就绪线程获得CPU资源开始运行
④ 阻塞:正执行的线程遇特殊情况,让出CPU资源,暂停运行
⑤ 死亡:正常结束或强制结束的线程,不能继续运行

3)简要说明Java Applet的安全机制。
答:安全性 - Java小程序非常安全。Java小程序很难破坏运行它的系统。Java Applet采用一种叫做砂箱的机制,措施包括:
(1)Java Applet不能运行任何一个本地可执行程序;
(2)Java Applet不能读取或者编写本地计算机的文件系统
(3)Java Applet找不到与本地计算机有关的任何信息,比如用户明、电子邮件地址等。
还可以签名,允许不同情况下的安全级别。
4) 简述授权事件模型的事件处理过程
答: 授权事件模型的原理很简单:事件源激发事件、事件监听器监听事件,最后执行事件。可以通过调用addXYZListener(XYZListner)方法向构件注册监听器。把监听器加到构件中以后,如果构件激发相应类型的事件,那么监听器接口中的适当方法将被调用。




四、简答(10分*2)
1、 一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求1000之内的所有完数。
答:
public class Wanshu{
public static void main(String argv[]){
for(int i=1;i<=1000;i++){
int k=0;
for(int j=1;j<=i/2;j++)
if(i%j==0) k=k+j;
if(i==k) System.out.println(i);
}
}
}

2、 编写一个小应用程序,面板上有3个相斥的复选框,分别为居中、左对齐、右对齐。有一个标签;当选择某一个复选框时,该标签就设置为相应的对齐方式。
答:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
class myPane extends Panel{
Checkbox b1,b2,b3;CheckboxGroup b;
Label cont;
myPane(){
b=new CheckboxGroup();
b1=new Checkbox("居中对齐",false,b);
b2=new Checkbox("左对齐",false,b);
b3=new Checkbox("右对齐",false,b);
cont=new Label("Java 2实用教程");
cont.setSize(300,200);
add(b1);add(b2);add(b3);add(cont);
}
}
public class BiaoQian extends Applet implements ItemListener{
myPane myP;
public void init(){
setLayout(new GridLayout(1,1));
myP=new myPane();
add(myP);
myP.cont.setBackground(Color.white);
myP.cont.setSize(300,30);
myP.b1.addItemListener(this);
myP.b2.addItemListener(this);
myP.b3.addItemListener(this);
}
public void itemStateChanged(ItemEvent e){
if(e.getSource()==myP.b1) myP.cont.setAlignment(Label.CENTER);
if(e.getSource()==myP.b2) myP.cont.setAlignment(Label.LEFT);
if(e.getSource()==myP.b3) myP.cont.setAlignment(Label.RIGHT);
}

3 楼

我说两句:
一、
4.也可填"抽象"; 主要特点: 封装和继承

二、
3.应该选 BC;但若在 System.out.println("Location 2");
  后加 return ; 则只选 B
4.应该选 B. 因为绘图过程是这样的:
  repaint() -> update() -> paint()

三、
1. "不可将一个基类转换成一个子类" 不确切!
不能正常运行的原因实际是:在运行期,变量 b 引用的对象 和 类Sub 之间不具有 "is a" 关系,所以不能 Cast !

四、
1. 此题目对完数的描述不够清楚!
  

4 楼

我就选择题say         能不能解释一下每个答案呀       我不是明白..

5 楼

多选的第一题不应该是对的吧?
1) 给定 String s = "story"; 下列哪些语句是正确的?( A、C 、D )
A. s += "books";
B. char c = s[1];
C. int len = s.length;
D. String t = s.toLowerCase();

对于String s ,s 不是stringbuffer类型的所以不可以改变里面的内容吧?
要连接的话要调用方法吧

6 楼

你所指的不对是不是说答案A.这应该对,我感觉有出入的是答案B,
是不是应该这样写,int len=s.length();

7 楼

我要在看看才能来这里啊

8 楼

多选的第一题不应该是对的吧?
1) 给定 String s = "story"; 下列哪些语句是正确的?( A、D )
A. s += "books";
B. char c = s[1];
C. int len = s.length;
D. String t = s.toLowerCase();
我觉得c应该是错的。应该是 int len = s.length();
而对数组a[]应该是这样的   int len = a.length;

9 楼

[em16][em28][em28]

10 楼

我认为二、3)就应该选B
因为当i=System.in.read ();抛出异常时,只会被Catch块捕获,所以只会执行System.out.println("Location 2");输出Location 2

我来回复

您尚未登录,请登录后再回复。点此登录或注册