公共基础
数据库
数据库设计过程主要包括需求分析、概要结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。
数据库系统的特点为高共享、低冗余、独立性高、具有完整性等。
软件设计原理提出如下优化准则:1划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。2一个模块的作用范围应在其控制范围之内,且判定所在模块应与受其影响的模块在层次上尽量靠近。3软件结构的深度、宽度、扇入、扇出应适当。4模块的大小要适中。
数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图,外模式也称子模式或用户模式,它是数据试图,给出了每个用户的局部数据描述。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
数据字典是在需要分析阶段建立,在数据库设计过程中不断修改、充实和完善。
数据库系统的三级模式是概念模式、外模式和内模式。
在数据库设计中,将E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
层次型、网状型和关系型数据库划分原则是数据之间的联系方式。
在E-R图中实体集用矩形表示,属性用椭圆表示,联系用菱形。
对象:
对象之间进行通信的结构消息。
多态性是指同一个操作可以是不同的对象行为,对象不一定必须有继承性,封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及现实操作。
面向对象方法中,继承是指类之间共享属性和操作的机制。
软件测试:
白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖。
黑盒测试法:等价类划分类、边界值分析法、错误推测法。
在黑盒测试方法中,设计测试用例的主要根据是程序外部功能。
需求分析阶段任务有:需求获取、需求分析、编写需求规格说明书、需求评审
软件危机主要表现在:软件需求的增长得不到满足,软件开发成本和进度无法控制,软件质量难以保证,软件不可维护或维护程度非常低,软件的成本不断提高,软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
程序调试的任务是诊断和改正程序中的错误。
软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段,主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护。
在软件开发中,需求分析阶段产生的主要文档是软件需求规格说明书,可行性分析阶段产生可行性分析报告。总体设计阶段产生的文档是概要设计说明书。在概要设计阶段编写的文档是集成测试计划。
数据结构:
二叉树:
遍历二叉树:
前序:若二叉树为空,则不进行任何操作:否则先访问根节点,在前序访问左子树,在前序访问右子树
中序:若二叉树为空,则不进行任何操作:否则先中序遍历左子树,访问根节点,再中序遍历右子树
后序:若二叉树为空,则不进行任何操作:否则先后序遍历左子树,再后序遍历右子树,再访问根节点。
遍历的情况如下:
二叉树的基本性质:在任意一颗二叉树中,度为0的叶子结点总是比度为2的结点多一个。
程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
栈是先进后出,队列是先进先出,先到先服务的作业调度。
在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。
栈是一种支持子程序调用的数据结构是栈。栈是一种只能在一端进行插入或 删除的线性表,在主题序调用函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
自然连接市一种特殊的等值连接,要求两个关系中进行比较的分量必须是属于组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。
算法的有穷性是指:算法程序的运行时间是有限的。
将E-R图转换为关系模式时,实体和联系都可以表示为关系,E-R图中属性也可以转换成关系的属性。
线性结构:
线性结构应满足:有且只有一个根节点与每个结点最多有一前件,也最多有一个后件,所以只有一个根结点的数据结构不一定是线性结构,有一个以上根结点的的数据结构一定是非线性结构,
循环链表和双向链表都是线性结构的数据结构。
异常:
异常类LinkageError的父类是Error。
异常类InterruptedException的父类是RuntimeException。
在java的异常处理中,无论是否发生异常,其后的代码块都会被执行的关键字是finally。
异常类FileNotFoundException的父类是IOException。
在try-catch语句中catch中的对象类型是try中可能抛出的异常类或其父类。
在程序中构造一个输入流对象时,可能产生的异常是FileNotFoundException。
线程
Wait()方法一般是在synchronized(){}语句快中调用的,线程同步时,调用stop()方法时容易造成数据的不一致,线程同步可以使用wait()和notify()。线程同步时,调用suspend()的方法,该方法会造成死锁。
当管道流用于线程通信时,程序不会产生死锁。
给对象加锁使用的关键字是synchronized。
对象加锁使用synchronized关键字,且需要进行进行并发控制的数据应该是private。
在线程的生命周期中,只能被调用一次的方法是destroy()。
在对象锁的描述中,若线程A调用线程B的suapend()方法,则B将释放所有的锁。
Java线程构成的是代码、虚拟的CPU、代码所操作的数据。
调用线程并使线程进入阻塞状态的方法是sleep()和join()
Applet
Applet和Application都支持事件响应,Applet的主类需要从Applet类或JApplet类派生,包含main()方法的Applet可以通过编译。
Applet的导包是import.java.applet.Applet;
Applet的生命周期init(),start(),stop(),destroy()。
Applet的主类需要定义为Applet类或JApplet类的子类,Applet中可以包含main()方法,Applet是能够在浏览器中运行的java类。
Applet不能通过java命令运行。
Swing
Swing组件中用于选择文件的是JFileChooser。
派生出大多数Swing组件的类是Container。
字符流和字节流
字符流实现了字符数据的读写,字节流实现了字节数据的读写。、
InputStreamReader:字符输入流。
FileInputStream:文件输入流
Objectinputstream:对象输入流
BufferedWriter:缓冲字符输出流
In.skip(9):跳过九个字节
当I/O流操作完成时,可以将缓冲区中的数据写入到目的地的方法是close()。
RandomAccessFile:为了读取一个文件指定位置的数据
RandomAccessFile类同时实现了DataInput和DataOutput接口。
RandomAccessFile类中改变文件指针位置的方法是seek。
RanddomAccessFile类与其他I/O流类的区别对文件的访问既可以读又可以写。
StringBuffer中的capacity方法是计算字符缓冲区的容量用16+字符的长度。
InputStream是从流中读取数据,InputStream类中available()方法的功能是返回输入流中可读字节数。
返回字符数组的字符输入流类是CharArrayReader。
OutputStream类中flush()方法功能是将缓冲的全部字节写入输出流
PipedInputStream类是实现线程之间通信的类。
DeflaterOutputStream类的作用是对输出的文件进行压缩和过滤。
接口:
类Throwable实现的接口是:serializable
在接口中除了抽象方法还可以含有常量,接口中不能定义变量。
Collection接口中,能够把集合中全部元素以Object数组形式返回的方法是toArray()。
其他:
“String”.substring(0,4):意思是从String这个字符串索引值为0的地方开始取值,截取到索引值为4的字符。
String s1=“abc”和s1=new String(“abc”)有什么不同
第一个string会将“abc”这个string添加到string池中,下次在使用这种方式时会先检查这个string是否在string池中如果没有则添加,如果有则直接从这个池中添加,而第二种方式通过new的方式进行这种方式会创建一个申请一个内存空间以存放string内容为“abc”的字符串。
Integer不是java的基本数据类型,int是java的基本数据类型,而integer我们可以把它看成一个类。
Java平台有三种:JavaSE,JavaME和JavaEE。
若为了使某类不能派生出子类,则在定义该类时应使用关键字final。
Public JFrame(String title)构造方法创建了一个初始不可见,但有标题的新窗体,JFrame窗体是一个容器,它是Swing程序中各个组件的载体,继承JFrame类创建的窗体拥有最大化、最小化和关闭按钮。
Java语言特点是支持分布式计算、跨平台、支持多线程。
类中实现方法重载的方式是采用不同的形式参数列表。
Java语言通过接口支持多重继承。
LastIndexOf()的作用:寻找字符串中括号中字节最后出现的位置
indexOf(int ch, int fromIndex):返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回-1。
程序执行期间帮助加载新类的类是class。
Java程序中所有类的根类是Object。
事件类所在的包是java.awt.event
条件运算符称为三元运算符。该运算符有3个操作数,条件运算符?:
实例方法只能通过对象来调用。
子类继承的是父类的非私有属性和方法。
CharAt(X)方法是指在一串字符中从索引值为0的开始取,取到索引值为X的那一位索引
Abstract类只能用来派生子类,不能用来创建abstract类的对象,abstrsct不能与final同时修饰一个类,abstract方法必须在抽象类中声明,但abstract类定义中已没有抽象方法。
重载属于java多态机制
JTextField属于ActionListener接口监听的事件源
Arrays.sort(x)是指将数组x按从小到大的顺序排列。
Worker是Person的子类,Worker的构造方法中出现的super()会调用的是Person的构造方法。
Java程序中缺省引入的包是lang。