您的位置:首页 > 编程语言 > Java开发

Java程序设计基本知识

2016-05-08 00:44 337 查看
第一章 Java语言概述

1. 对象的三个特性:封装、继承和多态。

封装:把对象的设计者和使用者分开,

访问级别:public, protected, default, private(一般属性private,方法public)

2. 语言特性:

1) 面向对象

2) 跨平台

3) 支持分布式网络应用

4) 安全:避免非法内存操作等

5) 多线程

3. 第一个Java程序

1) Applicantion和Applet两类

2) Java源文件只有一个public类,名字与源文件相同

3) 3种注释

4) Applicantion的三种程序入口方法

5) 类块、方法块{……}

6) 浏览器调用Applet的字节码文件,如下:

import java.applet.Applet;

import java.awt.*;

public class HelloApplet extends Applet{

public void paint(Graphics g){

g.drawString("Hello Applet!",30,50);

}

}

<HTML>

<HEAD><TITLE>Hello Applet!</TITLE></HEAD>

<BODY>

<APPLET

code = HelloApplet.class width = 500 height = 800 >

</APPLET>

</BODY>

</HTML>

第二章 数据类型

1. 标识符(字母,下划线,$)和关键字

2. 常量和变量

(final修饰常量: final double PI = 3.14)

3. 基本数据类型

1) 整型(byte,short,int,long分别1,2,4,8字节)

(1默认为int型,1L则强制类型转换为long型)

2) 浮点型(float,double分别4,8字节)

3) 字符型(char,占2个字节,Unicode编码,中英文都用一个字符表示)

4) 布尔类型(,没声明默认为false)

4. 引用数据类型

1) 类类型

2) 接口类型

3) 数组类型

第三章 操作符

1. 算术操作符

1) 整型操作符(一元整型操作符、二元整型操作符)

2)浮点型操作符

2. 关系操作符

3. 逻辑操作符

4. 位操作符(按位操作符、位移操作符)

5. 赋值操作符

6. 字符串操作符(String+int还是输出String类型)

7. 特殊操作符(?:、.、new、…)

8. 基本数据类型转换

1)自动类型转换(byte、char、short、int、float、double)

short之间的运算结果也是int,int与float运算得到float

2) 强制类型转换

9. 各种操作符的优先级

第四章 控制语句

1. 分支语句

2. 循环语句

3. 流程跳转语句

第五章 类和对象

1. 类和包(包机制是为了类重命名,java虚拟机自动引用java.lang中的包)

2. 变量

1) 成员变量与局部变量,作用域

如果成员变量与局部变量重名,成员方法要访问成员变量,要加this,否则

2) 实例成员变量和类成员变量

(该类一个对象改变类成员变量,其他对象的类成员变量跟着改变)

int a = 12; //全局成员变量

static int b = 10; //静态成员变量

void f(){

int c = 23; //局部变量

}

3. 成员方法

1) 类成员方法和实例成员方法

2) 参数传递(简单数据类型和引用数据类型)

4. 对象(声明和分配内存,垃圾回收机制finalize())

5. 方法的重载(参数的个数或者类型不同)

实参和形参类型不一致时,少字节类型向多字节类型匹配)

6. 访问权限修饰符

Public

Protected:(同一个包:类似于public;不同包:要继承不同包的类才能使用)

Default:同一个包中可以访问

Private:同一个类中可以访问

7. 封装性

第六章 继承和多态

1. 继承(extends)

1) 同一个包:子类可以继承父类除了private的成员方法和成员变量

不同包:子类可以继承父类除了private、友好类型的成员方法和成员变量

2) 变量的隐藏和方法的重写(Override):重写的方法访问权限必须比父类的更加宽松

3) Super关键字:

Super调用父类的构造方法:(super<参数列表>)

子类不能继承父类的构造方法;

子类构造函数中super第一条语句;

子类构造方法中没有显式调用父类构造方法,父类又没有无参的构造方法,编译出错。

This<参数列表> 调用本类的其他构造方法

Super调用父类被隐藏的成员变量和方法:

4) final修饰符

修饰类:该类不能被继承,不能有子类

修饰方法:方法不能被重写

修饰成员变量:该变量为常量,不能被改变

修饰方法中的参数:内部不能改变他的值

2. 多态性(设计时多态性和运行时多态性):增加代码的复用率

3. 设计时多态性:方法的重载

4. 运行时多态性:对象转型分为上转型和下转型:

上转型对象(父类的引用指向子类的对象):

特性:继承,重写父类方法,父类引用指向子类对象

