java起源及应用
1.程序是指为了使计算机能够完成某个操作而编写的一系列指令的集合
2.Java 主要用于开发桌面应用程序及Internet 应用程序
3.开发Java程序的基本步骤:
1) 编写源程序
2) 编译源程序
3) 执行程序
4.编写Java程序要符合Java编程规范:
1) 类名一定要有意义,杜绝类似aaa、bbb这样的书写。
2) 类名首字母要大写,如果类名由多个单词组成,每个单词首字母均使用大写。
3) 定义类要求使用public进行修饰。
4) “{}”通常用来表示一个层次结构,“{”一般放在第一行的末尾,如:public class HolloWorld{;”}”放在结构结尾,并独占一行。
5) 代码缩进,低层次的代码需要比高层次的代码缩进若干格。
5.Eelipse 是强大的Java 语言开发工具
6.注释:
1) 单行注释:单行注释以“//”开始,没有结束符号,表示次符号后面本行所有文字均为注释,通常说明性文字较少的时候我们使用单行注释来说明某行或某块代码的作用。
2) 多行注释以“/*”开头,以“*/”结束,包含在内的文字均为说明性文字,通常当说明文字较多时会采用多行注释。
java语法基础
1.Java 中的常用数据类型有:String、int、double、char、boolean
2.Java 中定义变量的语法:数据类型变量名;
3.Java 中使用“=”为变量赋值,变量在“=”号的左侧,值在右侧
4.Java中常用的算术运算符有: +、-、*、/、++、--
5.数据类型转换包括自动类型转换和强制类型转换
6.自动数据类型转换的规则: 表达式中有一个操作数是double 型,则整个表达都提升为double 型
7.强制类型转换的语法: (数据类型) 表达式
8.Java 中常用的关系运算符有:“>"、“<"、“>=”、“<=”、“!=”、“==”
9.Java 中常用的逻辑运算符有:“&&”、“||”、“!”
10.多重if结构和switch 结构分别适用于不同的场合:
1) 多重if 吉构更适用于对区间范进行判断
2) switch结构更适合于等值判断
3) 多重if 结构可以完全取代switch结构
11.循环包含两个主要组成部分: 循环条件、循环操作
12.while 循环先判断,后执行
13.do While 循环先执行,后判断
14.for循环拥有三个表达式,但三个表达式并不一定必须使用
16.for 循环适用于固定次数的循环
17.break 用于终止循环,continue 用于跳出当前循环,进入下一次循环,return语句用来使程序流程从方法调用中返回
数组、字符串操作
1.数组中存储的数据必须是同一类型的
2.访问数组的元素需要使用下标,数组的下标从0 开始
3.可以使用循环对数组进行初始化
4.Java提供了Arrays 工具类操作数组
5.定义一个字符串的语法: String name= new String(“张三”);
6.字符串的常用方法:
方法 | 用途 |
public int length() | 返回字符串的长度。 |
public Boolean equals(Object anObject) | 将此字符串与指定的对象比较。当且仅当该参数不为null,并且是与此对象表示相同字符序列的String对象时,结果才为true。 |
public String toLowerCase() | 使用默认语言环境的规则将此String中的所有字符都转换为小写。 |
public String toUpperCase() | 使用默认语言环境的规则将此String中的所有字符都转换为大写。 |
public Boolean equalsIgnoerCase(String anotherString) | 将此String与另一个String比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。 |
public String concat(String str) | 将指定字符串连接到此字符串的结尾。 |
public int indexOf(int ch) | 返回指定字符在此字符串中第一次出现处的索引。如果在此String对象表示的字符序列中出现值为ch的字符,则返回第一次出现该字符的索引。如果未出现该字符,则返回-1。 |
public int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引。返回的整数是第一次出现该字符的索引。如果未出现该字符,则返回-1。 |
public int lastIndexOf(int ch) | 返回指定字符在此字符串中最后一次出现处的索引。如果未出现该字符,则返回-1。 |
public int lastIndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引。如果字符串参数作为一个子字符串在此对象中出现一次或多次,则返回最后一个这种子字符串的第一个字符。如果它不作为一个子字符串出现,则返回-1。 |
public String substring(int beginIndex) | 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。 |
public String substring(int beginIndex,int endIndex) | 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex索引处开始,直到索引endIndex-1处的字符。因此,该子字符串的长度为endIndex-beginIndex。 参数: beginIndex-起始索引(包括) endIndex-结束索引(不包括) |
public String trim() | 返回字符串的副本,忽略前导空白和尾部空白。 |
public String[] split(String regex) | 根据给定表达式的匹配拆分此字符串。 |
7.StringBuffer 是更高效的字符串对象
面向对象的三大基石之一——封装
1.封装就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开(隐藏对象的属性和方法的实现细节,只公开对外接口)。
2.封装的具体做法就是把属性私有化,提供公有的方法访问这些属性,在这些公有方法中实现对属性的控制。
3.如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。
4.构造方去( constructor) 是用来实例化一个类的对象的,我们在实例化类的对象时调用的就是这个类的构造方法,构造方法有如下特点:
1) 构造方法是一个特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个对象。
2) 构造方法名和类名相同,没有返回类型。
3) 构造方法可以重载。
4) 构造方法只能由new 关键字和this()调用,this()只能在构造方法中使用,用来调用其它构造力法,且只能作为构造方法代码体的第一条语句。
5.构造方法可以重载
面向对象的三大基石之二——继承
1.继承可以让我们在编码上省去大量的时间,在继承的概念上,父类就是最基本的类,相当于做一个模板,父类一定要做的一般化,这样才有利于子类扩展。
2.子类可以继承父类的属性和方法,还可以扩展出自己特殊的属性和方法。
3.在继承关系中,父类和子类需要满足is-a 的关系。
4.继承可以防止子类中出现重复的程序代码,也就是实现代码重用。
5.在继承关系中,如果子类中拥有一个与父类方法名相同,参数列表相同,返回类型相同的方法,那么我们称为子类的方法重写了父类的方法。
6.super 关键字可以用于访问父类的属性、方法、构造方法,子类构造方法中访问父类构造方法时,super 关键字必须位于子类构造方法的第一句。
7.继承关系是可传递的
子类除了可以调用父类的方法,也可以调用父类的父类的方法,也就是说继承可以确保某个父类型之下的所有类都会有父类型所持有的全部方法。
8.Java 具有单一继承性,一个类不能同时继承自多个父类。
9.final 关键字修饰的类被称为最终类,最终类是不能被维承的。
10.如果父类只提供了带参的构造方法而没有提供默认无参的构造方法,那么子类构造方法中必须显式的调用父类带参的构造方法。
11.如果子类构造方法中没有显式的使用super关键字明确指明调用父类的哪个构造方法,子类构造方法此时就会隐式的调用父类的默认无参构造方法。此时父类必须有一个默认的无参构造方法。
12.所有Java类的祖宗——Object:
所有的类都是从java.lang.Object这个类中继承出来的。
面向对象的三大基石之三——多态
1.多态就是具有多种表现形式,理论性的说法是由继承产生的相关的不同的子类,其对象对同一消息(方法调用) 会做出不同的响应。
2.多态的3 个必要条件:
1) 要有继承
2) 要有重写
3) 父类引用指向子类对象
3.使用多态可以大大增强程序的可维护性和可扩展性。
4.使用abstract关键字修饰的类叫做抽象类,抽象类不能被实例化。
5.继承自抽象类的类要实现所有的抽象方法。
6.使用abstract关键字修饰的方法叫做抽象方法,抽象方法没有方法体,它必须由子类重写。包含抽象方法的类一定要声明为抽象类,但是抽象类中不一定都是抽象方法,抽象类中可以有具体实现的方法。
面向对象多态的深入——接口
1.接口(Interface)是一种特殊的抽象类,这种抽象类中只包含常量和方法的声明,而没有变量和方法的实现。
2.楼口中声明的属性默认是,且只能是public static final 的。
3.接口中只能定义public的抽象方法,
4.实现一个Java按口,必须实现其中定义的所有方法。
5.和抽象类一样,接口不能被实例化。
6.和继承关系相似,接口和它的实现类之间也存在多态性。
7.常量是Java 语言中的种标识符,它的值在被设定后,就不允许再行更改。
8.常量的定义应注意以下儿点:
1) 在Java 中,一般使用static 和final关键字结合来声明一个常量。
2) 必须要在常量声明时对其进行初始化。
3) 在Java 语言中,定义常量的时候一般都用大写字符。在Java 语言中,大小写字符是敏感的。之所以采用大写字符,主要是跟变最进行区分。
风险行为解决方案——异常处理
1.异常是程序在执行时发生的不正常事件,它会打短程序的正常运行。
2.Java 异常处理的五虎上将: try、catch、finally、throw、throws 关键字。
3.在try-catch块后加入finally块,那么无论是否发生异常,finally 块中的代码总是会执行。
5.一段代码可能会引发多个异常,这时我们需要在try块后加多个catch块,用来分别处理不同的异常。
6.在Java中,使用throw 关键字在方法内部抛出异常,使用throws 关键字在方法头部声明这个方法有可能会抛出的各种异常。
7.使用Java中的包装类,可以把Java 中的8种原始数据类型转化为对象来处理了。
原始数据类型 | 包装类 |
byte(字节) | Byte |
char(字符型) | Character |
int(整形) | Integer |
long(长整型) | Long |
Float(单精度浮点型) | Float |
double(双精度浮点型) | Double |
boolean(布尔型) | Boolean |
short(短整型) | Short |
Java集合框架
1.Colletion 接口位于Java 集合框架的顶层,Collection接口提供了一组操作成批对象的方法。
2. Map接口同样位于Java集合框架的顶层,Map接口用于维护键/值(key/value)对的映射。key 值不能重复,每个key 只能映射个value.
3.List 接口继承了Collection 接口。List是一个允许重复项的有序集合。
4.ArrayList 是List接口的一个实现类,ArrayList 就像可变大小的数组。它的优点在于遍历元素和随机访问元素的效率比较高。
返回值类型 | 方法 | 说明 |
boolean | add(Object o) | 在列表的末尾顺序添加元素,起始索引从0开始 |
int | Size() | 返回列表中的元素个数 |
Object | get(int index) | 返回指定索引位置的元素 注意:取出的元素是Object类型,使用前需要进行强制类型转换 |
void | add(int index,Object o) | 在指定的索引位置添加元素 注意:索引位置必须介于0和列表中的元素个数之间 |
boolean | contains(Object o) | 判断列表中是否存在指定元素 |
boolean | remove(Object o) | 从列表中删除元素 |
5.LinkedList 也是List接口的一个实现类,LinkedList 提供额外的方法在LinkedList 的首部或尾部添加或删除元素。相对于ArrayList 而言,在插入或者删除元素时,
LinkedList 的效率更高。
返回值类型 | 方法 | 说明 |
void | addFrist(Object o) | 在列表的首部添加元素 |
void | addLast(Object o) | 在列表末尾添加元素 |
Object | getFirst() | 返回列表中的第一个元素 |
Object | letLast() | 返回列表中的最后一个元素 |
Object | removeFirst() | 删除并返回列表中的第一个元素 |
Object | removeLast() | 删除并返回列表中的最后一个元素 |
6.HashMap是Map接口的实现类,把各个Object 映射起来,实现了“键/值(key/value)”对应的快速存取。
返回值类型 | 方法 | 说明 |
Object | put(Object key,Object value) | 以“键-值对”的方式进行存储 注意:键必须是唯一的,值可以重复。如果添加了重复的键,那么后加入的键-值对将替换掉原先的键-值对 |
Set | keySet() | 返回键的集合 |
Collection | values() | 返回值的集合 |
boolean | containsKey(Object key) | 如果存在由指定的键映射的“键-值对”,返回true |
Object | get(Object key) | 根据键返回相关联的值,如果不存在指定的键,返回null |
Object | remove(Object key) | 删除由指定的键映射的“键-值对” |
Swing常用控件介绍
1.Abstact WindowToolkit (抽象窗口工具包-AWT),是第一代的Java GUT 工具包。
2.Swing是个一个带有一套丰富组件的GUI工具包。它不仅是AWT所提供的组件的替代品,而且在这些组件的基础上有了很大的进步。Swing比AWT更强大、更健壮、更容易移植、更方便使用,
3.Swing常用组件:JLabel、JButton、JTextField、JTextArea、JCheckBox、JRadioButton、
JFrame、JPanel。
JLabel的构造函数
方法 | 用途 |
JLabel() | 创建无图像并且其标题为空字符串的JLabel |
JLabel(Icon image) | 创建具有指定图像的JLabel实例 |
JLabel(Icon image,int horizontalAlignment) | 创建具有指定图像和水平对齐方式的JLabel实例 |
JLabel(String text) | 创建具有指定文本的JLabel实例 |
JLabel(String text,int horizontalAlignment) | 创建具有指定文本和水平对齐方式的JLabel实例 |
JLabel(String text,Icon icon, int horizontalAlignment) | 创建具有指定文本、图像和水平对齐方式的JLabel实例 |
JLable的常用方法
方法 | 用途 |
void setText(String text) | 定义此组件要显示的单行文本 |
String getText() | 返回该标签所显示的文本字符串 |
void setIcon(Icon icon) | 定义此组件将要显示的图标 |
Icon getIcon() | 返回该标签显示的图形图像(字形、图标) |
JButon的构造函数
方法 | 用途 |
JButton() | 创建不带设置文本或图标的校钮 |
JButton(Icon icon) | 创建一个带图标的按钮 |
JButton(String text) | 创建一个带文本的按钮 |
JButton(Action a) | 创建一个按钮,其属性从所提供的Action中获取 |
JButton(String text,lcon icon) | 创建一个带初始文本和图标的按钮 |
JButton 的常用方法
方法 | 用途 |
void set text(String text) | 定义此组件要显示的单行文本 |
String getText() | 返回该标签所显示的文本字符串 |
void addActionListener(ActionListenerl) | 将一个ActionListener 添加到按钮中 |
void removeActionListener(ActionListenerl) | 从按钮中移除一个ActionListener |
void updateUI() | 根据当前外观的值重置UI属性 |
JTextField 的构造函数
方法 | 用途 |
JTextField() | 构造一个新的TextField |
JTextField(String text) | 构造一个用指定文本初始化的新TextField |
JTextField(int columns) | 构造一个具有指定列数的新的空TextField |
JTextField(String text,int columns ) | 构造一个用指定文本和列初始化的新TextField |
JTextField(Document doc,String text,int columns) | 构造一个新的JTextField,它使用给定文本存储模 型和给定的列数 |
JTextField 的常用方法
方法 | 用途 |
void addActionListener(ActionListenerl ) | 添加指定的操作侦听器以从此文本字段接收操作事件 |
void removeActionListener(ActionListenerl) | 移除指定的操作侦听器,以便不再从此文本字段接收操作事件 |
void setActionCommand(String command) | 设置用于操作事件的命令字符串 |
void setFont(Font f) | 设置当前字体,这将移除缓存的行高和列宽,以便新的字体能够反映出来 |
void setColumns(int columns) | 设置此TextField中的列数,然后验证布局 |
void setDocument(Document doc) | 将编辑器与一个文本文档关联 |
int getColumns() | 返回此TextField中的列数 |
JTextArea 的构造函数
方法 | 用途 |
JTextArea() | 构造新的TextArea |
JTextArea(String text) | 构造显示指定文本的新的TextArea |
JTextArea(int rows,int columns) | 构造具有指定行数和列数的新的空TextArea |
JTextArea(String text,int rows,int columns) | 构造具有指定文本、行数和列数的新的TextArea |
JTextArea(Document doc) | 构造新的JTextArea,使其具有给定的文档模型,所有其他参数均默认为(null,0,0) |
JTextArea(Document doc,String text,int rows,int columns) | 构造具有指定行数和列数以及给定模型的新的JTextArea |
JTextArea 的常用方法
方法 | 用途 |
void append(String str) | 将给定文本追加到文档结尾 |
void replaceRange(String str,int start,int end) | 用给定的新文本替换从指示的起始位置到结尾位置的文本 |
int getRows() | 返回TextArea中的行数 |
void setRows(int rows)
| 设置此TextArea 的行数。设置新值之后调用invalidate() |
int getRowHeight() | 定义行高的意义。默认为字体的高度 |
int getColunms() | 返回TextArea中的列数 |
void setColumns(int columns) | 设置此TextArea 中的列数。设置新值之后调用invalidate() |
void setFont(Font f)
| 设置当前字体。这将移除缓存的行高和列宽,以便新的字体能够反映出来,并且调用revalidate() |
JCheckBox 的构造函数
方法 | 用途 |
JCheckBox() | 创建个没有文本、没有图标并且最初未被选定的复选框 |
JCheckBox(Icon icon) | 创建有一个图标、最初末被选定的复选框 |
JCheckBox(lcon icon,Boolean selected) | 创建个带图标的复选框,并指定其最初是否处于选定状态 |
JCheckBox (String text) | 创建个带文本的、最初未被选定的复选框 |
JCheckBox(Action a) | 创建一个复送框,其属性从所提供的Ation获取 |
JCheckBox(String text,Boolean selected) | 创建个带文本的复选框,并指定其最初是否处于 选定状态 |
JCheckBox(String text,Icon icon) | 创建带有指定文本和图标的,最初未选定的复选框 |
JCheckBox(String text,Icon icon,Boolean selected) | 创建一个带文本和图标的复选框,并指定其最初是否处于选定状态 |
JCheckBox 的常用方法
方法 | 用途 |
void setText(String text) | 定义此组件将要显示的单行文本 |
String getText() | 返回该标签所显示的文本字符串 |
String paramString() | 返回此JCheckBox 的字符串表示形式。此方法仅在进行调试的时候使用 |
void setSelected(Boolean b)
| 返回按钮的状态。如果选定了切换按钮,则返回true,否则返回false |
Void set ActionCommand(String actionCommand ) | 设置此按钮的动作命令 |
String getActionCommand() | 返回此按钮的动作命令 |
void setEnabled(Boolean b) | 启用(或禁用) 按钮 |
JRadioButton 的构造函数
方法 | 用途 |
JRadioButton() | 创建一个初始化为未选择的单选按钮,其文本未设定 |
JRadioButton(lcon icon) | 创建一个初始化为未选择的单选按钮,其具有指定的图像但无文本 |
JRadioButton(Action a) | 创建一个单选按钮,其属性来自提供的Action |
JRadioButton(lcon icon,Boolean selected)
| 创建一个具有指定图像和选择状态的单选按钮,但无文本 |
JRadioButton(String text) | 创建一个具有指定文本的状态为未选择的单选按钮 |
JRadioButton(String text,Boolean selected) | 创建一个具有指定文本和选择状态的单选按钮 |
JRadioButton(String text,Icon icon) | 创建一个具有指定文本和图像并初始化为未选择的单选按钮 |
JRadioButton(String text,Icon icon,Boolean selected) | 创建一个具有指定文本、图像和选择状态的单选按钮 |
JFrame的构造函数
方法 | 用途 |
JFrame() | 构造一个初始时不可见的新窗体 |
JFrame(GraphicsConfiguration gc) | 以屏幕设备的指定GraphicsConfiguration和空白标题创建一个Frame |
JFrame(String title) | 创建一个新的、初始不可见的、具有指定标题的Frame |
JFrame(String title, GraphicsConfiguration gc) | 创建一个具有指定图像和指定GraphicsConfiguration的Frame |
JFrame的常用方法
方法 | 用途 |
void update(Graphics g) | 只是调用paint(g)。重写此方法,以防止不必要的调用清除背景 |
void setJMenuBar(JMenuBar menubar) | 设置此窗体的菜单栏 |
void remove(Component comp) | 从该容器中移除指定组件 |
void setLayout(LayoutManager manager) | 设置LayoutManager |
JRootPane getRootPane() | 返回此窗体的rootPane 对象 |
Container getRootPane() | 返回此窗体的contentPane 对象 |
Graphics getGraphics() | 为组件创建个图形上下文 |
void repaint(long time,int x, int y, int width,int height) | 在time 毫秒内重绘此组件的指定知形区域
|
JPanel的构造函数
方法 | 用途 |
JPanel() | 创建具有双缓冲和流布局的新JPanel |
JPanel(Boolean isDoubleBuffered) | 创建具有FlowLayout和指定缓冲策略的新JPanel。如果isDoubleBuffered为true,则JPanel将使用双领冲 |
JPanel(LauoutManager layout) | 创建具有指定布局管理器的新缓冲JPanel |
JPanel(LayoutManager layout, Boolean isDoubleBuffered) | 创建具有指定布局管理器和缓冲策略的新JPanel |
4.Swing 菜单由菜单栏(JMenuBar)、菜单(JMenu) 和菜单项(JMenuItem) 构成。
JPopupMenu的构造函数
方法 | 用途 |
JPopupMenu() | 构造一个不带“调用者”的JPopupMenu |
JPopupMenu(String label) | 构造一个具有指定标题的JPopupMenu |
JPopupMenu的常用方法
方法 | 用途 |
JMenultem add(JMenultem menultem) | 将指定菜单项添加到此菜单的末尾 |
JMenultem add(String s) | 创建具有指定文本的菜单项,并将其添加到此菜单的末尾 |
vold remove( int pos) | 从此弹出菜单移除指定索引处的组件 |
String getLabel() | 返回弹出菜单的标签 |
void setLabel(String label)
| 设置弹出菜单的标签。不同的外观可以选择显示,也可以选择不显示这一项 |
void insernt( Component component,int index) | 将指定组件插入到菜单的给定位置 |
void setVisibe(Boolean b) | 设置弹出菜单的可见性 |
void show(Component invoker, int x, int y)
| 在组件调用者的坐标空间中的位置X、Y 显示弹出菜单 |
void setSelected(Component sel) | 设置当前选择的组件,此方法将更改选择模型 |
boolean isPopupTrigger(MouseEvent e) | 如果JPopupMenu的当前安装UI将MouseEvent视为弹出菜单触发器,则返回true |
5.Java中常用的布局类型有: FlowLayout,BorderLayout,GridLayout,GridBagLayout 和CardLayout。
6.NetBeans中提供了功能非常强大的可视化开发工具——Matisse,用于开发用户界面,使用户界面的设计更加快捷方便。
Java事件机制
1.Java 的事件处理机制: 事件源、事件监听器和事件接口。
2.常用的AWT 和Swing 事件:
1) 动作事件(ActionEvent )
2) 键盘事件(KeyEvent)
3) 鼠标事件(MouseEvent )
4) 窗口事件(WindowEvent)
3.Swing对话框--JOptionPane:
1) 对话框分为模式(model) 和非模式两种。
2) JOptionPane类中提供了4 种静态方法,用于显示4 种常用的对话框。
l ShowMessageDialog 消息对话框
l showInputDialog 输入对话框
l showConfirmDialog 确认对话框
l showOptionDialog 选项对话框
l showOpenDialog 打开对话框
l showSaveDialog 保存对话框
Java数据库访问
1. JDBC 的全称是Java DataBase Connectivity (Java 数据库生接,严格地讲,JDBC 是Sun Microsystems注册的商标而非缩写)。JDBC 是SUN 公司定义的Java 操作数据库的规范(一系列接口)。通过JDBC可以操作任何的关系数据库(前提是具各数据库JDBC 驱动程序)。
2. Java程序访问数据库步骤:
1) 加载并注册驱动程序
2) 创建一个数据库连接(Connection)对象
3) 创建一个执行SQL语句对象(Statement/PreparedStatement/CallableStatement)
4) 执行语句
5) 使用结果集(ResultSet)对象
6) 关闭结果集对象
7) 关闭执行SQL语句对象
8) 关闭连接
3.简单地说,JDBC API 可做三件事:与数据库建立连接、发送并执行SQL语句、获取处理结果。
4.在生产型开发中,推荐使用纯Java 驱动方式。纯Java 驱动方式由JDBC驱动直接访问数据库,驱动程序完全由Java 语言编写,运行速度快,而且具备了跨平台的特点。不同的数据库厂商会提供针对自己数据库专用的JDBC驱动,访问不同的数据库需要下载专用的JDBC 驱动。
5.Statement 接口提供了三种执行SQL 语句的方法: executeQuery、executeUpdate 和execute。使用哪一个方法由SQL 语句所产生的内容决定。
6.PreparedStatement接口继承了Statement 接口,PreparedStatement语句中含了经过预编译的SQL 语句,由于PreparedStatement 对象已预编译过,所以其执行速度要于Statement 对象。区此,需些多次执行的SQL 语句经常创建为PreparedStatement对象,以提高效率。
7.CallableStatement用于执行SQL 存储过程的接口,存储过程是执行特定操作的子程序。CallableStatement 扩展了PreparedStatement。
JavaI0系统
1.File类用于访问文件或目录的属性。
2.流是指一连串流动的字符,是以先进先出的方式发送消息的通道。程序和数据源之间是通过流联系起来的。
3.流可以分为输入流和输出流,输入流和输出流又分为字节流和字符流。
4.FileInputStream 和FileOutputStream用字节流的方式读写文本文件。
5.BufferedReader 和BufferedWriter用字符流的方式读写文本文件,且效率更高。
6.DataInputStream 和DataOutputStream可用于读写二进制文件。
7.字节流处理单元为1个字节(8位)
字符流处理单元为2个字节(16位)
Java多线程
1.多线程允许程序员编写可最大程度利用CPU 的高效程序。
2.在Java程序启动时,一个线程立刻运行,该线程通常称为程序的主线程。主线程的重要性体现在两个方面:
1) 它是产生其他子线程的线程
2) 通常它必须最后完成执行,因为它执行各种关闭动作。
3. Java中的每个线程都有优先级。在缺省情况下,优先级为NORM_PRIORITY或5。
4. 我们可以通过线程的休眠、合并和中断去调度一个线程。
5. 作为后台线程并为其他线程提供服务的线程称为守护线程(精灵线程)。
6. 两个或多个线程同时访问同一变量或对象时,数据可能会被破坏。
7. 同步是用于确保资源一次只能被一个线程使用的过程。
8. wait()方法告知调用的线程放弃监视器并进入等待状态,直到其他线程进入同样的监视器并调用notify() 方法。
9. notify()方法通知在同一对象上第一个调用wait()方法的线程。
10. notifyAll() 方法通知在同一对象上调用wait()方法的所有线程。
11. 当两个线程循环依赖于一对同步对象时就会发生死锁。
Java网络编程
1.通过java.net包中的类完成Java 网络编程。
2.InetAddress 是用于封装IP地址和DNS 的一个类。
3.TCP/IP 套接字是最可靠的双向流协议。服务器端使用ServerSocket 类,客户端使用Socket 类。
4.数据报(Datagram) 是表示整个通信的一种报文类型。DatagramPacket 是起到数据容器作用的对象,DatagramSocket 是用于发送或接收DatagramPacket 的对象。