1.public class Text{
public int aMethod(){
static int i=0;
i++;
System.out.println(i);
}
public static void main(String args[ ]){
Test test = new Test();
test.aMethod();
}
}
编译失败:static要独立于方法体外不能修饰局部变量,aMethod方法要么有void要么有return
2.程序调试的任务是:诊断和改正程序中的错误
3.软件测试的目的是:发现程序中的错误
4.public class Person{
static int arr[] = new int[10];
public static void main(String args[]){
System.out.println(arr[9]);
}
}
输出:0
arr[]为整型数组,分配地址后默认值为0,所以创建数组时也是对每个数组元素赋初值0
4.除零异常:ArithmeticException
数组越界异常:ArrayIndexOutOfBoundsException
5.问题处理方案的正确而完整的描述称为‘算法、程序和流程图’
6.程序测试分为静态分析和动态测试。其中‘静态分析’是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
7…dat文件是纯文本,没有数据属性结构方面的信息。
8.FileReader是字符流
BufferedReader是带了缓冲的字节流
fileInputStream是字节流
ObjectInputStream是对象流
9.java.io包的File类是非流类
java.io包中的类可以处理不同类型的流,比如字节流、字符流、对象流、非流类等
File类是一个重要的非流类,它是以一种系统无关的方式表示一个文件对象的属性。
10.nio包的新特点:为所有的原始类型提供(Buffer)缓存支持。字符集编码解码解决方案。
channel:一个新的原始I/O抽象。支持锁和内存映射文件的文件访问接口。提供多路(non-bloking)非阻塞式的高伸缩性网络I/O
11.在网址上读取html文件InputStreamReader(读取输入流文件)
12.数据库设计种反映用户对数据要求的模式是:外模式
外模式(用户级),内模式(物理级),模式(概念级)
13.数据库设计的四个阶段:需求分析、概念设计、逻辑设计和‘物理设计’
14.ObjectOutputStream类的构造方法是ObjectOutputStream(OutputStreamOut)
java中的二进制流全部写入到内存中。
15.字节输入流Reader,字符输出流Writer,字节输入流InputStream,字节输出流OutputStream
16.在java的输入输出流中,数据从数据源流向数据目的地,流的传送是‘串行’的
1.实现多线程的俩种方式:
a.继承Thread,然后重写它的run方法,将线程的逻辑放入其中
b.实现Runnable接口,并实现它的run方法
2.线程的优先级可以在创建时设置,也可以通过getPriority()获得优先级,也可以通过setPriprity()设置
3.run()执行线程的方法
4.线程状态转换序列:新建,可运行,运行,阻塞,可运行。。。
5.压栈线程和弹栈线程之间交互与同步(this.wait())
public class StackTest
private int idx=0;
private int[]data=new int[8]
public void push(int i)
synchronized(this)
______;
data(idx)=i;
idx++;
……
用wait()和notify()可以实现线程的同步;当某线程需要在synchronized块中等待共享数据状态时调用wait方法,这样线程等待并暂时释放共享数据对象的锁,其他线程可以获得该对象的锁并进入synchronized块对共享进行操作。当其操作完后,只要调用notify()方法就可以通知正在等待的线程重新占有锁并运行。
6.java. lang. Thread类和java. lang. Runnable是创建线程的两个方法,分别是实现Thread类和继承Runnabe(接口,而ThreadGroup类是管理一组线程的类。而Serializable是序列化,将一个对象的状态保存起来,在适当的时候再获得,它不支持线程。
7.一定使调用线程改变状态的是’sleep()’
该题考查线程的状态转换。由于notify()只是唤醒一个线程,但我们由不能确定具体唤醒的是哪一个线程,也许我们需要唤醒的线程不能够被唤醒,所以线程不一定改变状态,选项A错误;线程调用了yield()方法,意思是放弃当前获得的CPU时间片,回到可运行状态,这时与其他进程处于同等竞争状态,OS有可能会接着又让这个进程进入运行状态,所以线程状态不一定改变,选项B错误;isAlive()是判断线程当前状态是否处于Alive状态,不改变线程状态,所以选项D错误;调用的sleep()之后,线程则一定进入阻塞状态,所以选项C正确。
8.如果要安全的终止一个线程t,可以采用的正确的方法:可以使用标志flag,通过设置flag通知线程t结束。
有三种方法可以终止线程:
a.使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
b.使用stop强行终止线程(这个方法不推荐使用,因为stop和suspend,resume一样,也可能发生不可预料的结果)
c.使用interrupt方法中断线程。suspend临时挂起,yield谦让,stop强行终止运行,yield当前程序停止运行而让其线程运行suspend临时挂起当前线程。
9.一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。在java语言中,临界区可以是一个语句块或是一个方法,并用synchronized关键字标识。
10.线程分为五个阶段:新建状态,可运行状态,运行状态,阻塞状态,终止状态
11.当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值是【false 】
解释:考察instanceof的概念。instanceof是一个二元操作符,并不是java的保留关键字。它的作用是查看左边对象是否是右边类的实例,返回boolean类型的数据。r不是Thread的实例,所以返回false
12.在java中,线程的模型就是一个cpu、程序代码和’数据‘的封装体
13.java中,线程必须属于一个进程,线程是程序运行中的一个‘执行流’。
14.线程由于调用sleep()方法进入阻塞状态,当睡眠结束时,该线程将进入‘可运行’状态(也叫就绪状态)
15.创建一个线程并运行:
public class Try extends Thread{
public static void main(String args[]){
Thread t = new try();
t.start();
}
public void run(){ System.out.println(“Try”); }
}
16.java中的’线程体‘是由java.lang.Thread类的run()方法定义的
17.thread thread1 = new SomeThreadClass();该语句仅仅只是创建了线程,并不马上启动,此时处于‘新建状态’
18.java的线程调度时一种基于优先级的’抢占式调度’
1.类Panel默认的布局管理器是:FlowLayout
FlowLayout是applet和panel的默认布局管理器
BorderLayout是windows,frame,dialog的默认布局管理器
Frame是window类的直接子类
Frame对象显示的效果是一个窗口
2.Swing中提供了JOptionPane类来实现 类似Windows平台下的MessageBox功能
利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。且这些对话框都是模式对话框。
3.MouseEvent是鼠标事件
ActionEvent是组件事件(鼠标点击菜单时产生的事件)
KeyEvent是键盘事件
WindowEvent是窗口事件
4.JMeun菜单
JMeunBar菜单栏
JMeunItem菜单的子选项
5.Calendar日历类提供日期和时间的表示,它以格里历(即阳历)来计算
6.Swing中表示进程条的是Javax.swing.JprogressBar
7.布局管理器是用来管理组件在容器中的位置的,常用的有FlowLayout,BorderLayout
8.接口ActionListener中只有一个方法,这个方法名称是actionPerformed
1.启动applet程序时,首先调用的是init()方法,进行初始化
2.当浏览器重新返回Applet所在页面时,将调用Applet类的方法是start(),关闭浏览器释放Applet占用的所有资源的方法是destory()
3.在html文件的标志中作为可选属性的是‘Applet主类的文件名’
通过使用标记,至少要指定Applet子类的位置以及浏览器中Applet的显示大小
必选参数包括:code
4.Applet的主类要定义为Applet类或JApplet类的子类
Applet程序有两种方法,一种是使用appletviewer,另一个是使用支持java的浏览器
5.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
1.关于二叉树结点(计算需要整理)
叶子结点总是比度为2的结点多一个.
总结点数=所有结点加一起