能够访问父类所有的成员变量和没有被重写的方法(是父类的),

经过类型转换后(变成子类类型),优先访问子类的成员变量和方法,

5. instanceof运算符:左边对象右边类,返回boolean类型

第七章 抽象类和接口

1. abstract修饰符

1) 抽象类:

可以包含构造方法

抽象类不一定包括抽象方法,但是有抽象方法的一定是抽象类

抽象方法只需声明,无需实现

2) 抽象方法

2. 接口

接口中的方法全部为抽象方法,可以定义static final成员变量

3. 各种修饰符的使用

第八章 Java常用类

1. String类

Length, charAt, equals, substring

2. StringBuffer类

getChars, setCharAt, append, indexOf, toString

3. 包装类

String s = “”; intn = Integer.parseInt(s);

Int m = 100; Strings = Integer.toString(m);

Integer in = new Integer(100); int m = in.intValue();

4. Math类

Sqrt, round, random, max, min, abs

5. Random类

6. Object类

第九章 数组和集合

1. 数组的声明和创建

int []a = new int[10]

2. 数组的初始化

1) 动态初始化

2) 静态初始化

3) 默认初始化

3. 数组常用的方法

binarySearch

copyOf、copyOfRange

equals、fill、sort、toString、arraycopy

4. 多维数组

5. 集合(自行查阅相关函数的使用http://blog.csdn.net/zhangerqing/article/details/8122075)

1) List接口(保存对象顺序)

2) Set接口(使用自己内部的排序方法)

3) Map接口(键值对,不考虑顺序)

第十章 异常

1. 异常分为Error和Exception两类,是Throwable的子类

Error类对象由Java虚拟机生成抛出,程序无需处理;

Exception类对象由应用程序处理或抛出

2. 非检查型异常和检查型异常

3. Java使用try、catch、finally来捕获异常,用throw、throws抛出异常

4. Java自定义异常用于满足特殊业务

5. 常见的异常类

第十一章多线程

1. Java中的线程

程序、进程和线程的区别联系

每个进程均有自己的内存单元,线程共享内存单元

2. 线程的创建和启动

1) 通过继承Thread类来创建与运行线程

Java不支持多重继承,所以该类不能是其他类的子类

2) 实现Runnable来创建线程

3. 线程的状态转换

新建、可运行、运行、阻塞和死亡

4. 线程的生命周期

5. 线程的调度

1) 线程的优先级:1~10 低到高

MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY

SetPriority(n),getPriority()

2) 线程睡眠:

Thread.sleep() 可以让低优先级的线程先运行

3) 线程让步

4) Thread.yield() 让同等优先级的线程运行

5) 等待其他线程结束

Thread.join()

6. 线程同步

1)方法前面加synchronized修饰,加锁

2)wait是Object类的方法,sleep是Thread类的方法

3)wait时其他线程可以访问锁定对象,调用wait方法是必须锁定该对象;sleep时其他线程不可以锁定对象

第十二章 输入输出系统(/content/3635960.html

1. 概述

1) 数据流

2) 输入流与输出流

3) 缓冲流

2. 文件与目录

1) File类(文件名或者路径)

2) 目录与文件的基本操作

创建File对象,获取文件或目录属性,文件或目录操作

3. 字节流

FileInputStream、ByteArrayInputStream、DataInputStream

FileOutputStream、ByteArrayOutputStream、DataOutputStream

4. 字符流

FileReader、BufferReader

FileWriter、BufferWriter

5. 标准I/O

System.in、System.out、System.err

6. 对象的序列化和反序列化

对象序列化:对象转化为二进制流(实现Serializable、Externalizable接口)

对象反序列化:

保密信息不想被序列化的话:1)声明属性前加transient;2)加密

7. I/O异常

第十三章图形用户界面(GUI)

1. AWT窗口组件(AbstractWindowing Toolkit)

1) 比起Swing耗费更多资源

2) Java.awt包和组件

Compenent类

Color类

Font类

Label类

Button类

CheckBox类

TextComponent类

3) 容器(Container)

1) 窗口(Window):框架类(Frame)、对话框类(Dialog)

2) 面板(Panel)

2. 布局管理器的使用

AWT五种布局管理器,继承自java.lang.Object

1) FlowLayout

2) BorderLayout

3) GridLayout

4) CardLayout

5) GridBagLayout

3. 事件处理的应用

1) 事件处理机制

委派事件模型(DEM,Delegation Event Model)

事件:一个状态的改变,比如用户单击一个按钮等等。

事件源:能产生事件的组件

