JDK API

什么是JDK API?

JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装)。

JDK API包含的类库功能强大,经常使用的有:字符串处理,集合操作,文件操作,输入输出操作,网络操作,多线程等。

JDK包结构

为了便于使用和维护,JDK类库按照包结构划分,不同功能的类划分在不同的包中;

经常使用的包如下图:

功能
java.lang Java程序的基础类,如字符串、多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用
java.util 常用工具类,如集合、随机数产生器、日历、时钟等
java.io 文件操作、输入/输出操作
java.net 网络操作
java.math 数学运算相关操作
java.security 安全相关操作
java.sql 数据库访问
java.text 处理文字、日期、数字、信息的格式

JAVA文档注释

什么是文档注释?

java只有3种注释方式,前两种分别是//和/* */,第三种被称作为说明注释,它以/** 开始,以*/结尾。

怎么使用注释文档?

加在类和方法的开头,可以轻松的将此注释转换成HTML文档说明;学习者和程序员主要通过文档理解API的功能。

说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输入到HTML文件中,说明注释,使你的更加方便的记录你的程序的信息。

javadoc 标签

javadoc工具软件识别以下标签:

标签 描述 示例
@author 标识一个类的作者 @author description
@deprecated 指名一个过期的类或成员 @deprecated description
{@docRoot} 指明当前文档根目录的路径 Directory Path
@exception 标志一个类抛出的异常 @exception exception-name explanation
{@inheritDoc} 从直接父类继承的注释 Inherits a comment from the immediate surperclass.
{@link} 插入一个到另一个主题的链接 {@link name text}
{@linkplain} 插入一个到另一个主题的链接,但是该链接显示纯文本字体 Inserts an in-line link to another topic.
@param 说明一个方法的参数 @param parameter-name explanation
@return 说明返回值类型 @return explanation
@see 指定一个到另一个主题的链接 @see anchor
@serial 说明一个序列化属性 @serial description
@serialData 说明通过writeObject( ) 和 writeExternal( )方法写的数据 @serialData description
@serialField 说明一个ObjectStreamField组件 @serialField name type description
@since 标记当引入一个特定的变化时 @since release
@throws 和 @exception标签一样. The @throws tag has the same meaning as the @exception tag.
{@value} 显示常量的值,该常量必须是static属性。 Displays the value of a constant, which must be a static field.
@version 指定类的版本 @version info

文档注释:

