Java第五章
- 格式:pdf
- 大小:206.49 KB
- 文档页数:6
第五章多线程选择题1. 线程调用了sleep()方法后,该线程将进入( C )状态。
A.可运行状态B.运行状态C.阻塞状态D.终止状态2. 关于java线程,下面说法错误的是(D)A.线程是以CPU为主体的行为B. java利用线程使整个系统成为异步C.创建线程的方法有两种:实现Runnable接口和继承Thread类D. 新线程一旦被创建,它将自动开始运行3.在java语言中,临界区可以是一个语句块,或者是一个方法,并用(A )关键字标识。
A.synchronizedB.includeC.importD.Thread4. 线程控制方法中,yield()的作用是(D)A.返回当前线程的引用B.使比其低的优先级线程执行C.强行终止线程D.只让给同优先级线程运行5. java用(A)机制实现了进程之间的异步执行A.监视器B.虚拟机C.多个CPUD.异步调用6. 下面代码运行的结果是什么?(D)public class MyThread implements Runnable {String myString = "Yes ";public void run() {this.myString = "No ";}public static void main(String[] args) {MyThread t = new MyThread();new Thread(t).start();for (int i=0; i < 10; i++)System.out.print(t.myString);}}A. 打印yes yes yes yes yes yes B. 打印no no no no no no no noC. 打印yes no yes no ye no ye no D. 不确定二、填空题1.____多线程____是java程序的并发机制,它能同步共享数据、处理不同的事件。
第5章数组什么是数组?数组在实际程序中起到什么作用?数组用来存储数据,类似数据的缓存,是一组有序列的数据集合。
通过本章的学习,可以了解数组如何进行数据存储,并且结合编程实例,掌握数组的设计和操作。
5.1数组概念的引入本节将介绍数组的一些基本概念。
这些概念有助于在以后的编程过程中,更好的使用数组。
5.1.1实例的引入走进一家运动器材店,会看到很多的体育运动器材,有篮球、排球、足球、羽毛球、乒乓球、高尔夫、滑板、健身器材等等。
如果要为这家店作一个数据库系统,首先要建立一个类似于集合的表格,如下所示。
{篮球,排球,足球,羽毛球,乒乓球,高尔夫,滑板,健身器材}在程序开发中,将这种集合形式经过改装,变成了本章要重点讲述的数组,将上述的例子用数组来表示:运动器材{篮球,排球,足球,羽毛球,乒乓球,高尔夫,滑板,健身器材}5.1.2数组的概念数组是具有相同数据类型的数据的集合,例如上一小节中提到的运动器材集合。
相同的数据类型,意味着数组中每个数据都是同一类型数据,或者属于基本数据类型中相同类型的数据,或者属于对象类型中相同类型的数据。
在生活中,一个班级的学生、一个学校的所有人、一个汽车厂的所有汽车等等,这些都可以形成一个数组。
数组如果按照维数来分,分为一维数组、二维数组、三维数组和多维数组等,每一维代表一个空间的数据。
一维数组代表的就是一维空间的数据,例如自然数从1~10。
{1,2,3,4,5,6,7,8,9,10}二维数组代表的就是二维空间的数据,例如在数学中的坐标。
{(1,2),(3,4),(5,6),(7,8)}这里的每一组数据都代表了二维空间中的x和y的坐标值。
三位数组代表的就是三维空间的数据,所谓三维空间就是指立体空间,例如立体坐标。
{(1,2,3),(2,3,4),(3,4,5),(4,5,6),(5,6,7)}这里的每一组数据都代表了三维空间中的(x,y,z)轴的坐标值。
5.1.3用实例说明数组的用处本节重点是说明数组的优点,可能会遇到后面小节讲述的内容,先不要理会。
第五章编程题1.编写一个程序,实现字符串大小写的转换并倒序输出。
要求如下:(1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。
(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。
(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。
【参考答案】public class Chap5e {public static void main(String[] args) {String str="Hell5oWorld";char[] ch=str.toCharArray();StringBuffer s=new StringBuffer();for(int i=ch.length-1;i>=0;i--){if(ch[i]>='A'&&ch[i]<='Z')s.append(String.valueOf(ch[i]).toLowerCase());elseif(ch[i]>='a'&&ch[i]<='z')s.append(String.valueOf(ch[i]).toUpperCase());elses.append(String.valueOf(ch[i]));}System.out.print(s.toString());}}2. 利用Random类来产生5个20`30之间的随机整数并输出。
【参考答案】import java.util.Random;public class Chap5e {public static void main(String[] args) {Random r=new Random();for(int i=0;i<5;i++){System.out.println(r.nextInt(30-20+1)+20);}}}3. 编程. 已知字符串:”this is a test of java”.按要求执行以下操作:(1) 统计该字符串中字母s出现的次数(2) 取出子字符串”test”(3) 将本字符串复制到一个字符数组Char[] str中.(4) 将字符串中每个单词的第一个字母变成大写,输出到控制台。
【Java】《Java程序设计基础教程》第五章学习5.1 抽象类Java语⾔中,⽗类的某些⽅法不包括任何逻辑,并且需要由⼦类重写。
在这种情况下,⽤abstract关键字来修饰⼀个类时,这个类叫做抽象类,⽤abstract关键字来修饰⼀个⽅法时,这个⽅法叫做抽象⽅法。
抽象⽅法只需声明,⽆需实现;抽象类不能被实例化,必须通过抽象类的⼦类来间接实现;抽象类不⼀定要包含抽象⽅法,若类中包含了抽象⽅法,则该类必须被定义为抽象类。
抽象类可以包含⾮抽象⽅法。
继承抽象类的类必须实现抽象类的抽象⽅法,否则,也必须定义成抽象类。
即使抽象类中⽆抽象⽅法,也需要被继承后才能创建其⼦类的实例。
5.2 接⼝接⼝是抽象类的⼀种,只包含常量和⽅法的定义,⽽没有变量和⽅法的实现,且其⽅法都是抽象⽅法。
它的⽤处体现在下⾯⼏个⽅⾯:1.接⼝的定义(1). 通过接⼝实现不相关类的相同⾏为,⽽⽆需考虑这些类之间的关系(2). 通过接⼝指明多个类需要实现的⽅法(3). 通过接⼝了解对象的交互界⾯,⽽⽆须了解对象所对应的类在声明接⼝的成员时不被允许使⽤⼀些声明修饰语,⽐如不能在接⼝的成员声明中使⽤transient、volatile 或者 synchronized。
同样,不能在声明接⼝成员的时候使⽤private和protected修饰语2.接⼝的实现在类的声明中⽤implements⼦句来表⽰⼀个类实现某个接⼝,在类体中可以使⽤接⼝中定义的常量,⽽且必须实现接⼝中定义的所有抽象⽅法。
⼀个类可以实现多个接⼝,在implements⼦句中⽤逗号分开。
3.接⼝与抽象类、类的区别(1). 接⼝中不能有⾮抽象类的⽅法,但抽象类中可以有(2). ⼀个类能实现多个接⼝,但只能有⼀个⽗类(3). 接⼝也可以继承,与类不同,接⼝可以继承多个接⼝(4). ⽆关的类也可以实现同⼀接⼝5.3 包包是⼀组相关的类和接⼝的集合。
包不仅使得类的组织和管理更容易,也消除了不同组的类中潜在的类名冲突。