事件监听者:一个事件源必须注册监听者,以便监听特定的事件类型。

步骤:(1)向事件源注册事件监听者,(2)实现事件的处理方法。

2) AWT事件类与监听器接口

3) 事件处理方式

(1) 利用监听器接口实现事件处理

(2) 利用适配器类实现事件处理

(3) 利用内部类实现事件处理

(4) 利用匿名内部类实现事件处理

4. Swing组件及其应用

比起AWT,不受硬件平台控制,具有更多功能。

1) 边框

TitledBorder类、EtchedBorder类

2) 按钮

JButton

3) 文本框

JTextField

4) 文本区与滚动面板

JTextArea、JScrollPane

5) 复选框与单选按钮

JCheckBox、JRadionButton

6) 组合框和列表框

JComboBox、JList

7) 页签面板

JTabbedPane

8) 表格

JTable

9) 菜单

菜单栏JMenuBar

菜单JMenu

菜单项JMenuItem

复选菜单项JCheckBoxMenuItem

单选菜单项JRadioButtonMenuItem

为菜单项添加快捷键:JMenuItem item1 = new JMenuItem(“Open”,’O’);

为菜单项添加加速器(在不打开菜单项的情况下选择菜单,注意与快捷键区别)

弹出式菜单JPopupMenu

10) 对话框(JDialog)和消息框(JOptionPane)

第十四章 Java Applet

第十五章 JDBC与数据库操作

1. 常用数据库

BD2,Oracle,SQLServer,MySQL

2. MYSQL数据库

进入数据库:mysql –u root –p

创建数据库:create database 数据库名称

删除数据库: drop database if exists 数据库名称

使用数据库:use 数据库名称

创建表:create table tablename(字段名称 字段类型 [default 默认值] [约束]);

删除表:drop table tablename

查看数据库:show databases

查看数据库中的表:show tables from dbname

查看表的结构:desc tablename; showcolumns from dbname.tablename

插入数据:insert into tablename[(column1,column2)] values(value1,value2);

删除数据:delete from tablename [where conditions]

更新数据:update tablename set column1 = value [, column2 = value2] wherecondition;

查询数据:select {* | column alias} from 表名称 [查询条件]

1) 模糊查询:select * from user where username like %张%

2) Limit命令:

从m+1行开始查询n行:select * from user limit m,n;

导出数据:select * from tablename [where conditions] into outfile filename;

select * from account into outfile'E:/补习内容/Java/Java2.txt';

导入数据:load data infile filename into table tablename

load datainfile 'E:/补习内容/Java/Java2.txt' into table lesson.account;

导出SQL:

导出数据库:mysqldump–u root –p databasename > e:\book_system.sql

导出表:mysqldump–u root –p dadtabasename tablename > e:/user.sql

导入SQL:

Mysql –u root –p databasename <e:/book_system.sql

或者:sourcee:/hrbfareast.sql

3. SQL图形界面操作

MYSQL Workbench、phpMyAdmin、SQLyog、Toad forMySQL

4. JDBC(JavaDataBase Connectivity)

1) 概念:

一种API,以同一方式访问各种不同类型的数据库。

两种接口:面向Java应用开发人员接口、面向驱动程序接口人员接口。

Java应用开发人员:(建立数据库连接,提交SQL语句,处理返回的结果集)

2) JDBC驱动类型:

JDBC-ODBC驱动

JDBC本地驱动

JDBC网络驱动

本地协议的纯Java驱动程序

3) 连接、增删改查操作

package com.sysu.jerry;

//import java.beans.Statement;

import java.sql.*;

public class main9 {

public static final String DBDRIVER = "com.mysql.jdbc.Driver";

public static final String DBURL_STRING = "jdbc:mysql://localhost:3306/lesson";

public static final String DBUSER = "root";

public static final String DBPASS = "13345156";

public static void main(String[] args) {

// TODO Auto-generated method stub

int n=0;

Connection conn = null;

Statement stmtStatement = null;

String sqlString = "insert into account(username,password)values(5,'e')";

try {

Class.forName(DBDRIVER);

conn = DriverManager.getConnection(DBURL_STRING, DBUSER, DBPASS);

stmtStatement = conn.createStatement();

n = stmtStatement.executeUpdate(sqlString);

System.out.println("add" +n+ "record");

stmtStatement.close();

conn.close();

}catch (ClassNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

4)事务(一系列基本操作不可分割)

5)连接池和数据源

可能图片显示有问题,这里贴上了文档:http://pan.baidu.com/s/1slkUhch
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: