Java知识复习手册.docx

上传人:b****4 文档编号:6798555 上传时间:2023-05-10 格式:DOCX 页数:54 大小:294.40KB
下载 相关 举报
Java知识复习手册.docx_第1页
第1页 / 共54页
Java知识复习手册.docx_第2页
第2页 / 共54页
Java知识复习手册.docx_第3页
第3页 / 共54页
Java知识复习手册.docx_第4页
第4页 / 共54页
Java知识复习手册.docx_第5页
第5页 / 共54页
Java知识复习手册.docx_第6页
第6页 / 共54页
Java知识复习手册.docx_第7页
第7页 / 共54页
Java知识复习手册.docx_第8页
第8页 / 共54页
Java知识复习手册.docx_第9页
第9页 / 共54页
Java知识复习手册.docx_第10页
第10页 / 共54页
Java知识复习手册.docx_第11页
第11页 / 共54页
Java知识复习手册.docx_第12页
第12页 / 共54页
Java知识复习手册.docx_第13页
第13页 / 共54页
Java知识复习手册.docx_第14页
第14页 / 共54页
Java知识复习手册.docx_第15页
第15页 / 共54页
Java知识复习手册.docx_第16页
第16页 / 共54页
Java知识复习手册.docx_第17页
第17页 / 共54页
Java知识复习手册.docx_第18页
第18页 / 共54页
Java知识复习手册.docx_第19页
第19页 / 共54页
Java知识复习手册.docx_第20页
第20页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java知识复习手册.docx

《Java知识复习手册.docx》由会员分享,可在线阅读,更多相关《Java知识复习手册.docx(54页珍藏版)》请在冰点文库上搜索。

Java知识复习手册.docx

Java知识复习手册

技术知识复习与总结

简介:

文档版权

文档作用:

此文档用于知识复习

创建时间:

2015年5月21日

创建人:

闫楠楠

1.1、【Java基础知识复习(面向对象)】

1.1.1、【Java面向对象四个基本特点】

抽象、继承、多态、封装

1.1.1.1【抽象的概念】

 抽象是忽略一个主题中与当前目标无关的方面,把现实世界中的概念转换为对象,可以是表示数据的VO对象或抽象类,也可以是表示一类行为的接口。

有利于使用继承来构造类的体系,实现多态,使用模板和工厂模式方法来实现对业务过程的抽象。

抽象是概念建模和业务流程建模很重要的工具,是面向对象体系的基石,而不是一堆杂乱、混乱、重复、散沙般的、关系错综复杂的类。

1.1.1.1.1【抽象的使用】

1.抽象在java中用关键字abstract表示

2.抽象abstract可定义在类class的前面、如果定义类为抽象、则表示此类为一个抽象类、被抽象类所修饰的类类中的方法都是抽象方法

3.通常抽象类中的方法没有具体的实现

1.1.1.2【继承的概念】

是一种连结类的层次模型,并且允许和鼓励类的重用,提供了一种明确表示共性的方法。

继承意味着能声明一个类型,而且能继承父类中的所有操作和数据,同事还有机会声明自己的新方法以改进、具体化、代替或者扩展父类中的方法

 使用父类为应用领域建立层次模型,提供代码重用并允许定制

1.1.1.2.1【继承的使用】

1.继承在java中用关键字extends表示

2.Java中不支持多继承只支持单继承多实现

3.extends写在类名后面

4.一个类如果要防止继承请使用关键字final。

1.1.1.3【多态的概念】

一种事物具有多种表现形态称为多态,一个对象变量可以指向多种实际类型的现象。

1.1.1.3.1【多态的使用】

大多体现在接口上

1.1.1.4【封装的概念】

封装是把数据和行为结合在一起至一个jar包中,从层次角度来讲也可以把对象的使用者隐藏数据有关的过程,封装至一个方法体中,熟称封装为“黑盒子”

1.1.1.4.1【封装的使用】

1.多数用于封装方法的类及过程

2.或类的jar包

1.1.2、【Java的内存区域划分】

Java逻辑上分为:

栈区(变量区)、堆区(对象区)、静态常量区、方法区

