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的值
}
}
运行效果图