Java API 基础

news2024/12/23 13:15:14

Java API 基础

一、相关知识学习

  Java程序员在开发Java程序时,只需要安装有JDK,就可以在程序中使用import关键字导入Java API 中指定的包并在自己的程序中使用这些包中定义的各种类和接口。

1、 Java API 包

Java API 包

说明

java.accessibility

接口组件和助手技术的类和接口

java.applet

Java Applet所需的类和接口

java.awt

图形用户界面所需的类和接口

java.beans

Java bean技术所需的类和接口

java.io

系统输入/输出所需的类和接口

java.lang

java语言编程的基础类和接口

java.math

支持任意精度整数和任意精度小数的类和接口

java.naming

访问命名服务器的类和接口

java.net

网络应用的类和接口

java.rmi

远程调用(RMI)的类和接口

java.security

用于安全框架的类和接口

java.sql

访问和处理数据源中数据的类和接口

java.text

支持按与语言无关方式处理文本、数据、数字和消息的类和接口

java.util

集合框架、事件模型、日期和时间机制、国际化等的类和接口

javax.serverlet

Java.serverlet所需的类和接口

javax.sound

支持音频设备数字接口(MIDI)的类和接口

javax.swing

扩充和增强基本图形用户界面功能的类和接口

2、 java.lang包

   java.lang包中包含了Java程序设计语言最基础的类。由于java.lang包是Java程序设计时用得最频繁的包,所以Java默认对每个Java源程序都自动导入了java.lang包,程序员不必再明确地手工导入。

Object类:    Object类是整个Java类层次的根类,Java中所有其他类都是从Object类直接或间接继承(派生)而来的。    Object类中只定义了一些方法,没有定义属性。    Object类实现了对象运行时的相关方法、垃圾回收方法、线程同步方法。 Object类的常用方法例1:

equals()方法:
public boolean equals(Object obj)
用途:比较两对象是否相等。
输入参数:obj-比较的参考对象。
返回值:如果该对象的值与obj参数相同则为true;否则为false

Object类的常用方法例2:

toString()方法:
public String toString()
用途:一般返回一个用文本表示这个对象的字符串。给出的结果是简短明了的表示,这样便于人们读取。
输入参数:无
返回值:表示此对象的字符串。

System类:    System 类提供了标准输入流、标准输出流和错误输出流,以及加载程序文件和库等实用方法。    System类中定义了三个静态常量属性。由于是static型,所以不用实例化对象就可以通过类名进行引用。

变量索引

public static final PrintStream err

“标准”错误输出流

public static final InputStream in

“标准”输入流

public static final PrintStream out

“标准”输出流

System类静态属性例:

public static final InputStream in
说明:java“标准”输入流。该流已打开并且准备接受输入数据。典型情况是该流同键盘输入源相联系。

System类常用方法例:

currentTimeMillis()方法
public static native long currentTimeMillis()
用途:返回以毫秒为单位的当前时间。
输入参数:无
返回值:以毫秒测量的在当前时间和UTC时间1970年1月1号午夜之间的时间长度。返回的是一个long型值。

Class类:   基本的Java类型(boolean,byte,char,short,int,long,float和double)和void类型都是由Class类对象来表达的。 Class类常用方法例:

forName()方法
public static native Class forName(String className)
用途:返回给定的字符串名对应的Class对象。此方法可用于装载驱动程序。
输入参数:className-期望类的全路径名。
返回值:指定名的Class描述器

String类:   String 类表示字符串。 在 Java 程序中所有的字符串常量,如 “abc” ,都被实现为这个类的实例。 String类常用方法例1:

public String(byte bytes[],String enc) throws UnsupportedEncodingException
用途:用指定的字符编码方式转换指定的字节数组实例化一个String类对象(如果编码方式不存在则会抛出异常)
输入参数:bytes-要转换为字符的字节
        enc-一个字符-编码方式名

String类常用方法例2:

length()方法
public int length()
用途:计算该字符串的长度,长度等于字符串中的16-bit的Unicode字符的数量
输入参数:无
返回值:该对象代表的字符序列的长度,整型值。

String类常用方法例3:

equalsIgnoreCase()方法
public boolean equalsIgnoreCase(String anotherString)
用途:忽略大小写比较该字符串和另一个字符串对象。
输入参数:anotherString-要比较的另外一个字符串
返回值:忽略大小写时,如果两字符串相等,则为true,否则为false

String类常用方法例4:

trim()方法
public String trim()
用途:删除该字符串两端的空格,所有小于等于‘\u0020’(十六进制Unicode编码的空格字符)的字符都被认为是空格。
返回值:头尾两端的空格都被删掉的字符串。

Math类: Math类定义了两个属性来描述数学上常用的无限不循环小数e和π,它们都被定义为静态常量,可以无需实例化对象就直接通过Math类名来引用。

变量索引

public static final double E

该double值非常接近e,自然对数的底数

public static final double PI

该double值非常接近pi,圆的周长与直径之比

Math类常用方法例1:

random()方法
public static synchronized double random()
用途:返回0.0到1.0间均匀分布的伪随机数
输入参数:无
返回值:返回0.0到1.0间的伪随机数

Math类常用方法例2:

round()方法
public static long round(double a)
用途:作四舍五入计算
输入参数:a-一个double型值
返回值:返回与该参数最接近的long型数
    如果参数a为负无穷值,则结果等于Long.MIN_VALUE
    如果参数a为正无穷值,则结果等于Long.MAX_VALUE

3、java.util包

  java.util包主要包含了集合框架、事件模型、日期和时间机制、国际化等类和接口。

Arrays类:   Arrays类提供了一些关于数组操作的常用方法,例如数组排序、查找指定元素是否存在等。 Arrays类常用方法例1:

fill()方法
public static void fill(int[] a,int val)
用途:对指定int型数组中所有元素赋予指定int值
输入参数:a-要被赋值的数组,val-所赋的值
返回值:无

Arrays类常用方法例2:

sort()方法
public static void sort(int[] a)
用途:对数组a的所有元素按元素值的大小升序重新排列整个数组
输入参数:a-要被排序的数组
返回值:无

Arrays类常用方法例3:

binarySearch()方法
public static int binarySearch(int[] a,int key)
用途:用折半法搜索key在数组a中的元素位置
输入参数:a-要被搜索的数组,val-要搜索的关键值
返回值:如key在a中存在,返回元素下标。如key在a中不存在,返回-1。
一般在使用binarySearch()方法之前,先使用sort()方法

Date类: Date类描述了一个精度为毫秒的特定时间实例。

Calendar类:   Calendar类是Object类的直接子类,并且Calendar类是一个抽象类,因此不能使用new运算符实例化一个Calendar类对象。用于在一个Date对象和一个诸如YEAR、MONTH、DAY、HOUR等整数字段集合之间转换。

Vector类:   Vector类又称为向量类,它实现了可动态扩充的对象数组。在这种动态的对象数组中,数组元素数量可以动态变化,所使用的内存空间也随之变化。 Vector类常用方法例1:

add()方法
public boolean add(Object o)
用途:向Vector类对象中添加一个Object类对象
输入参数:o-要被添加的对象
返回值:如果添加成功,则返回true,否则返回false

Vector类常用方法例2:

remove()方法
public Object remove(int index)
用途:向Vector类对象中读取并删除一个Object类对象
输入参数:index-要被读取并删除的元素下标
返回值:返回向量中指定下标的对象,并且从向量中删除这个元素。删除完成后向量的元素个数减一,相应的存储空间被释放

Vector类常用方法例3:

elementAt()方法
public Object elementAt(int index)
用途:向Vector类对象中读取一个Object类对象
输入参数:index-要被读取的元素下标
返回值:返回向量中指定下标的对象,这个操作不会从向量中删除这个元素。也不会修改向量中的元素个数或元素中的内容。

二、训练

1、完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。

java程序(test1.java)

import java.util.Scanner;
public class test1
{
	public static void main(String[] args) 
	{
		while (true) {
		Scanner s=new Scanner(System.in);//声明对象Scanner,System.in代表标准输入,就是键盘输入
		System.out.println("Please input :");//输入提示
		String line=s.nextLine();//读取输入的字符放入line中
		if (line.equals("exit")) break; //如果输入的内容是exit就会停止运行了
		System.out.println("Number of text input:"+line.length());//使用length计算输入的文本的个数
		}
	}
}

运行效果图

2、完成一个 java application应用程序,计算执行十亿次空循环所需要的时间。

java程序(test2.java)

public class test2 
{
	public static void main(String args[])
	  {
		long startTime=System.currentTimeMillis();//获取开始的时间
		//计算循环1000000000的时间
		for(int i=0;i<1000000000;i++) {}
		long endTime=System.currentTimeMillis();//获取结束的时间
		long time=endTime-startTime;//用结束的时间减去开始的时间就为循环1000000000的时间
		System.out.println("time:"+time+"ms");
	  }
}

运行效果图

3、完成一个 java application应用程序,输出当前世间:年月日小时分秒星期几。

java程序(test3.java)

import java.util.*;  //导入java.util包
public class test3  //定义公共类
{
  public static void main(String args[])
  {
     //用Date类获取本地计算机当前时间
     Date mydate=new Date();
     System.out.println("Date:       "+mydate);
     
     //用Calendar类获取本地计算机当前时间
     Calendar now=Calendar.getInstance();  //获取本地日历
     int year=now.get(Calendar.YEAR);      //从日历中获取当前年
     int month=now.get(Calendar.MONTH)+1;  //从日历中获取当前月
     int day=now.get(Calendar.DATE);       //从日历中获取当前日
     System.out.print("Calendar:   "+year+"年"+month+"月"+day+"日 ");
     
     int hour=now.get(Calendar.HOUR_OF_DAY); //从日历中获取当小时(24小时制)
     int minute=now.get(Calendar.MINUTE);  //从日历中获取当前分
     int second=now.get(Calendar.SECOND);    //从日历中获取当前秒
     System.out.print(hour+"时"+minute+"分"+second+"秒 ");
     
     //从日历中获取当前是一个星期中的哪天
     //在中国,一周的第一天是周日
     int i=now.get(Calendar.DAY_OF_WEEK);
     String str="日一二三四五六";
     
     System.out.println("星期"+str.substring(i-1,i));
  }
}

运行效果图

4、完成一个java application应用程序,通过接收用户通过键盘输入的文本,把每次回车输入的字符串动态加入到Vector类对象中,并显示此Vector类对象中存储的字符串。

java程序(test4.java)

import java.util.Scanner;
import java.util.*;  //导入java.util包

public class test4 {	
	public static void main(String[] args) 
	{
		Vector<String> a=new Vector<String>();
		while (true) {
		Scanner s=new Scanner(System.in);//声明对象Scanner,System.in代表标准输入,就是键盘输入		
		System.out.println("Please input :");//输入提示
		String line=s.nextLine();//读取输入的字符放入line中
		a.add(line);  //把字符line加入到向量a中
		if (line.equals("exit")) break; //如果输入的内容是exit就会停止运行了		
		}
		System.out.println("a="+a);	//输出a的值	
	}
}

运行效果图

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

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

相关文章

微信小程序-页面跳转navigator组件

官方文档地址&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html 在官方文档当中有提到一个叫做页面栈的这么一个东西&#xff0c;就是一个水杯&#xff0c;进入一个页面就是入到页面栈&#xff0c;退出就是从页面栈当中移除&…

WebTerminal功能实现与代码演示(基于Golang和Xterm.js)

文章目录 目的方案说说明实现过程与代码演示前端页面&#xff08;Xterm.js&#xff09;后端服务&#xff08;Golang&#xff09; 编译与测试总结 目的 WebTerminal是一个比较有意思的功能&#xff0c;让我们可以脱离专门的软件&#xff0c;在浏览器中就可以与Linux设备进行交互…

【运维知识进阶篇】集群架构-Rewrite重定向

Rewrite主要实现url地址重写&#xff0c;以及重定向&#xff0c;就是把传入web的请求重定向到其他url的过程。 分以下几种场景使用 1、地址跳转&#xff0c;用户访问一个URL&#xff0c;将其定向到另一个URL 2、协议跳转&#xff0c;用户通过http协议请求网站时&#xff0c;…

程序员不得不消化的基本概念:线程与协程,并行与并发

这是程序员的基本常识&#xff0c;这都搞不清楚&#xff0c;就不配为码农&#xff0c;就不配混CSDN。为人君者&#xff0c;招聘时可以以此为入门问题。 名词解释 在中文里&#xff0c;并发与并行很难望文生义&#xff0c;从字面上很难了解确切含义&#xff0c;貌似区别不大&am…

单机Redis、Redis持久化、Redis主从模式、Redis哨兵模式、Redis分片集群

一、单机Redis 数据库分类&#xff1a; 到目前为止&#xff0c;所有数据库分为两大类&#xff1a; RDBMS&#xff1a;关系型数据库&#xff0c;即传统数据库。 像MySQL、SQLServer、DB2、Sybase、SQLite、Oracle等等 以表的形式存储数据&#xff0c;表与表之间要维护数据的关系…

为什么投稿 SCI 被审稿人通过,又被编辑拒收?

有些作者在投稿过程中会遇到各种坑&#xff0c;不过有一种坑却最让作者痛心疾首&#xff0c;不知道大家有没有遇到过这样的状况&#xff1a; 审稿人建议接收&#xff0c;编辑却拒稿了&#xff1b; 或者审稿人建议拒稿&#xff0c;编辑却让自己改改再投&#xff1f; 有国外学者…

微服务: Seata AT springCloud整合分布式事务以配置方式(中篇)

目录 上篇: 安装seata 并启动成功的传送门 1. 前言: 2. springCloud 使用seata at 的步骤如下 第一步 查看springCloud版本 第二步添加maven依赖 第三步 添加yml配置 第四步: 配置数据源(druid) 第五步 修复一个警告 第六步: 启动后 看看日志是否成功 上篇: 安装seat…

边缘计算盒子功能介绍,为什么要用边缘计算盒子?

