过一遍Java中的API
常用的API
API:Application Programming Interface应用编程接口,一切可以调用的东西都是API。
1.Object
1.1概念
所有对象的顶级父类
存在于java.lang包中,这个包不需要我们手动导包
1.2常用方法
boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。int hashCode()返回该对象的哈希码值。String toString()返回该对象的字符串表示。
2.String
length()
charAt()
lastIndexOf()
substring()
equals()
startsWith()
endsWith()
split()
trim() 去除字符串两端的空格
2.1案例:
String s = "abcdefghijk";System.out.println(s.charAt(3));//d,返回指定索引处的 char 值。System.out.println(s.endsWith("jk"));//true,是否以指定后缀结束String s1 = "abc";System.out.println(s.equals(s1));//false,判断两个字符串的内容是否相同System.out.println(s.length());//11,字符串的长度String s2="1,2,3,4,5";String[] strs = s2.split(",");//根据指定的规则切割字符串System.out.println(Arrays.toString(strs));//查看数组元素System.out.println(s2.startsWith("1,"));//true//截取时含头不含尾[3,7)System.out.println(s.substring(3,7));//defg//把指定的参数转换成String类型//把数字10转成字符串10System.out.println(String.valueOf(10));
2.2StringBuilder/StringBuffer
2.2.1特点
1、 封装了char[]数组
2、 是可变的字符序列
3、 提供了一组可以对字符内容修改的方法
4、 常用append()来代替字符串做字符串连接
5、 内部字符数组默认初始容量是16:initial capacity of 16 characters
6、 如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;
7、 StringBuffer 1.0出道线程安全,StringBuilder1.5出道线程不安全
2.2.2常用的方法
append()
charAt()
3.包装类
3.1与基本类型的对应关系
4.日期类
4.1概述
存在于java.util.Date包。
用来封装一个毫秒值表示一个精确的时间点。
从1970-1-1 0点开始的毫秒值。
4.2创建对象
new Date():封装的是系统当前时间的毫秒值
new Date(900000000000L):封装指定的时间点
4.3常用方法
getTime():取内部毫秒值
setTime():存取内部毫秒值
getMonth():获取当前月份
getHours():获取当前小时
compareTo(Date):当前对象与参数对象比较。当前对象大返回正数,小返回负数,相同0。
4.4测试案例
package cc;
import java.util.Date;
public class bb {public static void main(String[] args) {Date d = new Date();System.out.println(d);//输出当前时间System.out.println(d.getTime());//输出1970-1-1至今的毫秒值System.out.println(d.getMonth());//获取当前月份System.out.println(d.getHours());//获取当前小时}
}
5.BigDecimal/BigInteger
BigDecimal:常用来解决精确的浮点数运算。
BigInteger:常用来解决超大的整数运算。
5.1创建对象
BigDecimal.valueOf(2);
5.2常用方法
add(BigDecimal bd): 做加法运算
substract(BigDecimal bd) : 做减法运算
multiply(BigDecimal bd) : 做乘法运算
divide(BigDecimal bd) : 做除法运算
divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用
setScale(保留位数,舍入方式):同上
pow(int n):求数据的几次幂
6.File文件流
6.1.1概述:
封装一个磁盘路径字符串,对这个路径可以执行一次操作。
可以用来封装文件路径、文件夹路径、不存在的路径。
6…1.2常用方法
length():文件的字节量
exists():是否存在,存在返回true
isFile():是否为文件,是文件返回true
isDirectory():是否为文件夹,是文件夹返回true
getName():获取文件/文件夹名
getParent():获取父文件夹的路径
getAbsolutePath():获取文件的完整路径
7.序列化/反序列化
7.1概念
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。
在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
序列化:利用ObjectOutputStream,对象的信息,按固定格式转成一串字节值输出并持久保存到磁盘化。
反序列化:利用ObjectInputStream,读取磁盘中序列化数据,重新恢复对象。
7.2案例
public class Test1_Seri {public static void main(String[] args) throws Exception, IOException {//序列化ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream("D:\\teach\\student.txt"));Student s=new Student("张三", 20, "成都");os.writeObject(s);os.close();//关闭输出资源//反序列化ObjectInputStream in=new ObjectInputStream(new FileInputStream("D:\\teach\\student.txt"));}
}
//
class Student implements Serializable{//创建对象用public Student(String name,int age,String addr) {this.name=name;this.age=age;this.addr=addr;}//String name="张三";int age=20;String addr="成都";@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", addr=" + addr + "]";}
}
8.泛型
8.1概念
泛型是(Generics)是JDK1.5 的一个新特性,其实就是一个『语法糖』,本质上就是编译器为了提供更好的可读性而提供的一种小手段,小技巧,虚拟机层面是不存在所谓『泛型』的概念的。
8.2作用
通过泛型的语法定义,约束集合元素的类型,进行安全检查,把错误显示在编译期
l 代码通用性更强,后面有案例
l 泛型可以提升程序代码的可读性,但它只是一个语法糖(编译后这样的东西就被删除,不出现在最终的源代码中),对于JVM运行时的性能是没有任何影响的。
9.Collection接口
9.1概述
英文名称Collection,是用来存放对象的数据结构。其中长度可变,而且集合中可以存放不同类型的对象。并提供了一组操作成批对象的方法。
数组的缺点:长度是固定不可变的,访问方式单一,插入、删除等操作繁琐。
9.2集合的继承结构
Collection接口
-- List接口 : 数据有序,可以重复。-- ArrayList子类-- LinkedList子类
-- Set接口 : 数据无序,不可以存重复值-- HashSet子类
-- Map接口 : 键值对存数据
-- HashMap
Collections工具类
9.3常用的方法
boolean add(E e):添加元素。
boolean addAll(Collection c):把小集合添加到大集合中
boolean contains(Object o) : 如果此 collection 包含指定的元素,则返回 true。
boolean isEmpty() :如果此 collection 没有元素,则返回 true。
Iterator<E> iterator():返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o) :从此 collection 中移除指定元素的单个实例。
int size() :返回此 collection 中的元素数。
Objec[] toArray():返回对象数组
9.4List接口
概述
有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
特点
1、 数据有序
2、 允许存放重复元素
3、 元素都有索引
常用方法
ListIterator<E> listIterator()返回此列表元素的列表迭代器(按适当顺序)。ListIterator<E> listIterator(int index)返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。void add(int index, E element)在列表的指定位置插入指定元素(可选操作)。
boolean addAll(int index, Collection<? extends E> c)将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。List<E> subList(int fromIndex, int toIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
E get(int index)返回列表中指定位置的元素。
int indexOf(Object o)返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
9.4.1ArrayList
概述
存在于java.util包中。
内部用数组存放数据,封装了数组的操作,每个对象都有下标。
内部数组默认初始容量是10。如果不够会以1.5倍容量增长。
查询快,增删数据效率会降低。
创建对象
new ArrayList():初始容量是10
9.4.2LinkedList
概述
双向链表,两端效率高。底层就是数组和链表实现的。
常用方法
add()
get()
size()
remove(i)
remove(数据)
iterator()
addFirst() addLast()
getFirst() getLast()
removeFirst() removeLast()
9.5.1List接口
概述
一个不包含重复元素的 collection。
数据无序(因为set集合没有下标)。
由于集合中的元素不可以重复。常用于给数据去重。
特点
HashSet:底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K,存入内部的HashMap中。当然K仍然不许重复。
TreeSet:底层就是TreeMap,也是红黑树的形式,便于查找数据。
HashMap实现中,当哈希值相同的对象,会在同一个hash值的位置存储不同属性的数据。
常用方法
boolean add(E e):添加元素。
boolean addAll(Collection c):把小集合添加到大集合中
boolean contains(Object o) : 如果此 collection 包含指定的元素,则返回 true。
boolean isEmpty() :如果此 collection 没有元素,则返回 true。
Iterator<E> iterator():返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o) :从此 collection 中移除指定元素的单个实例。
int size() :返回此 collection 中的元素数。
Objec[] toArray():返回对象数组
9.5.2Map接口
概述
java.util接口 Map<K,V>
类型参数: K - 此映射所维护的键的类型V - 映射值的类型
也叫哈希表、散列表。常用于存 键值对 结构的数据。其中的键不能重复,值可以重复.
特点
可以根据键 提取对应的值 键不允许重复,如果重复值会被覆盖
存放的都是无序数据
初始容量是16,默认的加载因子是0.75
继承结构
常用方法
void clear()从此映射中移除所有映射关系(可选操作)。boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。boolean isEmpty()如果此映射未包含键-值映射关系,则返回 true。V put(K key, V value)将指定的值与此映射中的指定键关联(可选操作)。void putAll(Map<? extends K,? extends V> m)从指定映射中将所有映射关系复制到此映射中(可选操作)。V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。int size()返回此映射中的键-值映射关系数。
Set<Map.Entry<K,V>> entrySet()返回此映射所包含的映射关系的 Set 视图。
HashMap
HashMap的键要同时重写hashCode()和equals()
hashCode()用来判断确定hash值是否相同
equals()用来判断属性的值是否相同
-- equals()判断数据如果相等,hashCode()必须相同
-- equals()判断数据如果不等,hashCode()尽量不同
10.Collections工具类
常用方法
Collections.sort(List<> list):根据元素的自然顺序 对指定列表按升序进行排序。
Collections.max():根据元素的自然顺序,返回给定 collection 的最大元素。
Collections.min():根据元素的自然顺序 返回给定 collection 的最小元素。
Collections.swap(List,i,j):在指定列表的指定位置处交换元素。
Collections.addAll()
过一遍Java中的API相关推荐
- java中常用API、Scanner类、匿名对象、Random类、ArrayList类、对象数组
java中常用API: API:Application Programming Interface,应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.这些类将底层的代码实现封装 ...
- Java中常用 API(第一部分)
1.API API 概述: API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文 ...
- Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要阅读英文的内容:而像我这样的英文小白就只能借助翻译工具才能理解个大概:不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现IBM的云 ...
- JAVA中的API是什么?
API (Application Programming Interface)应用程序接口 是对java预先定义的类或接口功能和函数功能的说明文档,目的就是提供给开发人员进行使用帮助说明的. API多 ...
- java中调用api的方式(postJsonHTTP)
//设置格式以及字符编码private static final MediaType JSON = MediaType.parse("application/json; charset=ut ...
- JAVA中常用api学习思维导图
- JAVA中API和SPI的区别
* API(Application Programming Interface ) 在java中,API是指可以用来完成某项功能的类.接口或者方法. SPI(Service Provider Inte ...
- java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点
Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找. 本文主要分为以下几个部分: 1.进制的相互 ...
- java难点_JAVA-详细分析JAVA中的难点与重点
Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找. 本文主要分为以下几个部分: 1.进制的相互 ...
最新文章
- C4D+ PS打造城市场景 Create a Cityscape with Cinema 4D + Photoshop
- 医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增
- 构建云安全架构的技巧
- c语言 char memcpy,在C中使用memcpy复制无符号字符数组
- 阿里云主机安装Memcached扩展优化WordPress
- win7 mysql msi_windows下的Mysql安装与基本使用(msi)
- 201521123023《Java程序设计》第13周学习总结
- 制备pdms膜的方法_船体用钢板基底超疏水表面的制备和性能
- 无迹卡尔曼滤波器(UKF)
- 微课|中学生可以这样学Python(1.4节):安装扩展库
- 剑指offer面试题54. 二叉搜索树的第k大节点(逆中序遍历)
- org.apache.ibatis.builder.BuilderException: An invalid property ‘jdbcType ‘ was found in mapping
- defender 报备_微软Defender获AV-TEST杀软评测最高分
- 解决VMware 7在Windows 7上无法上网的问题
- Apache优化配置
- 锐捷服务器有什么型号,锐捷管理服务器RG-RCMS-16
- vcpkg: bootstrap-vcpkg.bat下载失败问题
- 2021-05-12
- Java经典书籍推荐
- 怎么将flac文件转成mp3文件
热门文章
- (转载)-关于sg函数的理解
- linux上网本系统下载,上网本操作系统veket linux5.192b正式版下载
- 图灵、图灵机和图灵测试
- idea如何连接达梦数据库
- 如何使用python实现简单爬取网页数据并导入MySQL中的数据库
- Dennard Scaling
- Windows常用快捷组合键整理Dos命令基础集合
- BERT模型—5.BERT模型在句子分类任务(意图识别)上的微调
- 2022暑期项目实训(一)
- long term recurrent convolutional networks for visual recognition and description