第一章
1.Java平台分为3个版本:JavaSE、JavaME、JavaEE。
2.JDK安装后一般设置三个环境变量 :java_home、path、classpath。
3.Java源程序应该写在扩展名为. java 的文本文件中。
4.有“package zyj.chap1;”语句的HelloWorld.java的编译命令是 javac -d.HelloWorld.java ,运行命令是 java zyj.chap1.HelloWorld .
(补充:无package语句,编译命令是 javac HelloWorld.java ,运行命令是 java HelloWorld )
5.javac . exe : Java 编译器,负责将 Java 源代码(. java )编译为字节码(. class )文件;
java . exe : Java 解释器,负责解释执行 Java 字节码(. class )文件;
javadoc . exe : Java 语言文档生成器,将源程序中的文档注释(/**…*/)提取成 HTML 格式文档;
jar . exe : Java 语言归档工具.可以将包含包结构在内的 .class、.java 、配置文件、资源文件等压缩成以. jar 为扩展名的归档文件。
6.Java程序运行的5个步骤:编辑 、编译、加载、验证、运行。
第二章
1.从键盘上输入数据的代码如下:
Scanner sc=new Scanner( System.in );
System.out.print(“输入提示信息:”);
int n=sc. nextInt();//输入一个整数
double d=sc. nextDouble / nextFloat ();//输入一个小数
Strings=sc.nextLine / next ( );//输入一个字符串
2.在Java中,小数默认为 double,如果要指定 float 类型请在小数后加F/f。
3.在Java中,/**…*/被称为 文档注释,可以被Javadoc.exe文档工具读取,生成标准的帮助文档。
4.已知“String s=127”;将s转换为int的代码为“int i = Integer.parseInt(s)”,将s转换成double的代码为“double d = Double.parseDouble(s)”。
5.for语句的无限循环语句为for(;;),while语句的无限循环语句为while(true)。
6.补齐下面的代码,输出要求 double 数据保留两位小数, String 按实际长度, char 要求总场宽为5,右对齐。
System . out . printf (" E = %3.2f,Pi = .2f ,String = %1$s ,char = %4$5c “,”“HDCZYJ”,Math.PI,Math.E,‘A’);
7.补齐下面的代码,要求用信息框输出123456。
String str = JOptionPane .showMessageDialog( null ,“123456”,“标题栏”,1);
8.补齐下面的代码,要求用对话框输入一个 float 小数。
String str =JOptionPane. showInputDialog (“请输人一个小数:”);
float f = Float.parseFloat(str);
9.补齐下面的代码,要求对 ia 数组进行排序(升序)并输出该数组。
int [] ia ={3,1,7,5,2};
Arrays . Sort ( ia );
System . out . println ( Arrays .toString(ia));
10.返回系统当前时间到1970-1-1 00:00:00的毫秒数的代码:
long time = System .currentTimeMillis();
11.补齐代码以生成’ A ‘~’ Z '中的随机一个字符:
char c =( char )(65+*(int)(Math.random()26)/Math.random(26));
第三章
1.面向对象的四大特征:抽象、封装、继承、多态。
2.面向过程提供 顺序、分支、循环 3种逻辑结构,每种逻辑结构要求单入口和单出口。
3.对象成员变量的权限修饰符建议为 private ,然后为其统一提供 Getters 和 Setters 方法来读/写。
4.java.lang. Object 类是所有Java类的根父类。
5.用 abstract 修饰的类叫抽象类,抽象类只能被继承,不能被实例化。
用 final 修饰的类叫最终类,最终类只能被实例化,不能被继承。
6.Java类封装了 属性 (表明对象的状态)、方法(表明对象所具有的行为)、构造方法(Constructor)、内部类(Inner Class)、静态/非静态 语句块 。
7.创建或实例化对象一般通过“ new +构造方法( )”的方式来完成。
8.构造方法是Java类中一种特殊方法,用于实例化类的一个对象,为对象分配内存空间和成员变量初始化(数值类型byte,short,int,long,float,double初始化为 0 ,boolean初始化为 false , char初始化为**‘\0 ’**,引用类型全部初始化为 null )。
9.对于类或接口前的文档注释,@author 表示作者,@version 表示程序版本。
10.对于方法或构造方法前的文档注释,@param :表示形式参数说明信息;@return :表示方法的返回参数类型说明信息;@ throws 与@ exception相同:表示方法可能抛出的异常;@deprecated :该方法已经过时,不推荐使用。
11.UML类图:第一框格表示类的 名字/名称 ,第二个框格表示类的 属性/成员变量,第三个框格表示类的 方法/成员方法 。
第四章
1.JVM在分配内存空间时用 栈内存 来保存基本数据类型变量和对象的地址,用 堆内存 来存放对象的内容。
2. Java 采用" extends <父类>"的方式来实现单继承,采用“ implements <接口列表>”的方式来实现多继承。
3.关键字 this 指向当前类的对象,关键字 super 指向当前类的父类。
4.关键字 static 用来标识成员变量、成员方法、内部类、初始化块等成员是属于类的还是属于对象的
5.静态语句块 指在类体中、方法外定义的有 static 修饰的语句块,当其所在类被 JVM 载入内存时自动执行一次,负责 类 的初始化。将一个类载入内存必须先载入其父类。
6.非静态语句块 指在类体中、方法外定义的语句块,在调用 构造方法 实例化对象之前 JVM 会自动执行一次,用于 对象 的初始化。调用一个类的构造方法, JVM 会自动先调用 父类 的构造方法。
7.成员变量初始化的原则: byte 、 short 、 int 、 long 、 float 、 double 数值类型默认初始化为 0 , boolean 类型初始化为 false , char 类型初始化为 ‘\0’ ,引用类型全部初始化为 null 。
8.final用在变量前面,该变量成为 常量 ,只能赋值一次。final用在方法前面,该方法成为 最终方法 不能被子类的方法覆盖。 final 用在类前面,该类成为 最终类 ,只能实例化,不能被继承。
9.关键字 abstract 修饰的方法为抽象方法(只有方法的定义,没有方法的实现)。含有抽象方法的类必须声明为 抽象 类。
10.接口 本质上是一个比 抽象类 更加抽象的类,在接口中只能定义 常量 和 抽象方法。
11.经过多次的上溯造型和下溯造型,当用户不能确定某个对象是否为某个类的对象时,可以使用运算符 instanceof 来判断。
12.关键字 private 修饰的成员的可见范围是 当前类 ,没有权限修饰符成员的可见范围是 当前包 ,关键字 protected 修饰的成员的可见范围是 当前包和该类的子类 ,关键字 public 修饰的成员的可见范围是所有包中所有类都可以访问。
13.在 Java 中,可以用 try … catch … finally 结构对异常进行捕获和处理,也可以在可能产生异常的方法定义首部用 throws 声明抛出异常。
14.当程序可能发生异常时,应该把无论异常发生与否都执行的代码放到 finally 子句中。
第五章
1.若定义一个类时没有用 extends 关键字显式指定继承的父类,则编译器自动加上 extends Object 。
2.引用类型数据的地址备份用 赋值 实现,引用类型数据的对象备份用Object类中的的 clone 方法实现。
3. Java 提供的与日期相关的类和接口主要有 Date(该类的大部分构造方法和一般方法都已经不推荐使用)、 Calendar 、 GregorianCalendar 和 DateFormat 、 SimpleDateFormat。
4.Java集合类主要包括 Collection 和 Map 两大类。前者及其实现类主要用来盛放 对象 ,后者及其实现类用来盛放 键值对(Key - Value )。
5.工具类 Collections 与 Arrays 类相同,提供了操作 集合类Collection 及其子类的工具方法,如排序、二分法查找、洗牌、反向排序、填充、复制等。
6.用两种方法产生1~5的随机整数,一种是" int n = (*int)(Math.random()5)+1;“,另一种是” Random rd = new Random (); int m = rd . nextInt (5)+1;
7. List 接口的主要实现类有 ArrayList 、LinkedList 和 Vector 等,
Set 接口的主要实现类有 HashSet 、TreeSet 和 EnumSet 等,
Map 接口的主要实现类有 HashMap 、 HashTable 和 TreeMap 。
第六章
1.JDK中与输入/输出相关的包和类都集中存放在 java.io 包中,其中最重要的5个类是 File、InputStream、OutputStream、Reader、Writer。
2.按 Java 的命名惯例,凡是以 InputStream 结尾的类型均为字节输入流,以 OutputStream 结尾的类型均为字节输出流;凡是以 Reader 结尾的类均为字符输入流,以 Writer 结尾的类均为字符输出流。
3. File 类是对文件和文件夹的一种抽象表示(引用或指针)。
4.InputStreamReader 负责把字节输入流转换为字符输入流, OutputStreamWriter 负责把字节输出流转换为字符输出流。
5. RandomAccessFile 类支持"随机访问"方式,可以跳转到文件的任意位置同时完成读/写基本数据类型的操作。
DataInputStream 类直接从底层输入流读取Java的8种基本类型数据,
DataOutputStream 类能够将Java基本类型数据写出到一个底层输出流。
6.Java通过 ObjectOutputStream 类实现对象的序列化,
通过 ObjectInputStream类实现对象的反序列化。
7.只有实现 Java . io . Serializable 接口的类的对象才能被序列化和反序列化。用关键字 transient 修饰的对象变量将不会序列化。
8.SequencelnputStream 可以将多个输入流逻辑串联起来,成为一个独立的输入流,以方便进行统一的操作。
9.JDK1.4之前 java . io 包提供了基于字节流或字符流的阻塞 I / O 操作的 API ,简单易用,但效率较低。从 JDK 1.4开始, Java 开始提供新的 I / O 处理类库 NIO ,它能提供基于缓冲区和块的非阻塞 I / O 操作的 API ,效率很高,但编程实现比较复杂。
10. POI 是 Apache 软件基金会的开放源码程序库,它提供通过 Java 语言对 Microsoft Office 文件进行读/写的 API ,支持 Office 97-2008文档格式 。
第七章
- GUI 借助窗口、菜单、对话框、按钮等组件利用键盘、鼠标提供用户与应用程序的可视化人机交互界面。
- Java主要采用 AWT 和 Swing 来GUI编程。JDK中与GUI编程相关的类和接口集中存放在 java.awt 和 javax.swing 包。
- GUI组件(Component)是构成GUI界面的基本元素,具有坐标位置、尺寸、字体、颜色等属性,能获得焦点、可被操作、可响应事件等。例如在swing组件中, JLabel 用来实现不可编辑信息,JButton 用来实现命令按钮,JTextField 用来实现单行文本框,JPasswordField 用来实现密码框,JTextArea 用来实现多行文本框等。
- 顶级容器JFrame的布局管理器默认为 BorderLayout ,
中间容器JPanel的布局管理器默认为 FlowLayout 。 - AWT提供的常见的布局管理器有 BorderLayout , FlowLayout , GridLayout, CardLayout ,GridBagLayout。
- BorderLayout 将容器划分为 东,西,南,北,中 5个区城。
- 单击按钮、文本框内回车、单击菜单项等动作会产生 ActionEvent 事件,该事件的监听器需要实现 ActionListener 接口,事件处理代码写在 ActionPerformed() 方法中。
8 swing 文本组件主要有3种: JTextField, JPasswordField, JTextArea。 - Java下拉式菜单系统包括了 JMenuItem 、JMenuBar 、JMenu 3个组件。
第八章
1.Thread类位于 java .lang 包下。
2.在 Java 中创建线程的方法有两种,即通过创建 Thread 类的子类来实现,通过实现接口 Runnable 来实现。
3.在 Callable 接口中只有一个抽象方法 V call () throws Exception 。与 run ()不同的是 call ()可以返回结果,也可以抛出异常。
4.通过调用线程名 **.setDaemon(true )**方法可以将该线程定义为一个守护线程。
5.Thread类有3个线程优先级的常量,即 Thread . MIN _ PRIORITY = 1 、Thread . MAX _ PRIORITY = 10 、 Thread . NORM _ PRIORITY = 5 。
6.synchronized 关键字可以用作方法修饰符,使该方法成为互斥方法;也可以用在一段代码(语句块)前实现代码的互斥调用。
7. Object 类中的 **wait ()**和 **notify ()**方法与 synchronized 关键字联合使用可以实现线程的同步。
8. Timer 类是一种定时工具,可以让指定线程在指定时间执行一次,或者在指定时间后定期重复执行 n 次。
9.从 JDK 1.5开始, Java 核心库中增加 Concurrency ,提供了一个功能强大、高性能、高
扩展、线程安全的开发库,方便程序员开发多线程的类和应用程序。
第九章
1.在 Java 中,与网络编程相关的类和接口一般放在 java.net 包中。
2. TCP 是一种面向连接的可以保证数据可靠传输的协议。
3. UDP协议 是一种无连接的协议,提供不可靠信息传输服务。
4.在 Java 中 IntAddress 用于表示一个互联网协议地址(封装 IP 地址和域名)。
5.一个 Socket 由一个 IP 地址 和一个 端口号 唯一确定。
6.在计算机中,逻辑端口号用 16 位二进制数表示,端口号的范围为 0~65535 。
第十章
1.常见的大型关系型数据库产品有甲骨文公司的 Oralce 9i/10g/11g 、IBM公司的 DB/2 、Microsoft公司的 SQL Server 2000/2005/2008 和Sybase公司的 ASE 等。
2.JDK中提供的 JDBC API 主要包含在 java.sql包和javax.sql 包中。
数据库 JDBC 驱动程序一般以 *** .jar** 文件的形式提供,在 Eclipse / MyEclipse 下进行JDBC 编程时必须将第三方的驱动程序添加到 Java 项目的 BuildPath 中。
代表数据库名。
3.在数据库 URL " jdbc : MySQL 😕/ localhost :3306/test"中,3306代表 端口/PORT/port 、test代表 数据库名 。
4.在JDBC编程中,通过 Statement 类的对象执行静态SQL语句,通过 PreparedStatement 类的对象执行带参数(占位符?)的 SQL 语句,通过 CallableStatement 类的对象调用存储过程。
5.在 JDBC 编程中,通过设置 conn .**setAutoCommit(false)**开始事务,事务执行完毕,执行 conn . **commit()**提交事务;否则执行 conn . **rollback ()**全部回滚或回滚到指定断点。
6.常见的数据持久化技术有 JDBC 、 Hibernate 、 MyBatis 和 Spring JDBCTemplate 。