边缘计算盒子&#xff08;Edge Computing Box&#xff09;是一种用于边缘计算设备。边缘计算是一种分布式计算模型&#xff0c;它将计算和数据处理能力从传统的集中式云计算数据中心延伸到网络边缘的设备上&#xff0c;以便更快地响应实时数据处理需求和减少对云服务的依赖。 边…

HardenedVault 推出 Linux 安全加固版

导读HardenedVault 于 AWS 云平台上推出 Linux 安全加固版&#xff0c;该产品可以通过实施CIS和STIG基准来帮助您实现合规要求&#xff08;PCI-DSS和GDPR&#xff09;。 Shawn the R0ck 写道&#xff1a;HardenedVault自从 2022 年 7 月在 Amazon Web Services (AWS)推出了 Har…

Vscode运行Html的插件以及快速编写Html框架

然后我们点击创建文件&#xff0c;记住要以.html结尾 输入英文感叹号回车就行&#xff08;记住要英文&#xff09; 好了&#xff0c;希望小伙伴能快速入手VsCode&#xff0c;很好用的一款开源免费软件

基于Android的校园外卖系统app

一、项目介绍 Android客户端功能描述&#xff1a; 1&#xff1a;登录注册&#xff1a;用户可以通过自己的信息进行账号的注册 2&#xff1a;商家查看&#xff1a;查看发布的外卖商家信息 3&#xff1a;商家详情&#xff1a;用户点击某一个商家之后可以查看商家的地址和联系方…

AI人工智能在Python中构建回归器的原理、优缺点、应用场景和实现方法

回归器&#xff08;Regressor&#xff09;是一种常用的机器学习算法&#xff0c;可以用于预测数值型变量的值。在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;回归器是一种高效的算法&#xff0c;可以用于许多应用领域&#…

6.4.4最短路径问题-Floyd算法

原来在邻接矩阵种v2使无法到达v1的 但如果我们把v0作为中转站 不断增加中转点&#xff08;1个中转点&#xff09; 这里的path的值是中转点 v1到v2之间是没有中转点的。 这只是以一个中转点&#xff0c;more 路走得越多&#xff0c;会越来越小 广度优先遍历算法是遍历顶点和边…

(二)ArcGIS空间数据的转换与处理——矢量数据变换

ArcGIS空间数据的转换与处理——矢量数据变换 目录 ArcGIS空间数据的转换与处理——矢量数据变换 1.空间校正2.边匹配 数据变换是指对数据进行诸如放大、缩小、翻转、移动、扭曲等几何位置、形状和方位的改变等操作。对 矢量数据的相应操作可以通过 ArcMap 中空间较正 (Spatia…

录制屏幕怎么设置?怎么录制高画质的视频?

在今天的数字时代&#xff0c;屏幕录制已经成为了日常工作中不可或缺的一部分。许多人需要在电脑上录制屏幕来制作教程视频、演示文稿或者是游戏录像。本文将介绍如何在电脑上录制屏幕并获得高画质的视频。 屏幕录制软件的选择 要在电脑上录制高画质的视频&#xff0c;首先需要…

【1】机器学习

目录 1 机器学习概述 1.1 定义 1.2 基本方法 1.3 基本概念 1.4 有监督学习 1.5 无监督学习 1.6 过度拟合问题 模型过于复杂(例如参数过多) 正则化 1.7 模型选择 交叉验证 K折交叉验证 2 机器学习常用工具 3 Scikit-learn 3.1 基本流程 3.2 Scikit-learn常用函数 3.…

csdn Markdown编辑器

文章目录 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是…

云视如何实现流量转化

云视如何实现流量转化 大家好我是小鱼 小伙伴很好奇 云视除了直播带货 打赏&#xff0c;广告 还有哪些方式 可以实现流量转化 今天我和大家分享一下这个话题 接下来我们要讲讲 我们要用的工具 优惠券 适用于刺激消费回流&#xff0c;构建闭环消费圈。 课程赠送 趣味推广营销&am…

平台使用篇 | 批处理(bat)脚本使用教程(三)

导读 本讲针对RflySim平台的一些特点简要介绍了平台使用批处理技术的原因&#xff0c;并根据CopterSim中仿真功能区的参数设置阐述了批处理技术在平台中的具体运用。 平台使用篇 | 批处理(bat)脚本使用教程(三&#xff09; RflySim平台使用批处理技术的原因 ①调用多个软件Rf…

吲哚菁绿ICG-Amine/NH2荧光标记和成像1686147-55-6

ICG-Amine是一种荧光染料&#xff0c;ICG-Amine具有良好的荧光性能&#xff0c;可用于生物医学研究中的荧光标记和成像。ICG-Amine的物理性质如下&#xff1a;化学式&#xff1a;C47H56N4O4S&#xff0c;分子量为773.04&#xff0c;外观&#xff1a;深绿色粉末溶解性&#xff1…