1.程序设计语言的基本成分:数据成分,运算成分,控制成分,传输成分。
例:
数据:2
运算:±
控制:if
传输:函数
2.软件需求规格说明书:
a.便于用户、开发人员进行理解和交流
b.反映出用户问题的结构,可以作为软件开发工作的基础和依据
c.作为确认测试和验收的依据
错误选项:便于开发人员进行需求分析
解释:需求说明书不需要进行需求分析,已经需求分析过了
软件需求规格说明书的作用:
a.软件验收的依据
b.用户与开发人员对软件要做什么的共同理解
c.软件设计的依据
错误选项:软件可行性研究的依据
解释:软件可行性研究的依据 :系统目标
3.软件工程的三要素:工具,过程,方法
4.软件生命周期可分为定义阶段,开发阶段,维护阶段。详细设计属于开发阶段
5.javap反编译
6.线性结构是一个有序数据元素的集合
常见的线性结构:线性表,堆,栈,队列,双队列,数组,串
非线性结构:树(二叉树),图(网),广义表,二维数组,多维数组
二叉树的逻辑结构是树状结构
7.循环队列
front的初始值:第一个元素的前一项
rear的初始值:最后一个元素
队满时:(rear+1)%n==front
计算循环队列的个数:计算方法是“尾指针减头指针,若为负值,则加其容量即可”“rear-front”
比较次数比元素数少1
8.在关系数据库中,属性是各个实体的属性,用‘二维表’表示实体之间联系
9.选择是按照行进行,投影是按列进行,自然对接是对两个表进行操作的
10.数据字典(DD)(Data dictionary) 所定义的对象都包含在数据流图(DFD图)(Data Flow Diagram)
DD是对DFD图中被命名的元素进行确切解释
数据字典DD包括:数据项、数据结构、数据流、数据存储、处理过程
结构化分析常用的工具是数据流图,数据字典,判定数,判定表
11.白盒测试主要针对的是程序代码逻辑,黑盒测试主要针对的是程序所展现给用户的功能,简单的说就是前者测试后台程序后者测试前台展示功能。
黑盒测试的方法:边界值分析法,错误推测法,等价类划分法,因果图
白盒测试方法:逻辑覆盖(语句覆盖、路径覆盖、判定覆盖、条件覆盖),基本路径测试,
1.java语言用字节码进行解释执行,’JVM‘虚拟机编译生成字节码
2.URL是’ 统一资源定位符‘的缩写(Uniform Resource Locator)
3.java字节码文件的拓展名:.class
4.一颗二叉树共有47个结点,其中23个度为2的结点。根在第一层,二叉树的深度为:6
深度为k的二叉树至多有2^k-1个结点
5.数据独立性分为逻辑性和物理独立性。当总体逻辑结构改变时,其逻辑结构可以不变,而根据局部逻辑结构编写的应用程序不必修改,称为 物理独立性。
5.关系数据库中能实现专门关系运算包括:选择、连接、投影
6.软件按功能分为应用软件、系统软件、支撑软件(或工具软件)
1.线性链表:
存储空间不一定是连续的,且元素的存储顺序是任意的
2.char类型的取值范围:在java中是16位的,俩个字节,因为java用的是unicode
范围:0~2^16-1 或0~65535
3.final定义常量,const关键字是c保留的,在java中不能使用
4.ASCII码 a:97
5.NULL不是java关键字,关键字都小写
6.length()方法获取当前 字符串 长度
length属性获取 字符数组 长度
1.bit是计算机存储单位,’类‘是java程序中基本的结构单位
2.java中的字符变量在内存中占16位(char)
3.Java中的类包装对应关系是:byte(Byte),short(Short),int(integer),long(Long),double(Double),char(charscter),boolean(Boolean)
1.substring() 方法用于提取字符串中介于两个指定下标之间的字符。
2.异常处理:try内容执行完成后,自动执行finally语句。finally每次都要执行,常用来关闭流对象或结束线程
3.double d =Matcos(MattoRadians(42)); 计算42度(角度)的余弦值
toRedins角度转化为弧度,toDegrees()参数转化为角度
4.逻辑运算符有三种:! && || 非 与 或
位运算符:与 或 非 异或 & | ~ ^
移位运算符:<<左移(相当于乘以2) >>右移(相当于除以2) >>>无符号右移,空位均补0
1.软件开发周期是指:软件产品从提出、实现、使用维护到停止使用退役的过程
2.数组a[4] 可以存4个元素,下标位0123 a.length为4
3.break语句最常见的用法是在switch语句中,通过break语句退出switch语句,使程序从整个switch语句后面的‘第一条语句’开始执行。
4.仅有顺序、选择、循环结构构成的程序为结构化程序.
5.public static void main(String args[]){
int a=3;
int b=5;
System.out.println(a/b);
}
结果:0
默认是int
6.int i=0;
while(i<100){
i++;
if(i<100)continue;
System.out.println(i);
}
结果:100
1.长度为n的线性表,最坏情况下,排序为n(n-1)/2次。除了堆排序算法的比较次数是O(nlog2 n),其他的都是n(n-1)/2
2.长度为n的线性表,顺序查找最大次数为n(我需要数据结构的书)
3.java中,所有类的根类是javlanObject
4.用package说明一个包时,该包的层次结构必须与文件目录层次结构相同
5.InputStream时字节流,字符输入时字符流CharInputSteam
6.static 静态变量只能调用静态变量,静态方法中不能引用非静态变量
7.一个对象序列化的接口,一个类只有实现了serializable接口,他的对象才是可以序列化的。因此如果要序列化某些类的对象,这些类就必须实现serializable接口。而实际上,serializable是一个空接口,没具体内容,他的目的只是一个简单的标识一个类的对象可以被序列化。
serializable 是一个空接口
8.java有多重继承没有多继承。假设有三个类,人类、士兵类、步兵类。多重继承是指步兵继承了士兵类,士兵类继承了人类。。。。假设有农民工类、工人类、农民类。农民工类有工人和农名俩个类,称为多继承,多继承是指一个子类有俩个父类。
java是单一继承的
9.byte [ ] array1,array2 [ ];
byte array3 [ ] [ ];
byte [ ] [ ] array4;
因为byte[ ]声明的是个数组,但array2[ ]也是个数组,所以array2是array2[ ] [ ] 一个二维数组
而array1[ ]是一个一维数组,所以不能相互传递引用。array3和array4是二维数组。
10.内部类不可以使用abstract修饰符定义为抽象类(你需要看书了解抽象类)
11.在子类中调用被重写父类方法的关键字:super(子类重写父类)
12.面向对象方法中,继承是指 类之间共享属性和操作的机制
13.windowsListener 的 方法:
windowActivated windowClosed windowClosing windowDeativated windowDeciconifiled windowlconified windowOpened
14.类变量即静态变量,用static修饰 类变量属于成员变量
java类中有俩种成员变量
一种是类变量或静态变量 在前加static修饰 这类变量一旦赋值 它的值就在你new出来的任何一个实例中具有相同的值。
另一种叫实例变量 前面不加static修饰 每一个new出来的新实例都可以对它赋予自己需要的值
class example{
static int a = 0;
int b = 1;
}
a是类变量,b是实例变量
example e1 = new example();
example e2 = new example();
改变e1中a的值 e2中a的值也会变
改变e1中b的值 e2中b的值不会变
15.java程序默认引用的包java.lang
16.抽象类可以没有方法体 public abstract String getDescription();
17.方法重写规范:
a.子类方法必须与父类方法的名称和形参保持一致
b.返回类型必须与父类一致
c.不能缩小父类的访问权限,但可以扩大访问权限
d.不能抛出比父类方法更多的异常
18.下列代码中的内部类名是 B
import java. awt.event.;
lapoct javax.swing.;
class TalkingClock(
public void start(int interval,final boolean beep){
ActionListener listener=new ActionListener(){
public void actionPerformed(ActionEvent event){… }
}
Timer t=new Timer(interval,listener)
t.start();
}}
A. Timer
B. ActionListener
C. listener
D. 匿名
内部类就是在类内部重新定义的新类,该类能连接外部类,但是不能和外部类进行通信。
ActionListenser有自己的类方法体,而Timer没有,只是实例化了一个Timer对象。
19.类继承Runnable接口,必须重写run方法
20.堆栈中为了保证访问数据得一致性,应该对类得数据进行封装,而实现数据得到封装得级别应该是private
21.父类先行,儿子跟上
22.方法重写:子类方法的返回类型、方法名、参数与父类一致
方法重载:在一个类中定义了多个同名的方法,它们有不同的参数个数或参数类型
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一 种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
23.抽象类不能实例化
抽象方法不能有方法体,而不是方法体为空,压根就不能有!
24.Vector类是实现可增长的对象数组,与数组一样,arrayList是list接口的大小可变数组的实现
1.在面向对象中,类的实例称为‘对象’
2.类是变量和‘方法’的结合体
3.java源文件中最多只能有一个‘public’类,其他类的个数不限
4.在java中所实现的多维数组,实际上是由一维数组构成的 ‘数组的数组’
5.在面向对象方法中,’类‘描述的是具有相似属性与操作的一组对象。
6.构件不能独立的显示出来,必须将构件放在一定的’容器‘中才能显示。
7.默认引入的包,java.Lang
8.在面向对象方法中,类之间共享属性和操作的机制称为’继承‘
9.在一个类的内部嵌套定义的类称为’内部类‘
10.java中访问限定符有public,protected,private,default等
11.能够用于创建可变字符串对象的类是:
StringBuffer和StringBuilder的字符长度都可变,前者支持多线程,速度慢点。后者不支持多线程,速度稍快
12.‘ArrayList’在定义数组时不必限制数组大小
13.数组有‘length’属性,字符串有’length()‘方法
14.继承性使代码能够‘重用’
15.抽象类中含有没有实现的方法,该类不能‘实例化’。
16.声明类时加上’final‘表示该类不能有子类
17.’静态类方法‘可以通过类名直接调用
18.class Person{
private String name;
public Person(String name){
this.name=name;
}
18.用户可以自定义异常,但所定义的类必须是exception异常类
19.final没有子类,public可被重写,private不可被重写,static类可以被重写