logo资料库

东北大学研究生java期末知识点总结.docx

第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
资料共33页,剩余部分请下载后查看
一,基本概念 JVM Java Virtual Machine,java 虚拟机,是一个虚拟计算机,可以解释并运行 Java 字节码。 JRE Java Runtime Environment(Java 运行环境),运行 JAVA 程序所必须的环境的集合, 包含 JVM 标准实现及 Java 核心类库。 J2SE Java 2 Standard Edition(JAVA2 标准版),用来 开发 Java 程序的基础,包括编译器、 小工具、运行环境,SUN 发布的标准版本中还 包括核心类库的所有源代码。 J2SE java2 enterprise edition 是 Java2 的企业版,主要用于分布式的网络程序的开发,如电子 商务网站和 ERP 系统. J2ME Java 2 Micro Edition 是 Java 的微型版,主要应用于嵌入式系统开发,如手机和 PDA 的 编程. JDK Java Development Kit(Java 开发工具包):包括运行环境 、编译工具及其它工具、源代 码等,基本上和 J2SE 等同。 Upcasting 上溯造型,子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象 转为父类对象。此处父类对象可以是接口 Downward Cast 向下转型,父类引用的对象转换为子类类型称为向下转型。 Encapsulation 封装,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的 访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是 将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 (OOP 将数据(属性)和方法(行为)封装在一个对象(Object)中,对象与数据和方法紧密 的绑在一起。从外部看类,仅仅知道有一些接口,但不知道接口如何操作的。优点:隐
藏细节。) Inheritance 继承,先定义一个包含公用方法和公用变量的类作为父类,在此基础上建立具有专用方 法和专用变量的类作为子类,方便编程。 Polymorphism 多态是同一个行为具有多个不同表现形式或形态的能力。 Singleton 单例设计模式,通过定义私有的构造函数(private constructor),使从单例类的外部无法 初始化该类,从而确保该类只有一个实例。 Serializable 序列化,一种保存对象状态的机制,对象通过写出描述自己状态的数值来记录自己 , 这个过程叫对象的序列化。(只有对象的数据被序列化,用 transient 修饰的对象不会被 序列化,序列化被用来将一个对象的状态存储到一个文件中) ActionListener(P241) 动作事件监听器,java 使用委托机制,在 GUI 编程中,Event 会将事件委托给特定对象。 EventListener-- Interface 接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法 的实现。使用关键字 interface 定义,接口中定义的变量都是 final static,接口没有构造 方法,并且定义的成员方法都是抽象方法,采用多重继承机制。 Statement 是一个接口,该接口用于执行静态 SQL 语句并返回它所生成结果的对象。 executeUpdate()方法,一般用于执行 SQL 的 INSERT,DELETE,UPDATE 语句 executeQuery()方法,一般用于执行 SQL 的 SELECT 语句,因为 它的返回值是执行 SQL 语句后产生的一个 ResultSet 接口的实例(结果集) execute()方法,即一般它执行的 SQL 语句既有查询又有更新值,约等于 executeUpdate()和 executeQuery()两个方法的合辑 PerparedStatemen--表示预编译的 SQL 语句的对象,用于执行带 IN 参数和不带 IN 参数的 预编译 SQL 语句,建立该对象的方法为 PerpareStatement。
ResultSet 接口:包含了 Statement 和 PreparedStatement 的 executeQuery 方法中 SELECT 的 结果集。相当于用它来读取数据库里每列的值。 CallableStatement--用于执行对数据库存储过程的调用,是 Statement 的子接口。 Runnable-- Runnable 接口只提供一个抽象方法 run(),在声明类的时候添加该接口,可以实 现多线程。 commit--提交事务,会将磁盘缓存中的数据写入磁盘的数据库中,一般数据库是自动提交, 因此修改以后数据库就会发生变化。 rollback--数据回滚,将事务中已经执行成功的部分回到最初的状态。 GUI--图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图 形方式显示的计算机操作用户界面。 final-- 1. 修饰类当用 final 去修饰一个类的时候,表示这个类不能被继承。注意:a. 被 final 修饰的类,final 类中的成员变量可以根据自己的实际需要设计为 fianl。b. final 类中的成员方法都会被隐式的指定为 final 方法。 2.修饰方法。被 final 修饰的方法不能被重写。注意: a. 一个类的 private 方法会隐式的被指定为 final 方法。 b. 如果父类中有 final 修饰的方法,那么子类不能去重写. 3. 修饰成员变量。成员变量必须初始化且不能改变(常量)。被 fianl 修饰的成员变量赋值, 有两种方式:1、直接赋值 2、全部在构造方法中赋初值。 a. 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。 b. 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个 引用所指向的对象里面的内容还是可以改变的。 Vector--失量队列,支持相关的添加、删除、修改、遍历等功能,支持随机访问、克隆、序 列化。 JDBC--(Java Data Base Connectivity, java 数据库连接)是一种用于执行 SQL 语句的 Java API, 可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提 供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用 程序,同时,JDBC 也是个商标名。JAVA 可以通过他对数据库进行增删改查操作。 abstract--抽象。如果修饰类,表示此类为抽象类;此类不能生成对象,需被继承使用;
如果修饰方法,表示此方法为抽象方法,可以只声明不实现,其实现由继承类实现 Overload--方法的重载,通常在一个类中发生,如果在一个类中定义了多个同名的方法,它 们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载 (Overloading)。 Override--方法的覆盖(重写),是父类和子类之间多态性的一种表现,子类中定义某方法与 其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法 时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了。 Wrapper class--包装类,把基本数据类型升级为引用数据类型的类,使基本数据类型拥有方 法和属性。 Delegation--委托,一个对象请求另一个对象的功能,捕获一个操作并将其发送到另一个对 象,为了提高代码的复用性。 Layout Manager--版面配置管理器,把 container 中的元件做适当的配置。 Swing--用于开发 Java 应用程序用户界面的开发工具包,以抽象窗口工具包(AWT)为基础 使跨平台应用程序可以使用任何可插拔的外观风格。 AWT—Abstract Window ToolKit,是 java 图形界面的工具箱。 Decorator--装饰者模式,指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个 对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。(是一种设计模 式,允许一个对象套在另一个对象外面 ,I/O 流) URL--统一资源定位符,答案有。 OOP--面向对象程序设计(Object Oriented Programming),答案有。 instanceof--用来在运行时指出对象是否是特定类的一个实例。instanceof 通过返回一个布尔 值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 Exception—异常,异常类定义了程序遇见的轻微错误,例如打开的文件不存在,网路连接 中断等。 Buffer--缓冲区是一块特定的内存区域,其目的是通过缓解应用程序上下层之间的性能差异, 减少上层对下层的等待时间,以此提高系统性能。 Flush—冲走,把缓冲区的内容强制的写出。 SDK—软件开发工具包(Software Development Kit)辅助开发某一类软件的相关文档、范例 和工具的集合都可以叫做“SDK”。SDK 是一系列文件的组合,它为软件的开发提供一个平
台(它为软件开发使用各种 API 提供便利)。 API-- application programming interface,应用程序编程接口,java api 是指 java 标准类库提 供的函数。Sdk 调用 API。 Privat--修饰的成员变量和函数只能在类本身和内部类中被访问。 Protected--修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。 Public--修饰的成员变量和函数可以被类、子类、同一个包中的类以及任意其他类访问。 默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。 Static—P15(第一本) Transient—被 transient 关键字修饰的数据无法被序列化。 Synchronized-- synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的 代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是 调用这个方法的对象; 3. 修饰一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象; 4. 修饰一个类,其作用的范围是 synchronized 后面括号括起来的部分,作用主的对象是这 个类的所有对象。 一个线程访问一个对象中的 synchronized(this)同步代码块时,其他试图访问该对象的线程将 被阻塞 Wait()和 notify()--wait()的作用是让当前线程进入等待(阻塞)状态,同时,wait()也会让当前 线程释放它所持有的锁。而 notify()和 notifyAll()的作用,则是唤醒当前对象上的等待线程; notify()是唤醒单个线程,而 notifyAll()是唤醒所有的线程。 异常中的关键字---------- try 块表示程序正常的业务执行代码。如果程序在执行 try 块的代码时出现了“非预期”情 况,JVM 将会生成一个异常对象,这个异常对象将会被后面相应的 catch 块捕获。(其中是 可能产生异常的代码,发现异常关系) catch 块表示一个异常捕获块。当程序执行 try 块引发异常时,这个异常对象将会被后面相 应的 catch 块捕获。
throw 用于手动地抛出异常对象。throw 后面需要一个异常对象。 throws 用于在方法签名中声明抛出一个或多个异常类,throws 关键字后可以紧跟一个或多 个异常类。 finally 块代表异常处理流程中总会执行的代码块。 重写 Value 方法: class Value{ int i; boolean equals(Value n) { } if(this.i==n.i)return true; else return false; } public class Equals2 { } public static void main(String[] args) { } Value n1=new Value(); Value n2=new Value(); n1.i=100; n2.i=100; System.out.println(n1==n2); System.out.println(n1.equals(n2)); 因为原 equals()方法直接继承自 Object 类,比较的是地址的值,而 n1 和 n2 是两个不同的对 象,地址不同,因此输出 false。
为什么内部类中不能引用局部变量? 内部类的生命周期和方法中的局部变量是不一样的,内部类是也是一个类,是存储在堆 中,也只有当对该类的引用消失时,内部类才会消亡,而方法的局部变量是存储在栈内存中 的,当调用结束时就会弹栈,就是在内存中这个属性就消失了。 内部类的生命周期超过了方法中局部变量的生命周期,内部类可能会调用到已经消失的 局部变量,因此内部类不能直接访问方法中的局部变量。 解决方法:局部变量前加修饰符 final,此时局部变量就会存在堆中,生命周期和内部类 的生命周期是一样的,此时内部类就可以访问方法中的局部变量。 给出 5 个使用 java 进行数据库编程时常用的类及其功能,并写出一 段简短的数据库操作例程(JDBC 课件 P10) DriverManager 类处理驱动程序的加载和建立新数据库连接。 Connection 类是 java.sql 包中用于处理与特定数据库连接的类。Connection 对象是用来 表示数据库连接的对象,Java 程序对数据库的操作都在这种对象上进行。 Statement 类是 java.sql 包中用于在指定的连接中处理 SQL 语句的类。 ResultSet 类,有了 SQL 语句对象后,调用语句对象的方法 executeQuery()执行 SQL 查 询,并将查询结果存放在一个用 ResultSet 类声明的对象中, SQLException Class PreparedStatement 类, 作用:带有预编译的功能:效率高:防止 sql 注入: 首先,创建 Employee 表。 creat table Employee( id int primary key, name varchar(20),
age int ); 示例程序 import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.mysql.jdbc.Connection; public class Test { static final String DB_URL = "jdbc:mysql://localhost:3306/databaseweb"; // MySQL 的 JDBC URL 编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称 static final String USER = "root"; static final String PASS = "123"; public static void main(String[] args) throws SQLException,Exception{ Connection conn = null; Statement stat = null; // 注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 创建链接 conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询 stat = conn.createStatement(); String sql = "SELECT * FROM tb_person"; ResultSet rs = stat.executeQuery(sql);
分享到:
收藏