Java API 基础

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的值	
	}
}

运行效果图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【服务器】支付宝SDK接口调试

​ 文章目录 1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道 4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名 6. 使用固定二级子域名进行访问 转发自cpolar内网穿透的文章&#xff1a;Java支付宝沙箱环境支付&#…

物联网通信协议-MQTT及使用python实现

MQTT概念及其原理 简述 MQTT(Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布/订阅&#xff08;publish/subscribe)模式的"轻量 级"通讯协议&#xff0c;该协议构建于TCP/IP协议上&#xff0c;由IBM在…

御剑WEB指纹识别系统教程,图文教程(超详细)

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 御剑WEB指纹识别 一、基本使用二、内置字典三、自定义字典四、扫描原理 御剑WEB指纹识别系…

基于DDSRF正负序分离方法的不平衡电网PQ控制策略_平衡电流控制

0.前言 对于并网逆变器而言&#xff0c;电网会存在不平衡的情况。在这种情况下&#xff0c;不平衡的电网电压可以分解成为正序、负序和零序分量。并网逆变器通常期望能够实现单位功率因数并网&#xff0c;向电网注入对称的正弦电流&#xff0c;所以此时的微电网逆变器控制策略显…

rollup打包react组件

这次主要简单实现用rollup打包react组件&#xff0c;组件的话简单写了一个弹窗组件&#xff0c;效果如下&#xff1a; 点击打开弹框&#xff0c;点击关闭按钮关闭弹框 首先创建react项目&#xff0c;这边还是用mfex-project脚手架创建 mfex-project create react-demo 然后编…

财务共享领先实践,看看他们是怎么做的

随着信息技术的快速发展&#xff0c;由于创新商业模式的出现&#xff0c;金融结构、操作策略和流程正在发生变化。大数据、云计算、人工智能、机器人流程自动化&#xff08;RPA&#xff09;等新兴技术正在应用于金融及财务领域&#xff0c;以优化财务管理流程并提高运营效率。财…

信号完整性分析基础知识之传输线和反射(七):带负载传输线、感性不连续引起的反射

带负载传输线 如果在传输线上有一个小的容性负载&#xff0c;信号会出现失真&#xff0c;上升时间也会降低。每个分立电容都会降低信号在其附近看到的阻抗。如果传输线上分布有多个容性负载&#xff08;例如一个总线上每隔1.2inch有一个2pF的连接器残桩&#xff0c;或者一个内…

学习【菜鸟教程】【C++ 类 对象】【C++ 类的静态成员】

链接 1. 教程 可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时&#xff0c;这意味着无论创建多少个类的对象&#xff0c;静态成员都只有一个副本。 静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句&#xff0c;在创建第一个对象时…

windows环境下安装RabbitMQ(超详细),

windows环境下安装RabbitMQ&#xff08;超详细&#xff09; 注&#xff1a;安装路径&#xff0c;用户名均为英文 一、RabbitMq简介 1.1消息队列中间件简介 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题…

Python中模块的使用3

在运行Python程序时&#xff0c;总会用到Python的标准库模块。一些标准库模块被内嵌到Python解释器中&#xff0c;通过调用这些模块提供的函数&#xff0c;可以实现特殊的功能。sys模块就是Python的一个标准库模块&#xff0c;该模块被被内嵌到Python解释器中。 1 sys模块的导…

SpringCloud 性能优化

文章目录 Springcloud的性能问题应用服务组件调优Servlet 容器 优化Feign 配置优化 Gateway组件调优Zuul配置 优化hystrix配置 优化ribbon 优化 Springcloud的性能问题 Springcloud 原始的配置&#xff0c;性能是很低的&#xff0c;大家可以使用Jmeter测试一下&#xff0c;QPS…

深度学习编译器

1.为什么需要深度学习编译器 深度学习编译器主要为解决不同框架下训练的模型部署到指定的某些设备上时所遇到的一系列复杂的问题&#xff0c;即将各种深度学习训练框架的模型部署到各种硬件所面临的问题&#xff1b; 首先深度学习领域&#xff0c;从训练框架看&#xff0c;当前…

考研C语言第四章

4.1 关系表达式与逻辑表达式 ps&#xff1a; 算术运算符&#xff1a;加减乘除等 关系运算符&#xff1a;比大小的 逻辑与逻辑或 非&#xff01;的运算级别&#xff08;应该&#xff09;最高 4.2 if-else #include <stdio.h> //上课这个写while的原因是方便一次一次…

springWEB搭建

概述 SpringWEB就是spring框架里得一个模块* SpringWeb的前身是SpringMVC springMVC介绍 在之前的后端三大架构: Controller: 控制层, 包含了servlet, 对数据的接收, 处理, 响应 Model: 数据模型, dao, model VIew: 视图, jsp, 用于将数据添加到html中进行响应 工作流程: 主要…

Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

引用官方文档上的简介&#xff1a; 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码&#xff0c;包括Entity,Mapper,Mapper.xml,Service,Controller等 &#xff0c;可以自定义模板以及各类输出参数&#xff0c;也可通过SQL查询语句直接生成代码。 文档 githu…

安卓基础巩固(四):设计原则、安卓主流技术框架MVC/MVP/MVVM、设计模式

文章目录 架构设计为什么要进行技术框架的设计 六大设计原则一、单一职责原则二、开闭原则三、依赖倒置原则四、接口分离原则五、迪米特法则&#xff08;又称最小知道原则&#xff09;六、里氏替换原则案例诠释 安卓主流开发技术框架MVC模式MVP模式MVVMMVP模式详解 设计模式构造…

27 VueComponent 计算属性的实现

前言 这是最近的碰到的那个 和响应式相关的问题 特定的操作之后响应式对象不“响应“了 引起的一系列的文章 主要记录的是 vue 的相关实现机制 呵呵 理解本文需要 vue 的使用基础, js 的使用基础 测试用例 用例如下, 我们这里核心关注 counterPlus100 这个计算变量 问…

java 社区人口管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 社区人口管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0…

白银实时价格应该在最适合的地方下注

小时候我们看战争片&#xff0c;总是发现主角们带兵打仗&#xff0c;战无不胜&#xff0c;偶尔有一场大的失利&#xff0c;但是总是能耐化险为夷&#xff0c;逢凶化吉&#xff0c;甚至最后成功反扑、反败为胜。后来小编一琢磨&#xff0c;发现&#xff0c;其实这些将才们打仗&a…

在 Visual Studio 2022 中使用 GitHub Copilot chat

本文通过实际应用场景和示例代码展示了 GitHub Copilot Chat 在 Visual Studio 2022 中的优势和特点。最后&#xff0c;鼓励读者在实际工作中尝试使用 Copilot Chat&#xff0c;以提升开发效率和代码质量。希望这些信息和经验能为你在使用GitHub Copilot时提供帮助和启发。 1. …