0

0

Java API的详细介绍(附例子)

不言

不言

发布时间:2018-09-26 15:35:52

|

11064人浏览过

|

来源于php中文网

原创

本篇文章给大家带来的内容是关于java api的详细介绍(附例子),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

简介 :  

所谓API就是一些已写好、 可供直接调用的类库。Java 具有强大功能的API, 并且还在继续发展中。 

 首先在网上获取Java 帮助文档  , 然后解压 ,找到相应的API 。

 Java 常用包介绍 :

立即学习Java免费学习笔记(深入)”;

  •  java.lang  提供利用java编程语言进行程序设计的基础类。

  • java  until  包含集合框架,遗留的collection类,事件模型,日期和时间设施,国际化和各种实用工具类。

  • java io 通过数据流,序列化和文件系统提供系统输入和输出。

  • java applet 提供创建applet 所必须的的类和applet 用来和其他applet 上下文通信的类、

  • java awt 包含用于创建用户界面和绘制图形图像的所有的类。

  • java beans  包含与开发beans 有关的类,即 基于javaBeans 架构的组件。

  • java math 提供用于执行任意精度整数算法(BigInteger)和任意精度小数算法(BigDecimal)的类。

  • java net 为实现网络应用程序提供的类。

  • java sql  提供使用java 编程语言访问并处理存储在数据源(通常指关系型数据库)中的数据API。

String 类:

String 类的初始化操作:  java 提供两种初始化String类的方式, 

  1   利用字符串常量直接初始化一个String对象,比如  String  name = "张三" ; 

  2   采用String的构造方法初始化字符串对象, 比如 

方法  含义
String () 创建一个内容为空的字符串
Stirng (String value) 根据指定的字符串内容创建对象
String (char[] value) 根据指定的字符数组创建对象

举个栗子: 

public static void main(String[] args){
    String s1 =new String();//创建空字符串
    String s2 = new String("张三")//创建一个内容为张三的字符串
    char[] charArray = new char[]{'A','B','C'};
    String s3 = new String(charArray);
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s3);

}

 Sring类的常用方法:

字符串基本操作:

public static void main(String[] args) {
String s ="abcdefhckoj";//声明字符串
System.out.println("字符串的长度为:"+s.length());//获取字符串长度, 即字符个数
System.out.println("字符串第一个字符:"+s.charAt(0));
System.out.println("字符c第一次出现的位置:"+s.indexOf('c'));
System.out.println("字符c最后一次出现的位置:"+s.lastIndexOf('c'));
}

 

字符串与数组的转换:

public class Demo{
    public static void main(String[] args){
    String s = "abcdesgs";//声明一个字符串
    System.out.println("将此字符串装换为数组");
    char [] charArray = s.toCharArray();//字符串转换为字符数组。
    System.out.println("[);
    for(int i=0;i,charArray.length;i++){
          if(i !=charArray.length-1);
         Syetem.out.println(charArray[i]+",");
             //判断是否是数组最后一个元素,如果不是则在后面添逗号码
    }else{
        //否则 数组最后一个元素不加逗号。
 
       Syetem.out.println(charArray[i]+"]");
}
}
        Syetem.out.println("将Int 类型转换为String 类型:" +String.valueOf(20));
}
}

字符串判断操作:

Cardify卡片工坊
Cardify卡片工坊

使用Markdown一键生成精美的小红书知识卡片

下载

public static void main(String[] args) {
String str1 = "abcdsg";//声明一个字符串
String str2 = "adc";
System.out.println("判断是否以字符串abc开头:"+str1.startsWith("abc"));
System.out.println("判断是否以字符串sg结尾:"+str1.endsWith("sg"));
System.out.println("判断是否包含字符串ds:"+str2.contains("ds"));
System.out.println("判断是否为空:"+str1.isEmpty());
System.out.println("判断两个字符串是否相等"+str1.equals(str2));

字符串的截取和分割
String类对字符串的截取与分割提供了两个方法, 其中, substring()方法用于截取字符串的一部分, split()方法可以将字符串按照某个字符进行分割。

package com.project.demo;

public class Test {
         public static void main(String[] args) {
            String string = "张三-李四-王五"; 
            //截取字符串
            System.out.println("从第4个字符截取到最后:"+string.substring(3));
            System.out.println("从第3个字符截取到第6:"+string.substring(2,6));
            // 字符串分割
            System.out.println("分割后的字符串数组元素依次是: ");
            String[] stringArray =string.split("-");//通过- 字符为标志,将其分割为字符串数组
            for(int i =0;i<stringArray.length;i++) {
                if(i != stringArray.length-1 ) {
                    System.out.println(stringArray[i]+",");
                    
                }else {
                    System.out.println(stringArray[i]);
                    System.out.println(string.length());
                }
                
            }
            
        }
}

 去空格和替换操作:

package com.project.demo;
public class Test {
         public static void main(String[] args) {
             String string = "    hello     word   ";
             //字符串替换操作
             System.out.println("将word 替换成java :"+string.replace("word", "java"));
             //字符串去空操作
             System.out.println("去除字符串两端的空格:"+ string.trim());
             System.out.println("去除字符串中所有空格: "+string.replace(" ", ""));
             System.out.println("将小写转换为大写 : " + string.toUpperCase());
         }
}

 有一点需要注意,String 在取某个字符的时候,会用到字符的索引(数组下标索引),当访问字符串中的字符的时候,如果字符的索引不存在,则会发生StringIndexOutOfBoundsException(字符串下标越界异常)

StringBuffer:

为了方便字符串的修改,JDK提供了一个StringBuffer类(也称字符缓冲区)StringBuffer类和String 类最大的区别就是他的长度和内容都是可变的, StringBuffer类似于一个字符串容器,当在其中添加或者删除字符时,并不会产生新的StringBuffer对象。

让我们来看看API 中StringBuffer的常用方法:

面试的时候我们常常会被问到 String,StringBuffer与StringBuilder的区别??

简要的说,String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

如果是使用 StringBuffer 类 每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,而特别是以下的字符串对象生成中, String 效率是远要比 StringBuffer 快的:

 String S1 = “This is only a” + “ simple” + “ test”;

StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);  你会很惊讶的发现,生成 String S1 对象的速度简直太快,而这个时候 StringBuffer 居然速度上根本一点都不占优势。其实这是 JVM 的一个把戏,在 JVM 眼里,这个  String S1 = “This is only a” + “ simple” + “test”; 其实就是:  String S1 = “This is only a simple test”; 所以当然不需要太多的时间了。

但这里要注意的是,如果你的字符串是来自另外的 String 对象的话,速度就没那么快了,譬如:

String S2 = “This is only a”; String S3 = “ simple”;
String S4 = “ test”;
String S1 = S2 +S3 + S4;

这时候 JVM 会规规矩矩的按照原来的方式去做 在大部分情况下 StringBuffer > String StringBuffer Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。 StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”,而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”。

在大部分情况下 StringBuilder > StringBuffer java.lang.StringBuilde java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

基本数据类型包装类:

何为包装类?

java.lang包中有各种原生类相对应的类, 称作数值包装类。 这些类的名称, 大部分均以各原生类类型第一个字母换成大写的方式来命。简单的说就是将数据装换为对象,来应用更多的方法。 

boolean Boolean
byte Byte
short Short
int Integer
long Long
char Chracter
float Float
double Double

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型, 反之, 拆箱是指将引用数据类型的对象转为基本数据类型。 

举个栗子:

方式一: 通过new关键字
Integer in = new Integer(5);
方式二: 直接赋值
Integer in = 5;

 构造函数可将原生数据类型数值或代表数值的字符串转换成一数值包装对象。

如: 在Double类中的构造函数
Double(double value)
Double(String s)
例:

Double tax=Double(8332349823.234);

 在数值包装类中所定义的方法, 最常用到的就是一些用来做字符串与数值间转换的方法。比如:

static float parseFloat(String s)
static Float valueof(String s)
static String toString(float f)
在使用包装类的时候我们需要注意一些问题.

1、 包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值;
2、 除了Character外, 包装类都有parseXXX(String s)的静态方法,将字符串转换为对应的基本类型的数据。 参数s不能为null, 而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错;
3、 除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象, 但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据,否则虽然编译通过, 但运行时也会报错

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4.4万人学习

C# 教程
C# 教程

共94课时 | 11.4万人学习

Java 教程
Java 教程

共578课时 | 82.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号