1.1.3、【Java的方法重载overload】

1.1.3.1【方法重载的目的】

Java中方法重载主要是为了实现多态性(一种事物不同情况下的表现)[一种事物多种形态]

1.1.3.2【方法重载的规则】

(1)、在同一个类中

(2)、方法名必须相同(参数个数不同、类型不同)

(3)、返回类型可同可不同

1.1.4、【Java的方法重写override】

1.1.4.1【方法重写的目的】

Java中的重写指的是出现在继承上,子类重写父类中的方法,当子类要修改父类中的某个方法时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖(重写父类中的方法)

1.1.4.2【方法重写的规则】

(1)子类必须继承父类,子类必须实现父类中的方法

(2)方法名字相同

(3)参数必须相同

(4)返回类型必须相同

1.1.5、【Java八种基本数据类型】

1.1.5.1【基本数据类型】

(1)、byte字节型(8-bit)

(2)、short短整形(16-bit)

(3)、int整形(32-bit)

(4)、long长整形(64-bit)

(5)float单精度浮点型(32-bit)

(6)double双精度浮点型(64-bit)

(7)char字符型(16-bit)

(8)boolean逻辑型(true和false2个值[真和假])

1.1.5.2【基本数据类型(封装类)】

(1)、byte封装Byte

(2)、short封装Short

(3)、int封装Integer

(4)、long封装Long

(5)、float封装Float

(6)、double封装Double

(7)、char封装Character

(8)、boolean封装Boolean

1.1.5.3【数据类型转换】

(1)、基本数据类型——>封装

intA=10;

IntegerB=newInteger(A);

(2)基本数据类型int——>字符String

IntA=10;

Stringstr=A+””;

(3)字符String——>基本数据类型int

Stringstr=20;

IntA=Integer.parseInt(str);

(4)字符String——>封装

Stringstr=10;

IntegerA=Integer.valueOf(str);

................

1.1.5.4【String不可变的类】

String是不可变的类,即一旦字符串被初始化完成就能够更改。

 

1.1.5.5【String赋值】

String是一个特殊的类,被称为[类类型结构],String使用“=”号赋值,并不是每一次都创建一个新字符串,而是从“字符串实例池”中去查找字符串,查找到直接返回,未查询到就从新创建字符串实例。

String用new关键字创建字符串,则表示每一次都创建一个新的字符串。

1.1.5.6【String与StringBuffer】

String类是不可变的类,即字符串一旦被初始化后就不能被更改,StringBuffer是可变字符串类,类似String的字符串缓存区,可以修改字符串的值,

例如:

Stringname=newString(“Hello”);

name+=”world”;

这2句代码的过程是这样的:

首先创建了StringBuffer对象,然后用StringBuffer类的append()方法追加字符串”world”,最后StringBuffer对象调用toString()方法合成字符串返回

1.1.5.7【StringBuffer与StringBuilder】

StringBuffer是线程安全的字符串缓存区,StringBuilder非安全线程的。

 

1.1.5.8【Java语言值传递规则】

基本数据类型传递的是值,引用类型数据传递的是引用虚拟地址。

1.1.6、【Java访问修饰符】

修饰符名称

本类中

同一个包中

子类

其他包中(非子类)

其他包中(子类)

public

true

true

true

true

true

private

true

false

@false

false

false

protected

true

true

true

false

false

friendly

true

true

true

false

false

1.1.6.1【java继承中类的初始化顺序】

访问范围

(1)继承关系中构造执行顺序:

先父类后子类

(2)继承关系中初始化顺序:

先初始化父类属性—>父类构造—>子类属性—>子类构造

(3)构造不能被继承所以不能被重写

1.1.6.2【final修饰符】

(1)final修饰属性:

final修饰属性后,属性成为了常量,常量只要被赋值就不能被改变。

(2)final修饰方法:

final修饰方法后就不能够被重写(override)但是可以被继承、最终方法。

(3)final修饰类:

final修饰类后,该类就不能够被继承,被final所修饰的类被称为最终类,最终类反过来可以继承别人的类。

1.1.6、【Java逻辑运算符】

Java算术运算符

表示方式

字符说明

+

取正数

-

取负数

++

自曾+1

--

自减-1

+、-、*、/、%

四则运算符(求商余数)

A>B?

true:

false

当A大于B时为true(冒号之前的值),否则为false

Java关系运算符

表示方式

等于==、不等于!

=、大于>、小于<、大于等于>=、

小于等于<=、

Java逻辑运算符

表示方式

与(&&)、非(!

)、或(||)

Java双目对象逻辑运算符

表示方式

instanceof判断对象所属类型

Java逻辑真假运算符

表示方式

equals(truefalse)

1.1.7、【Java过程终止符】

(1)break的使用:

break用于逻辑内部或循环内部程序的过程终止,内部使用break终止后代码会继续往下执行(switch判断中也常用到)。

(2)continue的使用:

continue多数用于循环体内部中,循环体内部使用continue后程序会终止当前循环,然后从新开始继续循环,通常用于循环体逻辑验证减少循环体性能开销和代码性能优化。

1.1.8、【Java接口】

1.1.8.1【什么是接口】

接口就是一些方法特征集合,接口是多态抽象的体现,接口使用关键字“abstract”

1.1.8.2【接口的特征】

(1)(接口中)所有方法都是(抽象方法)

(2)接口中(不能有属性)

(3)接口可以实现多个

(4)类去实现接口

(5)实现类必须去实现接口中的所有的方法

(6)接口中可以声明静态常量(代码中省略static和final)

(7)接口与接口之间可以互相继承

1.1.9、【Java类中的元素】

一个完整的Java类包括以下元素:

(1)属性:

属性是用来定义对象的数据

(2)构造:

构造是用来初始化对象

(3)静态区域块:

块能够用来在类加载初始化之前执行操作,或在类实例化之前进行过程操作。

(4)内部类:

内部类作为类的一个成员存在,能够访问外部类的属性和方法。

1.2.1、【Java运行jar架包】

Dos命令下输入:

java-jar*.jar

1.2.2、【Java的动态联编JDK内部机制】

1.2.2.1【JVM中底层特殊类】

实质在JDK中有2个特殊而隐藏的类这两个类分别为:

(1)帮助你初始化类的方法(类的成员),类的静态成员等,初始化顺序按照源码的顺序从上往下从左往右。

(2)实例初始化方法//当对象创建时对象进行初始化(一但对象在堆区初始化时,在堆区开辟空间,最先调用的是方法为属性赋值,调用构造)

1.2.2.2【init的特点】

(1)构造重载时,每个构造对应一个

(2)如果显示或隐藏调用父类构造super()永远在其之前初始化,属性构造永远是在最后被调用的

(3)属性初始化顺序:

按源码顺序,一个调用另一个

(这2个内置初始化方法加<>是为了内部机制防止程序员调用改写该方法)

1.2.2.3【Java反编译命令】

Dos命令下输入:

javap-cxxx.class

1.2.2.4【Java的编译原理】

Java源文件编译后生成.class字节编码文件,字节编码文件在由虚拟机解释器执行解析,此时虚拟机将每一行要执行的编码字节送给解释器,解释器将其编译成特定机器上的机器码,然后在特定的机器上运行

1.2.2.5【Java中JVM的工作原理】

类加载器把一个类装入Java虚拟机需要经过三个步骤来完成:

装载、链接、初始化

 

(1)装载:

Java虚拟机使用类装载器定位找到相应的.class文件(一个线性二进制数据流),将其传入Java虚拟机中,紧接着虚拟机提取类中的信息

(2)链接:

是一个验证、准备、解析的过程、验证Java类中的语言包括属性方法等

(3)初始化:

这个过程初始化只能够有虚拟机来初始化,虚拟机调用动态联编

1.2.3、【OOAD面向对象的十大原则】

(1)不要重复自己

(2)封装变化

(3)开闭原则

(4)单一职责

(5)依赖注入(或倒置)

(6)优先利用组合(少用继承)

(7)里氏替代[LSP]

(8)接口分离

(9)针对接口编程,而不是针对实现

(10)委托原则

 

1.2.4、【Java异常处理】

1.2.4.1【Java异常的分类】

在java中异常提供了2个异常接口分别为:

Exception和RuntimeException

1.2.4.2【Java异常的抛出】

异常抛出通常是指方法中或过程中不直接捕获而是由程序的入口最终端进行异常捕获、或者不可预测发生的异常才使用关键字进行声明抛出,关键字如下:

(1)throw:

在(方法里面)执行出异常对象,使用new创建异常对象。

(2)throws:

声明该方法要抛出的异常,代码如下:

publicvoid方法名()throws{}

1.2.4.3【Java异常的捕获】

在开发中为了程序维护和调试通常,对过程或方法进行异常捕获,主要用以下方式捕获异常:

try{

代码块

}catch(Exceptione){异常区域}final{可有可无}

 

1.2.5、【Java数据集合框架】

1.2.5.1【数据集合框架的作用】

(1)可以存放多个数据或对象

(2)数据可以定长

(3)数据可以临时存储

1.2.5.1【数据集合框架的组成】

(1)数据集合组要由:

接口、具体类、数据结构算法

(2)集合框架结构图:

 

1.2.5.2【数据集合框架的分类及次序】

(1)集合框架最顶层:

Collection接口本身无序(可以重复)

(2)框架分3个类别:

List、Set、Map[Queue队列]

List和Set去继承Collection接口,而Map是Collection接口的一部分

(3)List可以放重复数据//并且是有序

(3)Set不允许放重复数据//并且是无序的

1.2.5.3【判断数据集合或2个对象是否相同】

判断2个对象是否相同需要遵循以下条件:

(1)equals返回值必须为true

(2)Hashcode必须相同要同时满足2个条件

(3)实现方式:

在对象类中重写equals和Hashcode方法

1.2.5.4【数据集合零散知识点】

(1)Map的存放数据形式是以:

Key[键值对]Value[值]

(2)Iterator接口:

ListIterator去实现Iterator接口迭代器[遍历数组]所有的集合都可以用

(3)迭代方式:

Iteratora2=a1.iterator();//迭代List取数据

while(a2.hasNext()){//循环去数据

Stringtemps=(String)a2.next();

}

(4)ArrayList:

存储数据是以[数组形式的连续存放的]//从性能上讲,添加数据快,取数据快。

(5)LinkedList:

存储数据是以链表结构存在的//删除时效率高//在某个位置插入数据效率高

(6)HashSet:

哈希表,无序取数据(LinkedHashSet)有序

(7)TreeSet:

不能直接存放对象(如果放对象编译通过运行报错:

)java.lang.ClassCastException:

org.roger.set..Objectcannotbecasttojava.lang.Comparable不能将String类型进行排序

【解决TreeSet报错方案】

必须让[自定义类]去实现Comparable接口(排序接口)并且实现接口中的方法CompareTo()方法

 

Comparable接口中的方法:

publicintcompareTo(Objecto){return0;}

TreeSet会自动调用compareTo()方法,判断是否为0排序升序

(8)HashMap用的是equals比较put方法//继承AbstractMap(抽象)类去实现Map(接口),具有不同步的不安全的

conllections工具才具有安全性

HashMap内部允许key和value有null值,会从新计算哈希值[不会过期]

(9)WeakHashMap//key长时间没有被外部引用时候会被回收

1.2.6、【Java同步关键锁】

只需记住一个单词:

synchronized同步的安全的

1.2.7、【Java中的JDBC】

1.2.7.1【数据集合零散知识点】

Java中访问数据库有两种方式分别为:

(1)JDBC—ODBC(桥连接)

(2)JDBC(直连接)

1.2.7.2【JDBC连接特殊对象】

(1)DriverManager类:

管理相应的JDBC驱动

(2)Connection接口:

负责连接数据库并担任传送数据任务

(3)Statement接口:

负责执行SQL语句

(4)ResultSet接口:

负责保存和处理Statement执行后产生的查询结果

(5)PreparedStatement接口:

暂且过时

1.2.7.3【JDBC访问数据库的步骤】

(1)第一步:

加载驱动

Class.formName(“sun.jdbc.odbc.JdbcOdbcDriver”);//创建驱动对象[实质加载驱动类]

(2)第二步:

获取链接

通过DriverManager类的getConnection()方法获取链接对象(Connection)

(3)JDBC完整链接方式及代码

Class.formName(“com.mysql.jdbc.Driver”);

Connectioncon=DriverManager.getConnection(“jdbc.odbc:

数据源”,”用户名”,”密码”);

1.2.7.4【JDBC实现(曾、删、改、差)】

(1)【查询】

Statementst=null;

Connectioncon=null;

ResultSetrs=null;

st=con.createStatement();//创建Statement对象

rs=st.executeQuery(“SQL语句”);

while(rs.next()){

//rs.get数据类型(“表列名”)

rs.getInteger(“列名”);

}

(2)JDBC数据库执行语句种类

A、intexecuteUpdate(Stringsql);//可以执行:

新增、删除、更新、返回值是执行该操作的影响行数

B、booleanexecute(Stringsql);可以执行任意sql查询语句,然后获取一个布尔值,表示是否返回ResultSet

1.2.7.5【PreparedStatement与Statement的区别】

(1)PreparedStatement接口继承Statement

(2)PreparedStatement不支持占位符但是安全性能高比Statement灵活代码的可读性更强,而Statement支持占位符

(3)PreparedStatement是预编译的[调用方式]的性能更高(因为做同一个语句时是不需要编译的),PreparedStatement提高了安全性能。

1.2.8、【Java中IO数据流和XML】

1.2.8.1【XML介绍】

1.2.8.1.1【XML的概念】

(1)XML是可扩展的标记语言

(2)SGML分为:

HTML预定义标签---XML为自定义标签

1.2.8.1.2【XML和HTML之间的作用】

(1)HTML是用来显示数据的

(2)XML是用来描述数据的

(3)XML编码:

GB2312

1.2.8.1.3【XML的声明规范】

(1)XML头部声明规则:

xmlversion=”1.0”encoding=”GB2312”?

>

(2)XML的注释规则:

--注释内容-->

(3)DTD可有可无

(4)符合良构(well-form)

(5)每一个XML必须有一个根元素,有且只有一个//最外面一个标签

(6)每一个标签必须有开始和结束标签

(7)每个标签或空标签必须以“开始以结束”

(8)XML严格区分大小写

(9)同一个标签的属性名不能够相同

(10)XML节点必须正确嵌套

1.2.8.1.4【DOM解析XML】

//创建获取DOM解析器的工厂实例对象

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

//获得dom工厂解析器

Javax.xml.parsers.DocumentBuilderdb=dbf.newDocumentBuilder();

//获取XML文档,得到一个DOM树

Documentdoc=db.parse(file.xml);

//获取某一个节点的信息

NodeListnList=doc.getElementsByTagName(“attributeName”);

//循环获取内容

for(inti=0;i

NodevalueName=(Element)nList.item(i);

Elementelement=(Element)valueName;

Stringvalue==element.getAttribute(“id”);

//获取元素节点的数据

}

//获取XML节点的数据

for(Nodenode=valueName.getFirstChild();node!

=null;node=node.getNextSibling()){

if(node.getNodeType()==node.ELEMENT_NODE){

Stringname=node.getNodeName();

StringnextName=node.getFirstChild().getNodeValue();

}

}

1.2.8.2【JavaIO流】

 

1.2.8.2.1【字符流和字节流】

Java中的流主要分为两种流:

(1)【字符流】因为文件编码的不同,而有了对字符进行高效操作的字符流对象。

(原理:

其实就是基于字节流读取字节时,去查询指定的码表)

1.2.8.2.2【字符流和字节流的区别】

(1)字节流读取的时候,读到一个字节就返回一个字节。

字节流使用了字节流读取到一个或多个个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时,先查询指定的编码表,将查询到的字符返回。

(2)字节流可以处理所有类型数据,儿字符流只能处理字符数据

(结论:

只要是处理纯文本数据,就要优先考虑使用字符流,除外的都用字节流)

1.2.8.2.3【IO流具备的2大功能】

(1)IO流具有,读取流、和写入流两种方式

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2