自考计算机科学与技术-Java语言程序设计(一)-04747-笔记

--填空题

  1. \b和\'属于 转义字符 常量。
  2. 组合框 是一个下拉式菜单。
  3. Integer是int数据类型的 包装类
  4. OOP是指 面向对象的程序设计
  5. Java程序文件的扩展名是 .java
  6. 表达式由 运算符 和 操作数 组成。
  7. Java语言使用的字符集是 Unicode
  8. StringBuffer类用于处理 可变字符串
  9. AWT的Font对象的作用是 设置字型
  10. Swing组件定义在 javax.swing 包中。
  11. 通过类 Thread 可以创建和控制线程。
  12. Java中对线程的调度采用 优先级 策略。
  13. Java是一种面向 对象 的程序设计语言。
  14. 分支语句有 if 语句和 switch 语句两种。
  15. JDialog类通常用于创建 自定义 对话框。
  16. Java通过类 File 处理与文件相关的操作。
  17. KeyListener接口的作用是 处理键盘事件
  18. Object 是Java所有类的直接或间接父类。
  19. AWT包含本地代码,被称为 重量级 组件。
  20. 启动线程需要调用相应对象的 start 方法。
  21. JList是可供用户进行选择的 一系列可选项
  22. 在Java中用关键字 extends 表示类的派生。
  23. OPP中三大技术分别是 封装继承多态
  24. Java 2平台上推荐使用 Swing 图形用户组件。
  25. 在Java中,把不同的输入、输出源抽象为
  26. 在Java中,用 null 表示引用不指向任何对象。
  27. Java程序分为 Java应用程序Java小程序
  28. 用static修饰的类成员称为 静态成员或类成员
  29. 通过 javac 程序可以将java程序编译成字节码
  30. 文本 组件可用于显示信息和提供用户输入功能。
  31. Java中通常用 CLASSPATH 指定搜寻包的路径。
  32. FileWriter类的作用是为 字符流写操作 提供支持。
  33. 用关键字 final 修饰的类是终极类,不能有子类 。
  34. 通常与switch语句配合使用的跳转语句是 break;。
  35. 写Java基本数据类型需要用 DataOutputStream
  36. 可以通过实现 Runnable 接口可以创建一个线程。
  37. 把对象转换为字节序列的过程称为对象的 序列化
  38. Vector类的实例中能保存的数据类型是 对象 类型。
  39. Java中可以调用 interrupt() 方法中断线程的执行。
  40. Java运行的是 与机器无关 的二进制格式的类文件。
  41. 通过类 JSeparator 可以在菜单项之间加入分隔线。
  42. 在接口中定义的成员变量默认为 final 和 静态属性
  43. 数组 是相同数据类型的元素按一定顺序排列的集合。
  44. java.awt包中的类 Graphics 是所有图形处理的基础。
  45. JVM 通过解释器可以执行Java编译后生成的类文件。
  46. 在Java中,序列化只能保存对象的 非静态 成员变量。
  47. 容器中组件的位置和大小通常由 布局管理器 负责安排。
  48. 在Java虚拟机中可以运行Java的 字节码 / .class 文件。
  49. Java中在涉及数据流操作中,几乎都要引入包 java.io
  50. 可以通过继承 Thread 类,Java可以编写多线程的程序。
  51. 每个由BorderLayout管理的容器通常被划分为 5 个区域。
  52. File类的方法getParent() 的作用是 获取文件父目录名称
  53. 线程一共有四种状态:新建可运行状态死亡 及 阻塞
  54. 程序可以通过数组的属性 length 来确定数组元素的个数。
  55. 创建File类的对象后,可以用 length() 方法获取文件长度。
  56. 类中含有两部分元素,分别是数 据成员变量 成员方法
  57. Swing中菜单栏是窗口中的主菜单,对应的类是 JMenuBar
  58. 重载的方法属于同一个类,覆盖的方法分属于 父类、子类 中。
  59. Java源文件中最多只能有一个 public 类,其他类的个数不限。
  60. 在Java语言中,package语句必须出现在源程序文件的 起始行
  61. 自动将基本数据类型转换为对应的包装类的过程称为 自动装箱
  62. Java允许将一个子类的对象赋给父类的变量,这称为 对象转型
  63. 当用户在JList上进行选择时,将引发 ListSelectionEvent 事件。
  64. 文件对话框是专门用于对文件或目录进行 浏览和选择 的对话框。
  65. 类A的某个成员变量的类型是类B,则类A和类B之间是 has a 关系。
  66. Java中在浮点数常量最后加上字母f说明该浮点数是 float 类型的。
  67. continue语句的作用是 立即结束本次循环开始执行下一次循环
  68. 调用方法时,通常会给方法传递一些值,传给方法的值称为 实参
  69. 构造方法的作用是用来创建类的实例,通过 new 运算符自动调用。
  70. Java程序语句块内声明的变量将屏蔽其 所在类 中定义的同名变量。
  71. java.io包中所有输入数据流都是从抽象类 InputStream 继承而来的。
  72. 在异常处理中,包含有捕获及处理某种类型异常代码的是 catch 块。
  73. Scanner类提供了许多方法,可用来方便地 读入不同类型的输入值
  74. 编写Java时加入适当的空白并使用缩进格式可以增加程序的 易读性
  75. 在Java中,允许多个方法使用同一个方法名,这就是方法名的 重载
  76. 在Java中通过 对象互斥锁间 来实现不同线程对共享数据操作的同步。
  77. 在BufferedReader类中,能够实现按行输入的方法的名字是 readLine
  78. 处于运行状态的线程执行stop()方法,该线程将进入的状态是 死亡状态
  79. Java的数据类型共分为两大类,分别是 基本数据类型复合数据类型
  80. BufferedInputStream在数据流上增加了一个 缓冲区,属于过滤器数据。
  81. FilelnputStream和FileOutputStream的数据源或数据终点都应当是 文件
  82. 顶层容器都有一个 内容窗格,除菜单之外,顶层容器中的组件放在其中。
  83. 使用RandomAccessFile类的 writeChar() 方法可以向文件写入一个字符。
  84. 当要使用其他包中所提供的类时,可以使用 import 语句引入所需要的类。
  85. 线程 是 进程 执行过程中产生的 多条执行线索,是比进程更小的执行单位。
  86. 若不想让引用类型的变量pvar再指向其他的对象,则pvar应该标记为 final
  87. Java程序由类构成,含有一个 main() 方法,该方法是整个程序的运行入口。
  88. 在Java中如果一个类有父类,那么父类只能有一个,这条限制称为 单重继承
  89. Java程序中源文件名必须根据文件中的  公有类名 来定义,并且要区分大小写。
  90. 如果程序中有package语句,那么该语句一定是源文件中的 第一条非注释语句
  91. 类Vector实际保存的元素个数由 elementCount 记录,这个值不能大于其容量。
  92. 在Java中用关键字 synchronized 来声明操作共享数据的一个方法或一段代码。
  93. 在解决线程同步问题时,wait方法的作用是让当前线程释放其所持有的 对象互斥锁
  94. 同一个类中有多个方法有相同的名字及不同的参数列表,这种情况称为 方法重载
  95. switch语句中条件表达式的计算结果必须是 char或int类型,即是int型赋值相容的。
  96. Java实行 语言定义阶段字节码检查阶段程序执行阶段三级代码安全检查机制
  97. 要显示标准确认对话框,可使用JOptionPane类中的 showConfirmDialog() 方法。
  98. 在Java中进行绘图操作时,当组件被显示出来时,需调用 paint(Graphics g) 方法。
  99. JMenultem(String text,Icon icon)方法可以创建一个包含 文本和图标 的菜单项。
  100. 程序将若干单选按钮对象加入到一个ButtonGroup对象中,其目的是 构成单选按钮组
  101. String类中将当前字符串中所有字符转换为小写形式的方法的名字是 toLowerCase
  102. String类中将当前字符串中所有字符转换为大写形式的方法的名字是 toUpperCase
  103. 方法名称加上方法的参数列表( 包括方法中参数的个数、顺序和类型 )称为 方法签名
  104. 组合框上的用户事件既可以通过ActionListener处理,又可以通过 ItemListener 处理。
  105. Java提供了派生机制,允许程序员用以前已定义的类来定义一个新类。新类称作 子类
  106. String类的方法subString(int i)的作用是:截取当前字符串中从第i个开始到末尾的子串
  107. Java不支持多重继承,但具有多重继承的能力,其实现机制是让一个类实现 多个接口
  108. 一般地,如果一个方法引发了一个异常,而它自己又不处理,就要由 调用者方法 处理。
  109. Java中整型数字可以用十进制、八进制和十六进制形式表示,以0开头的数字是 8进制
  110. Java允许一个类 实 现多个接口,从而实现了 多重继承 的能力,并具有更加清晰的结构。
  111. Java把程序运行中遇到的非致命的、通过某种修正后程序还能继续执行的错误称作 异常
  112. 判明一个引用到底指向哪个实例,即要判明引用的真正类型时,使用的运算符 instanceof
  113. 面向对象的方法学包括三个方面: 面向对象的分析、面向对象的设计、面向对象的程序设计。
  114. 在Java中 接口 是体现抽象类功能的另一种方式,其所有的方法都是抽象方法,都没有方法体。
  115. 在Windows操作系统下安装JDK并设置系统环境变量后,可以在命令行窗口输入 javac 命令进行测试。
  116. Vector v=new Vector(100,50)中50的作用是 在v初始化分配的空间用尽之后以50为单位递增空间
  117. 在Scanner scan=new Scanner(System. in);语句中,System. in对象的默认输入源 是 键盘
  118. 使用BufferedWriter进行输出时,为防止遗漏需强制清空缓冲区中的剩余内容,使用的方法是 flush()
  119. 如果需要在尚未创建一个对象实例的时候就去引用方法的程序代码,那么标记上关键字 static 即可实现。
  120. 如果在子类构造方法的定义中调用了父类的构造方法,则调用语句必须出现在子类构造方法的 第一行
  121. 类的成员方法中 构造 方法的名字与类名相同,没有返回值,在创建对象实例时通过new运算符自动调用。
  122. 使用指定的红色值r、绿色值g、蓝色值b构造一个新的颜色myColor的语句是Color myColor = new Color(r, g, b);
  123. 进程 是程序的一次执行,对应了代码加载、执行至执行完毕的一个完整过程,或者说是程序在处理机中的一次运行。
  124. 在Java程序运行中,如果用户进行了某个操作,比如单击鼠标左键,这称为用户事件,对事件的响应称为 事件处理
  125. Java语言为处理鼠标事件提供了多个接口,其中能处理鼠标拖动和鼠标移动两种事件的接口是 MouseMotionListener
  126. JCheckBoxMenuItem cbmi= new JCheck BoxMenuItem("修改",true);可以创建一个处
    选中 状态的复选框菜单项。
  127. 在Java语言中,使用“对象互斥锁”来实现不同线程对 共享 数据操作的同步,它可以阻止多个线程同时访问同一个条件变量。
  128. 创建一个列数为30、初始字符串为“Single Line”的文本域的语句是JTextField tf=new JTextField("Single Line", 30);
  129. notify() 或者notifyAll() 的作用是唤醒一个或所有正在 等待队列 中等待的线程,并将它们移入等待同一个“对象互斥锁”的队伍。
  130. Graphics2D类定义了多种图形的状态属性,其中用来控制线条的宽度、笔形样式、线段连接方式或短划线图案的属性是 stroke 
  131. 定义一个Graphics对象,绘制一条从点(x1,y1)到点(x2,y2)的直线,使用的方法原型是 drawLine(int x1, int y1, int x2, int y2)
  132. 在Java中,在字节流和字符流之间起到中介作用,充当字节流和读者之间接口的两个类是 InputStreamReader 和 OutputStreamWriter
  133. 在Java中,可以用子类和父类来刻画事物,大的更一般的类看作父类,包含在其中的特殊的类是子类,子类与父类的关系是:子类对象 is a 父类对象。
  134. 当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程继续执行的要求,这时线程A就要等待线程B完成修改工作,这种线程相互等待称为 线程的同步
  135. 源文件Test11.java经编译后,若正确,则得到的文件名是 Test11.class
  136. 假设编写了一个Java类Person保存在Person.java文件中,那么经过编译生成的类文件名为 Person.class
  137. Java编译程序对Test11.java源程序编译,如果没有发生错误,一定会产生一个文件,该文件的名字是 Test11.class

--程序题



  1. ①n = temp 
    ②m%n 
    ③n

     


  2. ①j%i == 0
    ②i > j/2

     


  3. ①(int)(x+0.5)
    ②Math.sin(x)


     


  4. ①x >= 0 && x <= 10
    ②x >> 1;



     


  5. ①j <= 50
    ②break;


     


  6. ①count <= n
    ②写法很多coun++ / ++count / count += 1


     

  7. 以下程序的输出结果是:这是由:苏州联想公司生产的笔记本电脑。

    ①public ComputerMaker(String producer, String address)  or
        ComputerMaker(String producer, String address) 
    ②this.production = production;


     
  8. 以下程序输出true,ab

    ①s1.startsWith("ab");
    ②s1.subString(0,2);


     
  9. 程序的功能为建立一个Vector实例,该实例有若干个字符串,然后在该实例中查找是否存在字符串“Test”,如果存在则将其删除。

    ①v.contains(toDeleteString);
    ②v.remove(toDeleteString);


     
  10. 本程序演示Java对象转型的应用。程序定义了一个父类 Person,一个从 Person类派生的子类 Student,父类、子类各有自己不同的成员变量。在子类的主函数中,将子类的一个对象赋给父类的一个变量,判断父类变量指向的是否是子类实例,如果是则将其转换成对应的子类对象,对子类对象的成员变量赋值并输出。

    ①p instanceof Student
    ②Student s = (Student) p ;


     
  11. 程序定义了一个父类Person,一个从_Person类派生的子类Student,在子类中将父类的成员变量赋值为 "男"。

    ①extends Person
    ②sex = "男" ;  或者  super.sex = "男" ;  或者  this.sex = "男" ;


     
  12. 程序定义了一个父类 Person、个子类 Student,子类的构造方法中对自己的属性进行初始化,同时通过调用父类的构造函数,对父类的属性也进行了初始化。另外,子类对父类的方法进行了重写。

    ①super(name, sex);
    ②public void print()


     
  13. 以下程序演示了抽象类的定义和使用,类Mine继承自抽象类并重写了其中的方法:

    ①abstract
    ②public abstract void amethod();


     
  14. 以下程序的输出结果为: 实现接口的第一个方法 实现接口的第二个方法。

    ①public interface Interface1
    ②implements Interface1


     

  15. 以下程序将类Serializableclass的一个对象序列化保存到文件中,然后再从文件中把数据读取出来保存在另一个SerializableClass的对象中。


    ①implements Serializable
    ②ObjectOutputStream oos = new ObjectOutputStream(fos);


     

  16. 按注释提示完成文件复制的程序
    ①new FileInputStream(inFile);
    ②fos.write(c);


     

  17. 程序将一个Date对象写入到C盘根目录下的date.txt中。
    ①new FileOutputStream("C:\\date.txt");
    ②oos.writeObject(d);


     

  18. 以下程序读取键盘输入,当按下回车时,将输入的内容显示在屏幕上。
    ①new BufferedReader(dis)
    ②readLine
    ③close


     

  19. 以下应用程序的界面中有一个用于输入文件名的文本框对象fileName、一个用于输入匹配字符串的文本框对象p,和一个用于输出的文本区对象text。程序运行时,用户输入匹配字符串和文件名,程序逐行读入文件的内容,检出那些以匹配字符串开头的行并显示在文本区中。
    ①FileReader(fileName.getText())
    ②in.readLine()


     

  20. 程序通过使用缓冲区读者逐行将c盘根目录下的test.txt文件中的内容读取输入在屏幕上显示。
    ①BufferedReader reader = new BufferedReader(isr);
    ②(s = reader.readLine())


     

  21. 程序获取C盘根目录下的mydata.jsp文件的长度,并将其重命名为“test.tx”

    ①f.length()
    ②f.renameTo(newFile);

     

  22. 程序创建了一个窗口,窗口中有两个按钮,第一个按钮的文本被设置为“第一名”,第二个按钮有提示文本“这是第二个按钮”。
    ①button1.setText("第一名");
    ②button2.setToolTipText("这是第二个按钮");


     

  23. 下面程序釆用默认布局管理器设置窗口布局,向顶层窗口(框架)中添加了两个组件,一个是JPanel、一个是JCheckBox。其中JPanel的布局管理器为FlowLayout,对齐方式为左对齐。JCheckBox位于顶层窗口的右部。
    ①panel.setLayout(new FlowLayout(FlowLayout.LEFT));
    ②c.add(checkBox, BorderLayout.EAST);


     

  24. 面板子类MyPanel实现在面板监视鼠标单击事件,当鼠标在面板上单击时,面板的背景色就会循环改变。以下是类MyPanel的定义。
    ①MouseListener
    ②mouseClicked


     

  25. 以下是某应用程序定义的两个方法。方法setCheckBoxs(ItemListener listener)已知监视器,产生一组选择按钮,并给它们注册监视器和将它们加入到面板中;方法使用的全局对象有面板panel,存放按钮名称的数组boxName,选择按钮数组box,文本区text。方法itemStateChanged(ItemEvent e)是选择按钮的事件监视方法,当某个选择按钮的选择状态有改变时,监视方法在文本区中显示各选择按钮的选择状态(被选中或没有被选中)。
    ①addItemListener(this)
    ②box[i].isSelected()



     

  26. 以下paintComponent方法利用Graphics2D绘制一个左上角坐标是(10,30),边长为50的红色正方形。

    ①(Graphics2D) g
    ②10, 30, 50, 50
    ③g2d.draw(rec)


     

  27. 以下是一个放幻灯片的应用程序,程序的界面中含一个面板子类P的对象和一个按钮对象b。设幻灯片已经装入内存,并存放于mylmage数组中,幻灯片的张数存于变量num中。程序运行时,用户点击按钮b,按钮的监视方法循环更换幻灯片号curlmage,并让系统调用P重定义的paintComponent()方法显示当前幻灯片。

    ①repaint()
    ②drawImage


     

  28. 以下小应用程序利用Graphics2D绘制一条直线。

    ①(Graphics2D)
    ②draw(line)


     

  29. 以下MyPanel类在面板上放置一个列表,当单击列表中某个选项时,该选项的值保存在seleItem中。

    ①ListSelectionListener
    ②ListSelectionEvent
    ③getSelectedvalue()


     

  30. 面板子类MyPanel实现在面板上放置一个单选列表框,列表框上的选项条目由创建该类对象时的参数提供。当某个选项被单击时,类的监视程序在指定的文本框中输出选中选项条目。程序将单选列表框放置于滚动面板中,并要求滚动面板的垂直滚动条总是可见。以下是类MyPanel的定义。

    ①VERTICAL_SCROLLBAR_ALWAYS
    ②getSelectedvalue()


     

  31. 窗口中有一个组合框和一个列表,组合框中3个可选项:北京、上海、广州,默认选择上海列表中也有三个可选项:郑州、南京、武汉。

    ①list = new JList(listItem);
    ②jcb.setSelectedIndex(1);


     

  32. 以下是生成菜单项对象,以及菜单项选择事件处理方法的代码片断,要求当菜单项 singing-Item被选中时,选中文本框的文字。

    ①new JMenu("选择文本");
    ②tf.selectAll();


     

  33. 以下程序在子窗口中设置一个菜单栏,菜单栏放置在窗口的最顶侧,菜单栏含有一个菜单,菜单的文字是“菜单1”。

    ①JMenuBar menuBar = new JMenuBar();
    ②menuBar.add(menu);


     

  34. 程序建立了一个窗口,窗口中有一个按钮¨打开对话框”,点击该按钮可以打开一个强制型对话框。


    ①dialog = new JDialog(frame, "对话框", true);
    ②dialog.setSize(200, 200);


     

  35. 以下定义的面板子类TimePanel有一个文本域,程序每隔1秒在文本域中更新显示当前时间。

    ①Thread(this)
    ②new Date()
    ③sleep(1000)


     

  36. 以下程序创建并启动了一个线程。

    ①run()
    ②Lefthand()
    ③start()


     

  37. 用 Thread类的子类创建一个线程并将其启动。

    ①sleep(5000);
    ②thread.start();


     

  38. 下面程序的功能是创建了一个显示5个“Hello!”的线程并启动运行,请将程序补充完整。

    ①new ThreadTest();
    ②run()


     

  39. 通过实现Runnable接口定义一个线程类,并将其实例化后启动,启动后线程都将自己的名字(“我的名字是:……”)输出至屏幕。

    ①implements Runnable
    ②Thread thread1 = new Thread(myThread, "线程1");


     

  40. 以下定义的类Godown用于管理多个线程共享产品库存量数据。类定义了让生产者线程和消费者线程共享的两个操作:生产produce(int pnum)和消费consume(int neednum)。限制生产操作和消费操作不能同时进行,也不能因生产(进库)让库存超过最大库存量maxSize,消费(出库)不能大于当前库存量cunum。为了保证生产和消费操作的完整和正确,这两个操作有互斥和同步要求。以下是管理产品库存量curnum类Godown的代码,其中消费方法consume()没有在以下代码中列出。

    ①wait()
    ②notifyAll()


     

  41. 以下定义的类ShareDateManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用。该方法在data修改结束后,应通知其他等待进入这个方法的线程。

    ①synchronized
    ②notify();


     

  42. 代码创建一个窗口应用,用 JPanel创建一个新的内容窗格,其布局为 BorderLayout。新的内容窗格中有一个按钮,用新的内容窗格替换窗口的默认内容窗格。

    ①myPanel.setLayout(new BorderLayout());
    ②myFrame.setContentPane(myPanel);


     

  43. 程序的功能是交换两个变量的值。

    ①a = b;
    ②b = c;


     

以下定义的类ShareDateManager用于管理多个线程共享数据data。为了对data的存、取和修改操作保持完整,多线程在data上的操作有互斥要求;另外,限制线程对data的修改不能让data成为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类Share_DateManager的代码。

①(getData() + delta) < 0
②notify();

 


--问答题
 

  1. 请简要说明java与平台无关的实现原理。
    1.java与平台无关的关键是Jvm。
    2.javac将Java程序编译成字节码文件,jvm可直接运行这些字节码文件。
    3.在任何安装Java运行时环境的系统上都可以执行这些代码。

     
  2. 请写出Java语言中标识符的命名规则。
    1.标识符是由字母、数字、下划线、美元符组成的字符串。
    2.数字不能作为标识符的开头,并区分大小写,长度没有限制,不能使用保留关键字。

     
  3. 简述Java程序的结构可以包含哪些内容。
    1.package语句。
    2.import语句。
    3.具有public权限的类定义。
    4.类定义。
    5.接口定义。

     
  4. 简要说明包的概念及其命名要求。
    1.包是类的容器,可以利用包名划分空间,避免类名冲突。
    2.包名有层次关系,各层之间以点分隔。
    3.通常包名中全部用小写字母。

     
  5. 请列出Java中的3种注释形式。
    1.// 单行注释。
    2./* */ 多行注释。
    3./** */ 文档注释。

     
  6. 请写出二元逻辑运算中的“短路”操作功能。
    1.如果计算运算符左侧表达式能得到整个表达式的值,则跳过右侧表达式的计算。
    2.否则计算右侧表达式得到整个表达式的值。

     
  7. 请写出“条件x=2与y=3有且只有一个成立”的表达式。
    1. x == 2 && y != 3 || x != 2 && y == 3

     
  8. 请说明基本数据类型什么时候有自己的内存空间。
    1.Java基本数据类型的变量在声明之后,系统会自动在内存中分配相应的存储空间。

     
  9. 请说明Java中数据类型转换的分类及其适用情况。
    1.数据类型转换分为自动转换和强制转换。
    2.位数少的类型转换为位数多的类型,称为自动转换。
    3.在程序中明确指明,位数多的类型转换为位数少的类型,称为强制转换。

     
  10. 请说明Java程序可以声明变量的地方及其区别。
    1.可以在方法内和类定义内声明变量。
    2.在方法内定义的变量称为局部变量,在类中定义的变量就是类的成员变量。

     
  11. 请写出package语句和import语句的区别。
    1.package语句,每个文件最多只有一个,且必须放在文件开始的地方。
    2.import语句,可以没有,也可以有多个,如果有,必须放在所有类定义的前面。

     

  12. 请回答Java中异常的分类及其概念。
    1.Java中异常分为受检异常,运行时异常,错误。
    2.受检异常是程序执行期间发生的严重事件的后果。
    3.运行时异常通常是程序中逻辑错误的结果。
    4.错误是指发生了不正确的情况,这些情况都比较严重,一般程序很难处理。

     

  13. 请写出用if语句实现计算y=|x-5|的代码。
    1. if(x - 5 >= 0) y = x - 5 else y = 5 - x

     

  14. 请说明while语句和do语句的区别。
    1.while语句先计算条件表达式的值,值为false不执行循环体语句,值为true时重复执行循环体语句直到表达式为false结束循环。
    2.do语句首先执行循环体语句,再计算条件表达式的值,值为false时结束本次循环,值为true继续执行循环体语句。

     

  15. 请问Java中都有哪几种流程控制语句?
    1.有4种流程控制语句,赋值语句、分支语句、循环语句、跳转语句。

     

  16. 请简要说明程序员处理异常的方法。
    1.try catch。
    2.将异常抛出方法中,由调用者方法进行处理。

     

  17. 简述类的概念。
    1.现实世界中存在很多同类的对象,它们来自于同一种原型具有一样的共性,这就是类的概念。

     

  18. 什么是构造方法重载?
    1.创建多个形参列表不同的构造方法实现构造方法的重载,再根据实际情况调用需要的构造方法。

     

  19. 说明类成员的访问权限修饰符及其作用。
    1.访问修饰符一共有4种,分别是public、protected、默认、private。
    2.public访问修饰符不同包、子类、同包、同类之间可以访问。
    3.protected访问修饰符子类、同包、同类之间可以访问。
    4.默认访问修饰符同包、同类之间可以访问。
    5.private访问修饰符同类之间可以访问。

     

  20. 重载方法的规则是什么。
    1.返回类型可以相同可以不同。
    2.方法形参列表必须不同。

     

  21. Java中实例变量与静态变量的区别是什么?
    1.实例变量要new完对象之后才能使用,单个对象使用。
    2.静态变量类加载时创建,多个对象共享数据。

     

  22. 访问数组元素时需注意哪些问题?
    1.数组必须已经初始化,在内存中具有空间。
    2.通过数组名加下标访问数组元素,下标从0开始。
    3.数组在初始化时大小就已经固定好了,访问时要注意下标数字要小于数组length,否则可能会出现数组下标越界异常。

     

  23. 声明数组和创建数组的区别是什么?
    1.声明数组只是用数组名引用该数组,并没有在内存中分配空间,数组中没有任何元素,还不能进行访问。
    2.创建数组有两种方式,分别为动态和静态创建,创建完以后会自动在内存在分配空间,通过数组名加下标访问数组元素。

     

  24. 请写出对类String的两个对象进行相等判定时,使用“==”与equals()方法的不同。
    1.==比较的是对象是否相同。
    2.Object的equals()方法默认判断对象是否相等, String会自动重写equals()方法,变为判断字符串内容是否相同。

     

  25. 说明系统为 String类和 StringBuffer类的对象分配内存时的区别。
    1.Java系统String类的对象分配内存时,将对象中所含字符实际个数等额分配。
    2.StringBuffer类的对象分配时,除了字符所占空间外,再另加16个字符大小缓冲区。

     

  26. 请写出与数组相比,Vector对象的特点。
    1.Vector对象的大小可以根据需要来改变。
    2.Vector对象保存的元素的类型可以不一样。

     

  27. 简单说明数组与Vector类的显著区别。
    1.数组在初始化时大小就固定了,只能保存声明数组时的数据类型,能保存基本数据类型和类对象。
    2.Vector类的大小可以根据需要来改变,能保存不同的数据类型,不能保存基本数据类型,只能保存类对象。

     

  28. 请写出通过继承,子类可以获得的好处。
    1.子类可以拥有父类的所有属性和方法。
    2.可以扩展原有的代码,生成新的类。

     

  29. 什么是继承?
    1.将一个已有类中的数据和方法保留,并加上自己特殊的数据和方法,构成一个新的类,这就是继承的概念。

     

  30. 请说明父类与子类的联系与区别。
    1.一般更大的类可以看作是父类。
    2.父类不能使用子类的属性和方法。
    3.父类的对象引用可以指向子类对象。
    4.子类可以拥有父类的所有属性和方法。

     

  31. 在Java中如何判断两个对象各个属性(成员变量)的值是否相同?
    1.重写equals方法改为判断值是否相同。

     

  32. 请写出方法覆盖的两个重要原则。
    1.覆盖方法的允许访问范围不能比原方法小。
    2.覆盖方法所抛出的异常不能比原方法更多。

     

  33. 什么是方法覆盖?
    1.父类中原有的方法可能不能满足要求,因此子类修改父类中原有的方法,这就是方法覆盖。

     

  34. 简述关键字super的作用及注意事项。
    1.如果子类覆盖重写了父类的方法,想再调用这个父类的方法,可以通过super调用该方法。
    2.也可以在子类构造方法中使用super关键字调用父类构造方法。
    3.在子类中使用super关键字调用父类成员,可能是在父类或超类,往上找直到找到为止。

     

  35. 什么是抽象类、抽象方法?在使用过程中有什么注意事项?
    1.定义时只定义了方法没有定义具体实现的类称为抽象类,使用abstract关键字修饰,这就是抽象类。
    2.定义时只定义了方法没有定义具体实现的方法称为抽象方法,使用abstract关键字修饰,这就是抽象方法。
    3.抽象类不能被实例化,抽象类才能拥有抽象方法,抽象方法不能直接被调用。
    4.继承抽象类的子类才能被实例化,子类将抽象方法实现后才能被调用。

     

  36. 请写出一个接口中能够包含的元素,及这些元素各自默认的修饰符。
    1.能够包含的元素有成员方法和成员变量。
    2.成员方法默认的修饰符是abstract。
    3.成员变量默认的修饰符是static、final。

     

  37. 请说明抽象类和接口的联系与区别。
    1.定义时只定义了方法没有定义具体实现的类称为抽象类,使用abstract关键字修饰。
    2.抽象类不能被实例化,Java是单继承机制,子类只能继承一个抽象类。
    3.接口中的成员方法默认的修饰符abstract,成员变量默认的修饰符是static、final。
    4.可以通过实现多个接口从而达到多重继承的效果。

     

  38. 什么是数据流,数据流分为哪些类,各类的特点是什么?
    1.数据流是指一组有序的,有起点和终点的字节集合。
    2.数据流有输入数据流和输出数据流,输入流只能读不能写,输出流只能写不能读。
    3.从数据流中读取数据时,必须有一个数据源和该数据流相连。

     

  39. 请说明输入数据流中方法read()和方法read(byte[ ] b)的作用是什么?
    1.read()的作用是:从输入流中读取一个字节的二进制数据。
    2.read(byte[] b)的作用是:将多个字节读入到数组中,填满整个数组。

     

  40. Java如何实现对象的序列化?
    1.可以通过实现Serializable接口标记这个类的对象是可以被序列化的,否则不能被序列化。

     

  41. 请简述过滤器数据流的概念及其种类。
    1.一个过滤器数据流在创建时与一个已经存在的数据流相连,从这样的数据流中读取数据时,它提供的是对一个原始输入数据流的内容进行了特定处理的数据。
    2.过滤器数据流有缓冲区数据流和数据数据流两种。
     

  42. 请写出采用缓冲式输入方式,按行输入文件内容的步骤。
    1.先创建FileReader对象,再利用FileReader对象创建BufferedReader对象,然后再对该对象使用readLine()方法。

     

  43. 为什么在关闭缓冲区输出流之间应执行flush方法?
    1.强制将剩余的数据写入到输出流中。

     

  44. 请写出Java系统提供的支持文件随机访问的类和该类提供的读取一个字符的方法。
    1.RandomAccessFilechar.
    2.readChar().

     

  45. 请简要说明AWT组件与Swing组件的区别。
    1.AWT组件包含部分本地代码,也称重量级组件。
    2.Swing组件不包含任何本地代码,也称轻量级组件。

     

  46. 请说明按钮和按钮组的关系。
    1.可以创建一个按钮组,使用add()方法添加按钮到按钮组。
    2.当多个按钮添加到一个按钮组,选中一个按钮时,其他按钮会显示为选中状态。

     

  47. 如何处理 JComboBox上的用户事件?
    1.可以通过ActionListener处理或ItemListener处理。
    2.用户输入项目后按Enter键,对应的接口是ActionListener。
    3.用户选定项目,对应的接口是ItemListener。

     

  48. BorderLayout布局管理器是如何安排组件的?
    1.每个由BorderLayout管理的容器都被划分为5个区域,分别代表容器的上部,下部,左部,右部,中部,每个区域可以加入一个组件。
    2.分别使用常量BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST,BorderLayout.CENTER来表示。

     

  49. 请写出Java语言中的事件处理机制。
    1.事件被直接送往产生这个事件的组件,组件需要注册一个或多个侦听程序。
    2.侦听程序中的类包含了事件处理程序,用来接收和处理该事件。

     

  50. 请写出在java.awt.event中,用来检测并对事件做出反应的模型所包括的三种对象。
    1.源对象,监视器对象,事件对象。

     

  51. 什么是事件侦听程序?
    1.接收并处理某类用户事件,组件必须注册相应的事件处理程序,这种事件处理程序称为事件侦听程序。

     

  52. 请写出Graphics2D类中stroke、paint两种属性的作用。
    1.stroke属性控制线条的宽度,笔形样式,线段连接方式。
    2.paint属性控制填充效果。
     

  53. 请说明列表的当前选项发生变化的处理过程。
    1.当用户在列表上选择时,将引发ListSelectionEvent事件,调用valueChanged(ListSelectionEvent)方法响应处理。
     

  54. 简述 JTextField和 JTextArea的区别。
    1.JTextField是单行文本输入框。
    2.JTextArea是多行多列文本输入框。

     

  55. 试述JMenuBar、JMenu、JMenuItem的关系。
    1.JMenuBar用来包容一组菜单。
    2.JMenu用来包容一组JMenuItem。
    3.JMenu可以被添加至JMenuBar或另一个JMenu。

     

  56. 请简要说明建立一个菜单系统的过程。
    1.先创建一个JMenuBar,通过setMenuBar将其放入到某个框架中。
    2.再创建JMenu,通过JMenuBar的add()方法将其加入到菜单栏中。
    3.再创建JMenuItem,通过JMenu的add()方法将其加入到不同的菜单中。

     

  57. 请简述线程的概念。
    1.线程是操作系统能够进行运算调度的最小单位。
    2.线程被包含在进程之中,是进程中的实际运作单位。
    3.一个进程可以拥有多个线程,每个线程并行执行不同的任务。

     

  58. Java对被阻塞的线程是如何处理的?
    1.所有被阻塞的线程按序排队组成一个阻塞队列。
    2.一个被阻塞的线程就绪后被放到就绪队列的队尾。

     

  59. 请写出用Thread类的子类创建线程并启动线程所包含的步骤。
    1.继承Thread类。
    2.实现run()方法。
    3.用该类创建一个对象。
    4.用start()方法启动线程。

     

  60. 请说明创建线程两种方法的适用条件。
    1.当一个run()方法被置于Thread类的子类中时,可以通过继承Thread类的方式创建线程。
    2.Java中只允许单重继承,如果继承了其他父类时,可以通过实现Runnable接口的方式创建线程。

     

  61. 线程的结构都包含哪些部分,作用分别是什么?
    1.在Java中,线程由虚拟cpu、执行的代码、处理的数据三部分组成。
    2.虚拟cpu控制整个线程的运行。
    3.执行的代码由Thread类控制按序运行。
    4.处理的数据由代码在执行过程中进行处理。

     

  62. 请说明Java基本字符流中读者、写者出现的原因及作用。
    1.有些程序语言使用ASCI字符集,Java使用Unicode字符集表示字符和字符串。
    2.读者和写者的作用是在字节流和字符流之间作中介。
    3.方便把以字节表示的流转换为字符。

     

  63. 请写出在Java语言中,关键字synchronized的作用。
    1.对共享对象的操作上锁。

     

  64. Java中如何实现“对象互斥锁”?
    1.可以使用Vector声明变量。
    2.或使用synchronized声明操作共享数据的一个方法或一段代码。
     

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值