java基础知识详细整理(图文并茂深入浅出)

  • 格式:pdf
  • 大小:1.57 MB
  • 文档页数:21

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JSE第一部分

分享者:张振羽

2017.6.30

1.什么是 JDK API

(1) Application Programming Interface ,应用程序编程接口

(2) 是一些预先定义的函数,开发人员可提供直接调用的功能。

2.JDK包结构

便于维护,按照功能划分,不同功能的累划分在不同功能的包中,常用的包如下表:

3.字符串的基本操作

3.1 String 及其API

3.1.1 String

(1) String是不可变对象

(2) ng.String使用了final修饰,不能被继承。

(3)字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中

(4) 任何一个字符对应2个字节的长度,1个字节 = 8位二进制。

3.1.2 String s=new String (“abc”)

(1) 众所周知,答案是:创建两个对象

(2) why?举例子:

分析步骤:

a) 栈中开辟一块空间存放引用str1(地址信息);

b) String池中有一块空间,存放String常量"abc";

c) 引用str1指向池中String常量"abc";

d) str1所指代的地址即常量"abc"所在地址,输出为true;

结论:创建了一个引用对象str1

分析步骤:

1) 栈中开辟一块空间存放引用str3;

2) 堆中开辟一块空间存放一个新建的String对象"abc";

3) 引用str3指向堆中的新建的String对象"abc";

4) str3所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出false;

3.2 StringBuilder常见API

3.2.1 StringBuiler特点

(a)JDK1.5出现StringBuiler

(b)StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用

(c)线程不安全

3.2.2String 、StringBuiler、StrngBuffer三者区别

(a) String长度不可变,StringBuiler和StringBuiler长度可变

(b) 每一次对String操作改变,都会创建新的对象,而后两个不生成新的对象

(c) StringBuiler和StringBuiler创建必须通过关键字new来创建,String可以不用new,可以直接赋值

(d) StringBuffer线程安全,多线程操作时,使用StringBuffer 安全。

StringBuilder线程不安全,单线程操作时,使用StringBuilder 效率高。。

注意:基本数据类型对象包装类都有 XXX parseXXX 方法,只有一个类型没有parse方法:Character 。

4.正则

4.1正则

(1) 正则本身也是字符串

(2) 用于匹配字符串中字符次序的"规则字符串"

(3) 很多编程语言,包括Java都支持了正则表达式

4.2字符集

4.3常用 API

4.4经典的正则案例

5.1 toString

(a)该方法java希望我们重写时返回一个字符串,这个字符串的原则为:用一个字符串来描述当前对象.

(c)因为Object实现的toString()方法不具备什么实际开发意义,所以若我们需要在子类中使用该方法时通常我们会重写它

举例子:

(3)重写toString

(a)没有重写结果 (a)重写后结果

5.2 equals

Object 提供了比较两个对象是否相等方法equals:

1. 默认的equals不能比较对象中数据是否相等建议子类重写这个方法!

2.重写时候, 按照关键数据比较两个对象是否相等

举例:

不重写equals方法:

3.重写equals方法应遵循几个规则:

(a) 任何对象与null比较都应返回false

(b) 两个对象不属于同一个类时应返回false

(c) 同一个对象equals比较应当恒等为true

5.3 equals与 == 的区别

(1) "=="是变量值比较,

(2) 对于引用类型变量而言,该变量保存的是对象的地址

(3 两个变量的地址是否相等,换句话说就是看两个变量引用的是否为同一

个对象

(2) equals是内容比较

(4)对于两个引用变量而言,是比较两个变量所引用的对象内容是否相同

举例:没有toString的情况下输出p和p1

6.日期及常用API

6.1Date及常用API

6.2 SimpleDateFormat

6.3 Calenda

(1) Calendar本身是抽象类,规定了操作时间的方法定义.

(2) 常用实现类GregorianCalendar,即:阳历立法

(3) Calendar提供了一个静态方法getInstance来根据

(4) 获取和设置时间分量

注意:老外的周日是中国的周一

7 .集合

7.1什么是集合

(1) java提供了一种可以存数一组数据的数据结构.

(2)集合,用来存储一组元素,提供了相关操作元素的方法.

(3) Collection(接口)有两个常见的子接口:

List:可重复集,且有序.

常用的有:ArrayList和LinkedList实现类

Set:不可重复集,大部分实现类是无序的.

7.2 集合和数组的区别

(1) 数组是固定长度的;集合可变长度的。

(2) 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引

用数据类型。

(3) 数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据

类型。

7.3 ArrayList和LinkedList的区别

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数结

构。

2.对于随机访问get和set,ArrayList觉得优于LinkedList,因LinkedLis

要移动指针。

3.对于新增和删除操作add和remove,LinedList比较占优势,因ArrayList 要移动数据。

问题:为什么ArrayList随机访问快,而LinkedList增删快?

7.4什么是数据结构

(1)Java中常用的结构:数组、链表、栈、队列

(2)是指相互之间存在一种或多种特定关系的数据元素的集合

(3)特定语法组成的程序+针对不同的事物制定的不同算法。

7.5 ArrayList数据结构(数组)

举例子:

它在内部的数据结构即为数组,类似下面: