Java笔记04-核心类库

Java笔记04-核心类库

Object类

1.1 常用的包

java.lang包  -该包是Java语言中的核心包,该包中的内容由Java虚拟机自动导入
如:String类,System类等java.util包- 该包是Java语言中的工具包,里面包含了大量的工具类和集合类等java.io包 是输入输出包,包括读写各种设备java.net包 是网络编程包,包括各种网络编程java.sql包 是操作数据库的所有类和接口

Java程序员在编程时,可以使用大量的类库,因此,java编程需要记的很多,对编程能力的本身要求不是特别的高.

第三个阶段

从这个阶段开始,我们不需要自己来写一些类了

而是要学习系统给我们写好的一些类了,这部分最好需要随时来查询API文档

Object类

  1. 基本概念
    java.lang.Object类是所有类层次结构的根类,任何类都是该类的直接或间接子类.
    (也验证了那就话,万物皆对象)
  2. 常用的方法
    Object() - 使用无参方式构造对象boolean equals(Object obj) - 用于判断调用对象是否与参数对象相等- 该方法默认比较两个对象的地址,== 运算符结果相同- 为了使得该方法比较两个对象的内容,则需要重写该方法- 若该方法重写后,则应该重写hashCode()方法来维护hashCode方法的常规协定int hashCode() - 用于获取调用对象的哈希码值(内存地址的编号)- 若调用equals方法的结果相等,则各自调用hashCode方法的结果相同- 若调用equals方法的结果不相等,则各自调用hashCode方法的结果不相同- 为了维护上述的常规协定与equals方法结果保持一致,就需要重写该方法String toString()方法 - 用于获取对象的字符串形式- 该方法默认返回的字符串为:包名.类名@哈希码值的十六进制形式- 为了返回更有意义的数据内容,则需要重写该方法- 当字符串内容与引用进行连接时,自动调用toString()方法- 当使用print()println()方法打印引用时,或者用+连接时候,调用该方法

equals方法

equals方法用于判断对象是否"相等"

equals(Object obj)
// 这么定义的好处是,所有的类都能够作为的参数传递进来
// 大不了就形成多态呗!

多态无处不在

boolean equals(Object obj)

要想调用这个方法,这个引用必须是非空的引用,不然会引起空指针异常

自反性: 自个儿跟自个儿比都相等,废话  
对称性: y.equals(x)相等 -> x.equals(y)  
传递性: x与y等,y与z等,那么x与z等  
一致性: x与y等,x还是与y等  
对于空: x(非空).equals(null)结果为false  

说白了equals就是比较引用类型的地址信息
与 == 运算符等价

包装类和数学处理类

Person p = new Person();
// 声明Person类型的引用,指向Person类型的对象
int num = 10;
// 声明一个int类型的变量num初始值为10
// Java语言是一门纯面向对象的编程语言// 对于八种不是对象类型的变量,我们就要想办法把他们包装成面向对象的 -->
包装类概念由于Java语言是一门纯面向对象的编程语言,8种基本数据类型声明的变量并不是对象,为了满足Java语言的特性就需要对这些变量进行对象化处理,而实现该功能的相关类就叫做包装类
包装类的分类int -> java.lang.Integer类char -> java.lang.Character类其他类型对应的包装类就是首字母变为大写的

Integer类

基本概念:java.lang.Integer类是int类型的包装类,里面包含了一个int类型的成员变量.该类有final关键字修饰表示不能被继承
常用方法Integer(int value) - 根据参数指定的整数构造对象Integer(String s) - 根据参数知指定的字符串构造对象该类重写了equals(), hashCode() toString()方法

包装类

基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些数据类型的数据,可以使用一个类,把基本数据类型装起来,在类中定义一些方法,这个类叫做包装类,我们可以使用类中的方法来操作这些基本数据类型的数据

装箱与拆箱

  • 装箱:
  • 把基本数据类型的数据,包装到包装类中(基本数据类型的数据->包装类)
  • 构造方法:
  • Integer(int value)
  • 静态方法:
  • 拆箱:
  • 在包装类中取出基本类型数据(包装类->基本类型数据)
  • 成员方法:int intValue() 以int 类型返回该Integer的值

基本类型与字符串类型之间的相互转换

  • 基本类型 -> 字符串(String)
    1. 基本类型的值+"" 最简单的方法(工作中常用)
    1. 包装类的静态方法toString(参数),不是Object类的toString()重载
    1. String类的静态方法valueOf(参数)
  • static String valueOf(int i) 返回int 参数的字符串表示形式
  • 字符串(String) -> 基本类型
  • 使用包装类的静态方法paresXXX(“字符串”);
  •  Integer类:static int parseInt(String s)
    
  •  Double类: static double parseDouble(String s)
    

String转换成对应的基本数据类型

除了Character类之外,其他所有包装类都具有parseXXX静态方法可以将字符串参数转换为对应的基本类型:

int i = Integer.parseInt(s3);
float ff = Float.parseFloat(s);
long l = Long.parseLong(s);
...

学习集合的目标:

  1. 会使用集合存储数据
  2. 会遍历集合,把数据取出来
  3. 掌握每种集合

集合框架的学习方式:

  1. 学习底层:学习顶层接口/抽象类中共性的方法,所有的子类都可以使用

  2. 使用底层:底层不是接口就是抽象类,无法创建对象使用,需要使用底层的子类创建对象使用

容器类数据包含结构

继承:子类共性抽取,形成父类(接口)

Collection接口List接口Vector集合ArrayList集合LinkedList集合Set接口TreeSet集合HashSet集合(无序)LinkedHashSet集合

无序的集合(存储和取出元素的顺序有可能不一致)

Collection接口

定义的是所有单列集合中共性的方法
所有的单列集合都可以使用共性的方法
没有带索引的方法

List接口

1. 有序集合(存储和取出元素顺序相同)
2. 允许存储重复的元素
3. 有索引,可以使用普通的for循环遍历

Set接口

1. 不允许存储重复元素
2. 没有索引(不能使用普遍for循环遍历)

Collection接口

  • java.util.Collection
  • 所有单列集合的最顶层的接口,里面定义了所有单列集合共性的方法
  • 任意的单列集合都可以使用Collection接口中的方法
  • 共性的方法
  • public boolean add(E e): 把给定的对象添加到当前集合中
  • public void clear():清空集合中所有的元素
  • public boolean remove(E e):把给定的对象在当前集合中删除
  • public boolean contains(E e):判断当前集合中是否包含给定的对象
  • public boolean isEmpty(): 判断当前集合是否为空.
  • public int size(): 返回集合中元素的个数.
  • public Object[] toArray(): 把集合中的元素,存储到数组中.

Iterator迭代器

在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator.Iterator接口也是Java集合中的一员,但它与Collection,Map接口有所不同,Collection接口与Map接口主要用于存贮元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器.

想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法:

  • public Iterator iterator():获取集合对应的迭代器,用来遍历集合中的元素的.
    下面介绍一下迭代的概念:
  • 迭代:即Collection集合元素的通用获取方式.在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来.

一直把集合中的所有元素全部取出.这种取出方式专业术语称为迭代

Iterator接口的常用方法如下:

  • public E next():返回迭代的下一个元素.
  • public boolean hasNext():如果仍有元素可以迭代,则返回true
  • java.util.Iterator 接口:迭代器(对集合进行遍历)
  • 有两个常用的方法
  • boolean hasNext() 如果仍有元素可以迭代,则返回true
  • E next() 返回迭代的下一个元素
  • 取出集合中的下一个元素
  • Iterator 迭代器,是一个接口,我们无法直接使用,需要使用ITerator接口的实现类对象,获取实现类的方式比较特殊
  • Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
  • Iterator iterator()
  • 返回在此 collection 的元素进行迭代的迭代器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Butterknife全方位解析

概述 Butterknife是供职于Square公司的JakeWharton大神开发的开源库,使用这个库,在AS中搭配Android ButterKnife Zelezny插件,可以大大提高开发的效率,从此摆脱繁琐的findViewById(int id),也不用自己手动bind(int id)…

Linux下编译FFMpeg

环境:RedHat AS4  1。首先获取ffmpeg  通过svn下载:  从 http://subversion.tigris.org下载SVN客户端程序。   先装subversion,确保已经安装了apr和apr-util,在apache.org网站能下到  wget http://subversion.tigris.or…

论文笔记 Aggregated Residual Transformations for Deep Neural Networks

这篇文章构建了一个基本“Block”,并在此“Block”基础上引入了一个新的维度“cardinality”(字母“C”在图、表中表示这一维度)。深度网络的另外两个维度分别为depth(层数)、width(width指一个层的channel的数目)。 首…

matlab 归一化_机器学习中如何用Fscore进行特征选择(附Matlab代码)

作者:kervin编辑:阿吉 目前,机器学习在脑科学领域的应用可谓广泛而深入,不论你是做EEG/ERP研究,还是做MRI研究,都会看到机器学习的身影。机器学习最简单或者最常用的一个应用方向是分类,…

Java笔记05-Collection、泛型、迭代器

Java笔记05-Collection、泛型、迭代器 【Collection、泛型】 主要内容 Collection集合迭代器增强for泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合:集合是java中提供的一种容器&a…

IOS安装CocoaPods完整流程

作为一个底层系统大菜鸟,又搞过几年ios来说,安装一个CocoaPods是一件蛋痛的事~ 说懂又懂,说不懂又不懂. 由于安装过程比較复杂,步骤较多,而网上教程又比較零散,并且有一些是扯蛋的,所以本篇文章主要从头到位依据自身安装经历记录每一条终端指令,至于里面的原理和一些概念性的东…

重装TCP/IP

在Windows XP的网络组件列表里,Internet 协议 (TCP/IP)的"卸载"按钮是灰色不可选状态。这是因为传输控制协议/Internet 协议 (TCP/IP) 堆栈是 Microsoft XP/ 2003 的核心组件(TCP/IP协议是Windows XP的默认协议),不能删除。所以Windows XP不允许卸载TCP/I…

linux 修改时区_教你在Centos8中更改时区

对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区。环 境CentOS 8检查现在的时区timedatectl是一个命令行实用程序,允许您查看和…

UVA12511 - Virus(DP+最长公共上升子序列)

题目链接: https://vjudge.net/problem/UVA-12511 题目大意: 给定两个序列,求出两个序列的最长公共上升子序列(严格上升)。 解题过程: 比赛的时候没有做出来,非常咸鱼的一场比赛,当时…

Java笔记06-Map集合

Map集合 学习目标 能够说出Map集合特点使用Map集合添加方法保存数据使用”键找值”的方式遍历Map集合使用”键值对”的方式遍历Map集合能够使用HashMap存储自定义键值对的数据能够使用HashMap编写斗地主洗牌发牌案例 Map集合概述 啥也不用说,Map集合就相当于python中的字典…

理解什么是前后端分离

HTML、CSS、JS。 AJAX或Fetch。 学习一个前端的框架, React或者Vue或者Angularjs2都可以。 学会一个前端的路由框架, 如React-Router或者Vue-Router。 在学会3的基础上你肯定已经搭建好前端的开发环境了,所有和后端的交互走AJAX或者Fetch…

帧间、帧内像素块预测

一、像素块预测 H.264/ AVC标准中的基本预测技术是基于块,而不是基于对象的。它的编码器是利用混合的编码方案来提高编码效率,这些方案包括高级的预测技术和有效熵编码技术。在运动预测中它使用不同的块的大小进行预测,以树结构的方式来组织…

高性能mysql 第10章 复制

复制功能不仅能够构建高可用的应用,同时也是高可用性,可扩展性,灾难恢复,备份以及数据仓库等工作的基础。 mysql支持两种复制方式:基于语句的复制和基于行的复制。基于语句的复制(也成为逻辑复制&#xff0…

vb6在后台将窗体保存到图片_如何将寺库网多个商品图片一键分类保存到一个目录...

寺库网是全球最大的奢侈品网上在线购物平台,那么我们怎样可以从寺库网上一键批量采集到多个宝贝商品图片,并分类保存到电脑呢?今天小编给大家带来一款专业电商图片链接采集软件【载图助手】,它支持平台高达141个,均可支…

Java笔记07-List、Set、数据结构、Collections

Java笔记07-List、Set、数据结构、Collections 主要内容 数据结构List集合Set集合Collections 第一章 数据结构 2.1 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组&#xff…

Apache安装问题:configure: error: APR not found . Please read the documentation

参考:http://cuisuqiang.iteye.com/blog/2068794 http://www.cnblogs.com/Anker/p/3355573.html pcre: https://ftp.pcre.org/pub/pcre/ http://www.linuxidc.com/Linux/2012-06/62289.htm 1. 不赞成去卸载httpd的东西。 2. server上可以存在多个apache。一个是rpm&…

浮动与定位

2019独角兽企业重金招聘Python工程师标准>>> 一.浮动:float:一个元素浮动时,其他内容会"环绕"该元素. 浮动元素的外边距不会合并浮动的元素不能超出其包含快的内边界浮动元素彼此会避免重叠浮动元素的顶端不能比之前所有浮动元素或块级元素的顶端更高如果…

驱动级的自动按键_Aqara全自动智能推拉锁D100,体验全自动开门的便捷

大家好,我是梦想是个猪,今天为大家带来的是一篇智能门锁的使用体验。前言家里的这张门陆陆续续的换了好几把智能门锁了,也体验了好几种不同的开锁方式。最开始开发商给安装的是一把指纹和把手分离的那种款式,开锁的时候需要先输入…

码率问题

帧率影响的是每帧的额定比特数 我说的帧率是编码帧率,不是采集帧率。对于一个采集后的序列,MAD 只跟参考帧有关。而编码帧率与参考帧无关,因此编码帧率不影响 MAD。 ———————————————————————————————————…

Java笔记08-Map详解

第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象…