在开始的/**之后,第一行或几行是关于类,变量和方法的主要描述。

之后,你可以包含一个或多个何种各样的@标签。每个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*)。

多个相同类型的标签应该放在一组。

子符串处理

String及其常用API

什么是字符串处理?

一般程序需要处理大量文本数据,Java 语言的文本数据被保存为字符或字符串类型。关于字符及字符串的操作主要用到 String 类和 StringBuffer 类,如连接、修改、替换、比较和查找等。

字符串是 Java 程序中经常处理的对象之一,因此如果字符串运用得不好,将影晌到程序的运行效率。本章从如何定义字符串开始介绍字符串本身的特性,以及各种字符串操作的实现方法。

String类

在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象。

和其它对象一样,可以使用关键字和构造方法来创建String对象。

String类有11种构造方法,这些方法提供不同的参数来初始化字符串。

String是不可变对象

java.lang.String使用了final修饰,不能被继承。

字符串底层封装了字符数组及针对字符串数组的操作算法。

字符串一旦创建,对象永远无法改变,单字符串引用可以重新赋值。

Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。

String 方法

下面是String类支持的方法,更多详细,参看Java API文档:

SN(序号) 方法描述
1 char charAt(int index)
返回指定索引处的 char 值。
2 int compareTo(Object o)
把这个字符串和另一个对象比较。
3 int compareTo(String anotherString)
按字典顺序比较两个字符串。
4 int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。
5 String concat(String str)
将指定字符串连接到此字符串的结尾。
6 boolean contentEquals(StringBuffer sb)
当且仅当字符串与指定的StringButter有相同顺序的字符时候返回真。
7 static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的 String。
8 static String copyValueOf(char[] data, int offset, int count)
返回指定数组中表示该字符序列的 String。
9 boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
10 boolean equals(Object anObject)
将此字符串与指定的对象比较。
11 boolean equalsIgnoreCase(String anotherString)
将此 String 与另一个 String 比较,不考虑大小写。
12 byte[] getBytes()
 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
13 byte[] getBytes(String charsetName)
使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此字符串复制到目标字符数组。
15 int hashCode()
返回此字符串的哈希码。
16 int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
17 int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
18 int indexOf(String str)
 返回指定子字符串在此字符串中第一次出现处的索引。
19 int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
20 String intern()
 返回字符串对象的规范化表示形式。
21 int lastIndexOf(int ch)
 返回指定字符在此字符串中最后一次出现处的索引。
22 int lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
23 int lastIndexOf(String str)
返回指定子字符串在此字符串中最右边出现处的索引。
24 int lastIndexOf(String str, int fromIndex)
 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
25 int length()
返回此字符串的长度。
26 boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
29 String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
30 String replaceAll(String regex, String replacement
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
31 String replaceFirst(String regex, String replacement)
 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
32 String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
33 String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。
34 boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
35 boolean startsWith(String prefix, int toffset)
测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
36 CharSequence subSequence(int beginIndex, int endIndex)
 返回一个新的字符序列,它是此序列的一个子序列。
37 String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
38 String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
39 char[] toCharArray()
将此字符串转换为一个新的字符数组。
40 String toLowerCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
41 String toLowerCase(Locale locale)
 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
42 String toString()
 返回此对象本身(它已经是一个字符串!)。
43 String toUpperCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
44 String toUpperCase(Locale locale)
使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
45 String trim()
返回字符串的副本,忽略前导空白和尾部空白。
46 static String valueOf(primitive data type x)
返回给定data type类型x参数的字符串表示形式。

常用用到的字符串处理,操作

1.连接字符串

“+”运算符是最简单,最快捷,也是使用最多的字符串连接方式。

在使"+"运算符连接字符串和int型(或double型数)数据时,"+"将int(double)型数据自动转换成String类型。

使用concat()方法也可以。

语法:

字符1.concat(字符2);

连接不同类型数据时用"+"。

2.内存编码及长度

获取字符串长度

语法:

字符串名.length();

3.大小写变换(查阅API)

语法:

字符串名.toUpperCase();

String类的toUpperCase()方法可以将字符串的所有字符全部转换为大写,而非子母的字符不受影响。

语法:

字符串名.toLowerCase();

String类的toLowerCase()方法可以将字符串的所有字符全部转换成小写,而非子母的字符不受影响。

4.trim(查阅API)

去除空格

语句:

字符串名.trim();

5.使用substring获取子串

substring方法用于返回一个字符串的子字符串

substring常用重载方法定义:

String substring(int beginIndex,int endIndex) 返回字符串中从下标beginIndex(包括)开始到endIndex(不包括)结束的子字符串
String substring(int beginIndex) 返回字符串中从下标beginIndex(包括)开始到字符串结尾的子字符串

提取子字符

语句:

字符串名.subString();

6.分割字符串

语法:

字符串名.split(数据类型,变量名);

String类的split()方法可以按指定的分割对目标字符串进行分割,分割后的内容存放在字符串数组中。

7.字符串替换

String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll()

replace()

语法:

字符串.replace(替换数据名,要替换的数据名);

replace()方法用于将目标字符串的指定字符串替换成新的字符(全部含有这个元素)。

replaceFirst()

语法:

字符串.replaceFirst(替换数据名,要替换数据名);

字符串replaceFirst()方法用于将目标字符串中某匹配正则表达式的第一个子字符串替换。

replaceAll()

语法:

字符串.replaceAll(替换数据名,要替换数据名);

replaceAll()方法用于将目标字符串中匹配某正则表达式的所有子字符串替换。

8.字符串比较

语法:

字符串1.equals(字符串2);

equals方法相同逐个比较两个字符串的每个字符是否相同,对于字符大小写也要检查。

语法:

字符串1.equalslgnoreCace(字符串2);

与equals方法相同,但比较时不区分大小写。

语法:

字符串1.compareTo(字符串2);

compateTo()方法用于按字典顺序比较两个字符串大小,比较是基于字符串各个字符的Unicode值。

如果字符串1位于字符串2参数之前,比较结果为一个负整数;否则为整数;如果相等则为0。

9.使用indexOf实现检索

String提供几个重载的indexOf方法

int indexOf(String str) 在字符串中检索str,返回其第一次出现的位置,如果找不到则返回-1
int indexOf(String str,int fromIndex) 从字符串的fromIndex位置开始检索

String还定义有lastIndexOf方法:

int lastIndexOf(String str,int from) str在字符串中多次出现时,将返回最后一个出现的位置

语法:

字符串.imdexOf(查找元素);

indexOf()方法用于返回字符串在指定字符串中首次出现的索引位置,如果能找到返回索值,否则返回-1.

语法:

字符串.lastindexOf(查找元素);

lastindexOf()方法用于返回字符串中指字符串最后一次出现的索引位置,如果找到返回索引,否则返回-1。

lastindexOf()方法是从右往左查找,如果不指定起始索引位置,默认从字符串末尾找。

10.charAt(查阅API)

语法:

字符串名.charAt(索引值);

String类的charAt()方法根据指定的索引值查找。

11. valueOf(查阅API)

valueOf方法用于将其他类型转换成字符串类型。

12.startsWith和endsWith(查阅API)

startsWith检测一个字符串是否以指定字符串开头。
endsWith检测一个字符串是否以值定字符串结尾。 

StringBuffer和StringBuilder类

当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。

和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。

由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。

StringBuffer 方法

常用方法:

StringBuilder类的常用方法 功能描述
StringBuilder append(String str) 追加字符串
StringBuilder insert(int dstOffset,String s) 插入字符串
StringBuilder delete(int start,int end) 删除字符串
StringBuilder replace(int start,int end,String str) 替换字符串
StringBuilder reverse() 字符串反转

下面的列表里的方法和String类的方法类似:

序号 方法描述
1 int capacity()
返回当前容量。
2 char charAt(int index)
返回此序列中指定索引处的 char 值。
3 void ensureCapacity(int minimumCapacity)
确保容量至少等于指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此序列复制到目标字符数组 dst
5 int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。
6 int indexOf(String str, int fromIndex)
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
7 int lastIndexOf(String str)
返回最右边出现的指定子字符串在此字符串中的索引。
8 int lastIndexOf(String str, int fromIndex)
返回最后一次出现的指定子字符串在此字符串中的索引。
9 int length()
 返回长度(字符数)。
10 void setCharAt(int index, char ch)
将给定索引处的字符设置为 ch
11 void setLength(int newLength)
设置字符序列的长度。
12 CharSequence subSequence(int start, int end)
返回一个新的字符序列,该字符序列是此序列的子序列。
13 String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
14 String substring(int start, int end)
返回一个新的 String,它包含此序列当前所包含的字符子序列。
15 String toString()
返回此序列中数据的字符串表示形式。

追加字符串

语法:

StingBaffer 对象.append(字符串);

StringBaffer类的append()方法用于向原有StringBaffer对象中追加字符串,追加到StringBaffer对象的末尾。

替换字符串

语法:

StringBaffer 对象.deletecharAt();

deletecharAt()方法用于移除序列中指定位置的字符。

反转字符串

语法:

StringBuffer 对象.reverse();

reverse() 方法用于将字符串序列用其反转的形式取代。

删除字符串

1. deleteCharAt() 方法

deleteCharAt() 方法用于移除序列中指定位置的字符,

语法:

StringBuffer 对象.deleteCharAt(int index);

deleteCharAt() 方法的作用是删除指定位置的字符,然后将剩余的内容形成一个新的字符串。

2.delete方法():

语法:

StringBaffer 对象.delete(int start,int end);

delete()方法用于移除序列中子字符串的字符。

插入字符串

语法:

字符串.insert();

StringBuilder总结

· StringBuilder是可变字符串。字符串的内容计算,建议采用StringBuilder实现,这样性能会好一些;

· java的字符串连接的过程是利用StringBuilder实现的

StringBuffer和StringBuilder

StringBuffer是线程安全的,同步处理的,性能稍慢

StringBuilder是非线程安全的,并发处理的,性能稍快

Day01:API文档 / 字符串基本操作的更多相关文章

  1. JAVASE02-Unit01: API文档 、 字符串基本操作

    API文档 . 字符串基本操作 文档注释 package day01; /** * 文档注释只能定义在三个地方: * 类,方法,常量 * * 文档注释是功能注释,用来说明功能作用 * 在类上使用的目的 ...

  2. jQuery MiniUI开发系列之:使用API文档

    jQuery MiniUI在组件设计上,是简约.独立的,没有复杂的继承体系. 比如使用DataGrid,可以在api文档的datagrid部分,查找到datagrid的所有属性.方法.事件,而无需关注 ...

  3. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  4. HighCharts 详细使用及API文档说明

    一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下 ...

  5. GhostDoc:生成.NET API文档的工具 (帮忙文档)

    在 Sandcastle:生成.NET API文档的工具 (帮忙文档) 后提供另一个生成API文档的工具.   1) 准备工作 安装GhostDoc Proc. 收费的哦.... 这个工具的优势是不像 ...

  6. 使用jsdoc-toolkit来自动生成js api文档

    近来前端组小盆友开发的类库越来越多,很多情况下彼此不知道写了些什么方法,为了更好的合作提高工作效率,找了个比较好的api文档生成方法.使用jsdoc-toolkit来自动生成js api文档. 一.  ...

  7. HighCharts 具体使用及API文档说明

    一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每一个部分,比方配置标题(title),副标题(subtitle)等,当中每一个部分又有更细的參数配置,比方标 ...

  8. grunt api 文档

    Grunt docs Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. 安装 grunt-cli npm install grunt-cli -g 注 ...

  9. FastDFS接口API文档说明

    FastDFS接口API文档说明 时间:2012-03-17 来源:R9IT 作者:R9传奇 一.命令行的上传: 上传命令1. /usr/local/bin/fdfs_upload_file conf ...

随机推荐

  1. eclipse编码格式(中文乱码)

    https://jingyan.baidu.com/article/2009576193ee38cb0721b416.html 修改工作空间默认编码 1 进入Eclipse,导入一个项目工程,如果项目 ...

  2. python继承小demo

    # -*- coding: utf-8 -*- """ 继承的意义:实现代码重用,数据函数都可以重用 子类覆盖,子类与父类同名 选择性继承 super().__init_ ...

  3. 一例基于thinkphp,jquery和bootstrap渲染的查询数据分页器

    对于某些查询记录很多的结果,web页面不得不采用分页器,现在奉上一例代码,其主要逻辑是:由页面的dom 节点发起ajax请求,返回的查询结果根据页面布局需要进行切片:并根据总记录数和页面展现的条数算出 ...

  4. mysql常用查询命令

    转引自:https://www.cnblogs.com/widows/p/7137184.html 常用mysql命令 show variables like 'character_set_clien ...

  5. 基于TCP的客户端、服务器端socket编程

    一.实验目的 理解tcp传输客户端服务器端通信流程 二.实验平台 MAC OS 三.实验内容 编写TCP服务器套接字程序,程序运行时服务器等待客户的连接,一旦连接成功,则显示客户的IP地址.端口号,并 ...

  6. JAVA笔记2-面向对象与内存解析

    1.java中的变量先声明.再赋值.再使用.(局部变量必须初始化,成员变量默认初始化) 2.基本类型之外的所有类型都是引用类型.基本类型占一块内存,引用类型占两块(所有new出来的东西装在堆内存,因为 ...

  7. OpenCV笔记(1)(图片读取与现实、色彩空间、基础运算、均值方差、逻辑运算、泛洪填充、均值中值及自定义平滑)

    一.图片读取和显示 import cv2 as cv # 图片读取cv.imread(img_path) car_img = cv.imread("car1.png") # 图片显 ...

  8. 51 Nod 最大子矩阵和

    1051 最大子矩阵和  基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的 ...

  9. Codeforces Round #325 (Div. 2) B. Laurenty and Shop 有规律的图 暴力枚举

    B. Laurenty and Shoptime limit per test1 secondmemory limit per test256 megabytesinputstandard input ...

  10. .net core 在服务器端获取api传递的参数

    在 ActionFilterAttribute 的OnActionExecutionAsync 中使用如下代码从流中读取用户参数 //从文件流中读取传递测参数 using (var ms = new ...