| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java学习:从入门到精通week3 -> 正文阅读 |
|
[Java知识库]Java学习:从入门到精通week3 |
一.Object类、常用API?概述
如果一个类没有特别指定父类, 那么默认则继承自Object类。 1.object类?1.1toString方法1.2equals方法?object中的equals方法(容忍null)?2.date类2.1几个常用方法
?2.1DeteFormat类(抽象类)? ?1)String?format(Date?date) 2)Date?parse(String?source)
?3.Calendar类(抽象类)3.1设置日期1)获取日期 2)设置日期 ?3)增加/减少?日期 ?4.System类4.1获取毫秒?4.2数组的复制? ? ?与我们说所的复制不同,其实是将数组对于索引位置覆盖在另一个数组上面。 5. StringBuilder类?
原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。 ? ?5.1StringBuilder的使用1)构造方法 ?2)成员方法 public?StringBuilder?append(....)添加任意类型数据的字符串形式,并返回当前对象自身。 ?有兴趣可以试试链式编程。 ?public?StringBuilder?toString() ?6.包装类6.1概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下: ?6.2装箱与拆箱?在使用构造方法时会出现横线划掉Interger,说明方法过时了。 如果用Integer方法放置字符,则会报错: 6.3自动拆箱和自动装箱?由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如: ?6.4基本类型和字符串类型的转换1)基本数据-->字符串 这里只写最常用的方法: ?其实就是令100变成“100” ?2)字符串-->基本数据类型 其他类型其实就是: 基本数据类型? 用户标识符? =? ?对应包装类.parse+数据类型(原字符串对象名称) ,如 short? a =?Short.parseByte? (基本数据类型首字母大写) 二.Collection、泛型1.Collection集合1.1概述
1.2集合框架集合按照其存储结构可以分为两大类,分别是单列集合
?1.3Collection的常用功能共性方法: 创建对象? 此处使用多态,如果后面是Hashset等其他类,也可以继续使用。 ?1)添加(返回类型boolean) 应该注意的是,此处的coll为字符串数组,即为“李四”,“张三”,“赵六”,“田七”四个字符串构成的字符串数组,若在后面删除李”四赵六”,则返回的是false。 2)删除(返回类型boolean) ?3)判断是否包含元素(返回类型boolean) ?4)判断集合是否为空(返回类型为boolean) 5)返回集合个数(int)? 6)存储集合元素到数组 ?7)清空集合元素 8)获取索引位置对于的字符串
?2.Iterator迭代器2.1概念
2.2迭代器的方法?2.3迭代器的使用
? 3.增强for循环增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。 3.1遍历数组
3.2遍历集合
4.泛型4.1概述?在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。 ? ? ? ? ?我们来分析下:由于集合中什么类型的元素都可以存储。导致取出时强转引发运行时?报错ClassCastException。 怎么来解决这个问题呢? Collection虽然可以存储各种对象,但实际上通常Collection只存储同一类型对象。例如都是存储字符串对象。因此在JDK5之后,新增了泛型(Generic)语法,让你在设计API时可以指定类或方法支持泛型,这样我们使用API的时候也变得更为简洁,并得到了编译时期的语法检查。
4.2 使用泛型的好处
?4.3?泛型的定义与使用?eg:首先定义一个含有泛型的类 使用这个类 ? 4.4定义含有泛型的方法eg:?定义泛型方法 ? 泛型方法的使用 ?4.5含有泛型的接口使用格式 (实现类)1)已经确定泛型的类型 ?2)始终不确定泛型的类型,直到创建对象时,确定泛型的类型 测试类??4.6泛型的通配符当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。 通配符高级使用----受限泛型之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置。但是在JAVA的泛型中可以指定一个泛型的上限和下限。 泛型的上限:
泛型的下限:
?比如:现已知Object类,String 类,Number类,Integer类,其中Number是Integer的父类。 ? 三.List、Set、数据结构、Collections?1.数据结构(与集合相关)#了解1.1数据结构的作用当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。 现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。 我们java是面向对象的语言,就好似自动档轿车,C语言好似手动档吉普。数据结构呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A点 开到 B点,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。当然了,数据结构内容比较多,细细的学起来也是相对费功夫的,不可能达到一蹴而就。我们将常见的数据结构:堆栈、队列、数组、链表和红黑树 这几种给大家介绍一下,作为数据结构的入门,了解一下它们的特点即可。 1.2常见的数据结构数据存储的常用结构有:栈、队列、数组、链表和红黑树。 1)栈
简单的说:采用该结构的集合,对元素的存取有如下的特点
注意两个名词: 2)队列
简单的说,采用该结构的集合,对元素的存取有如下的特点:
?3)数组
简单的说,采用该结构的集合,对元素的存取有如下的特点:
?4)链表 链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表结构有单向链表与双向链表 。 特点?
5)红黑树 二叉树:binary tree ,是每个结点不超过2的有序树(tree ) 简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。 二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。 ?红黑树本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。也就意味着,树的键值仍然是有序的。 2.List集合2.1概述和特点2.2方法??1)指定位置添加元素(返回值类型void) ?2)指定位置删除元素(返回值类型E) 3)指定位置替换元素?(返回值类型E) ?4)List的遍历 ?增强for遍历快捷方式:List.for回车 ?如获取索引位置大于数组最大索引,会报错。 2.3ArrayList类
许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。 当查询较多时,推荐使用ArrayList。 2.4 LinkedList集合概述: ?方法的使用,先创建对象(了解) ?1)添加元素 2)获取元素
?4)移除并返回元素 ? #Vector类,作为了解,已被淘汰。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/12 3:17:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |