《java笔试复习资料.pdf》由会员分享,可在线阅读,更多相关《java笔试复习资料.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基本概念面向对象(Object Orient Programing-OOP)面向对象程序设计的三个特点:1)数据封装2)继承3)多态程序是由一定的属性和行为的对象组成的,这些行为为可被对象执行。是自己创建对象还是购买它可能取决于你的预算开支或时间。只要对象能满足你的需求,就不必去关心其功能是如何实现的。在 OOP中唯一需要关心的是对象的接口是什么。封装:是数据隐藏,将类的外部界面与类的实现区分开来,隐藏实现细节继承:一种由已有类创建新类的机制。一个类通过关键字extends 扩展成另一个类。被扩展的类称为父类或超类,扩展的类称为子类。多态:一个对象变量可以指向多种实际类型的现象。实现多态的途径
2、:方法的重载和覆盖。类:具有相同特性和行为的对象的集合。2构造方法:1)构造方法有和类名相同的名称,而且不返回任何数据类型,并且不可被继承,也不抛出异常2)构造方法在对象一产生出来后会被编译自动调用3)声明构造方法的目的就是实例初始化,它可以像方法一样向构造方法传递参数。方法的重载:JAVA 语言允许用相同的方法名定义类中若干个成员方法,只要每个方法有自己唯一的一组形式参数,这种现象称为方法的重载。方法的覆盖:如果子类中定义的某个成员方法与父类中的某个方法的名称,返回类型和参量完全相同为覆盖。覆盖方法子类可以修改从父类继承的行为,子类能创建一个与父类方法有不同功能的方法,但具有相同的名称返回类
3、型参数表覆盖 如果新类中定义一个方法。其名称,返回类型级参数表正好与父类中的方法名称,返回类型级参数表想匹配,那么新方法被称作覆盖旧方法3.堆栈调用机制:栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete 语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申
4、请的大小,系统会自动的将多余的那部分重新放入空闲链表中。多线程:多线程程序扩展了多任务操作的概念,它将多任务操作降低一级来运行,那就是各个程序似乎是在同一个时间内执行多个任务。每个任务通常称为一个线程,它是控件的线程的简称能够同时运行多个线程的程序称为多线程程序。每个进程都有它自己的完整的变量,而线程则共享相同的数据。目前,所有最新的操作系统都支持多线程运行。脏读数据:指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。死锁:可能是多线程程序最常见的问题。当一个线程需要一个资源而另一个线程持有该资源的锁时,就会发
5、生死锁。4.多线程同步处理:进行同步处理的目的是为了保证当多个线程想访问一个资源时,在任何给定的时间都只有一个线程可以访问。有两种方法可以采用同步处理来管理自己的线程:1.可以在方法级管理代码,这里涉及到方法的同步。2.可以在代码块级管理代码,使用同步代码块。内部类:是定义在另一个类内部的类。匿名内部类:如果只需要内部类的一个对象,那么你不必给该类一个名字。这时候我们称为匿名内部类。5,异常:在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。例如,程序运行发生下列情况时,会出现异常:?想打开的文件不存在?网络连接中断?接受了不符合逻辑的操作数Static块:静态变量或者静态方法,不需
6、要实例化就可以直接调用的斐波那契数列:从第三项开始每一项都等于前两项的和,这样的数列称为斐波那契数列JDBC:(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL 语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java 语言编写的类和接口组成JDBC 为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC 也是个商标名。6.接口:用来实现类似多重继承功能的一种结构,它在语法上与类相似,它也有属性和方法,接口间也可以形成继承关系
7、,但继承和类有很大的差别,它的属性都是常量,方法都是抽象方法,没有方法体。抽象类:在java 中,用abstract关键字修饰不能在这个类内实现的方法,这样的方法称为抽象方法。如果一个类含有一个或多个抽象方法,则该类也必须声明为abstract 把用abstract关键字修饰的类称为抽象类。Fianl 类:开发者可以用 fianl声明一个类不可再被作为超类,同样,也可以用 final来修饰一个方法,表示该方法不可被子类重写.对于成员变量和变量也可以用 final来修饰,表示是一个不可被修改的常量.线程的生命周期:一个线程从创建、运行到消亡的过程。用线程的状态(state)表明线程处在生命周期的
8、哪个阶段。线程有创建、可运行、不可运行、死亡4种状态。简答1、什么是 JDBC?它的基本操作有哪些?JDBC 是Sun提供的一套数据库编程接口API函数,由 Java语言编写的类、界面组成。JDBC 是个“低级”接口,它用于直接调用SQL 命令。它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。JDBC 可做三件事:1.与数据库建立连接2.发送 SQL 语句 3.处理结果基本操作:(1)加载 JDBC 驱动:调用方法Class.forName();(2)Connection 接口:代表与数据库连接,调用方法DriverManager.getConnection();(3)JDBC提
9、供了 3个接口,用户向数据库发送SQL 语句:Statement.PreparedStatement 和CallableStatement;(4)Statement 接口提供了 3种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute;(5)ResultSet 接口 java.sql.ResultSet接口来封装查询到的结果;(6)DatabaseMetaData接口:获取元数据信息(描述数据库信息的数据信息叫元数据)2、Java的值传递值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。引用传递:
10、也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。3、启动一个线程是用run()还是 start()?启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。4、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concrete class)?接口可以继承接口。抽象
11、类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。5、final,finally,finalize的区别是什么?final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。6、构造方法是否可以被覆盖?构造方法是否可以被重载?覆盖:在子类中定义一个与父类同名、返回类型、参数类型均相同一个方法,称为方法的覆盖。覆盖发生在
12、子类与父类之间。子类继承的只是成员变量和成员方法,构造方法不能被子类继承,所以子类中要使用父类的构造方法都必须通过父类去调用,所以在子类中谈不上覆盖父类的构造方法重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。构造方法有和类名相同的名称,所以构造方法可以被重载,7、抽象类和接口的区别是什么?(1)接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法(2)一个类可以实现多个接口,而只能继承一个抽象父类(3)接口与实现他的类不构成类的继承体系,及接口不是类体系的一部分。因此,不相关的类也可以实现相同的接口。而抽象类是属于一个类的继承体系,并且一般位于类体系
13、的顶层。8、数组和 String 是哪个具有 length()方法或 length()属性?说明其意义数组对象是没有任何方法的,只有一个唯一的属性length 数组只能 array.length,返回的是该数组的长度数组有一个属性 length,记录数组中元素的个数,如score.length=10 字符串对象是有 length 方法的。str.length()返回的是该字符串总的字符个数程序设计:1.求斐波那契数列前 20项,并分 4行打印显示public class Fibonacci public static void main(String args)int i,a=1,b=1,c;
14、for(i=0;i20;i+)if(i2)System.out.print(1+);else c=a+b;System.out.print(c+);a=b;b=c;if(i+1)%5=0)System.out.print(n);2.M ySQL 和SQLServer2005的JDBC 主要程序代码SQL Server 2005 代码:Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);String url=jdbc:sqlserver:/localhost:1433;DatabaseName=AdventureWorks;St
15、ring user=“sa”;String password=“sasa”;Connection conn=DriverManager.getConnection(url,user,password);My SQL 代码:Class.forName(com.mysql.jdbc.Driver);String url=jdbc:mysql:/localhost:3306/AdventureWorks?user=tom&password=tom&useUnicode=true&characterEncoding=gb2312;Connection conn=DriverManager.getCon
16、nection(url);3动态求 1到某个自然数的和并打印显示import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Sum public static void main(String args)int i,n=-1,sum=0;while(n1)try BufferedReader br=new BufferedReader(new InputStreamReader(System.in);n=Integer.parseInt(br.rea
17、dLine();catch(IOException e);for(i=1;i=n;i+)sum+=i;System.out.println(sum);4.用JAVA 语言编写求出所有水仙花树的应用程序public class Flower public static void main(String args)int i,a,b,c;int j=0;for(i=100;i 1000;i+)a=i/100;b=(i-a*100)/10;c=i-a*100-b*10;if(a*a*a+b*b*b+c*c*c=i)j=j+1;System.out.println(第+j+个水仙花数为:+i);(1)加载JDBC 驱动:调用方法Class.forName()(2)Connection 接口:代表与数据库连接,调用方法 DriverManager.getConnection()(3)JDBC 提供了 3个接口,用户相数据库发送SQL 语句:Statement.PreparedStatement 和CallableStatement (4)Statement接口提供了 3种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute。(5)ResultSet 接口(6)DatabaseMetaData接口:获取元数据信息(描述数据库信息的数据信息)