Java 类库概念: Java 的应用程序编程接口 (API  (Application Programming Interface) )以包的形式来组织,每个包提供了大量的相关类、接口和异常处理类,这些包的集合就是 Java 的类库

例如我编写了一个类,可以获取计算机的各种硬件信息,它很强大很稳定,如果你的项目也需要这样一个功能,那么你就无需再自己编写代码,将我的类拿来直接用就可以。但是,我的类代码很复杂,让你读完这些代码不太现实,而且我也不希望你看到我的代码(你也没必要也不希望读懂这些晦涩的代码),我要保护我的版权,怎么办呢?

我可以先将我的类编译,并附带一个文档,告诉你我的类怎么使用,有哪些方法和属性,你只需要按照文档的说明来调用就完全没问题,既节省了你阅读代码的时间,也保护了我的版权。

例如,获取CPU信息的方法:getCpuInfo(int cpuType);这就是一个API。也就是说,该文档中描述的类的使用方法,就叫做API。

我也可以开发一个软件,用来清理计算机中的垃圾文件,我比较有公益心,希望让更多的开发人员使用我的软件,我就会在发布软件的同时附带一个说明文档,告诉你怎样在自己的程序中调用,这也叫做API。

看API方式

  1. 先看包名
  2. 再看类(j继承关系,类声明)
  3. 看类中方法(方法名,参数,返回类型,修饰符)

目录结构

Java类库中有很多包:

·以 java.* 开头的是Java的核心包,所有程序都会使用这些包中的类;

·以javax.* 开头的是扩展包,x 是 extension 的意思,也就是扩展。虽然 javax.* 是对java.* 的优化和扩展,但是由于 javax.* 使用的越来越多,很多程序都依赖于 javax.*,所以 javax.* 也是核心的一部分了,也随JDK 一起发布。

·以 org.* 开头的是各个机构或组织发布的包,因为这些组织很有影响力,它们的代码质量很高,所以也将它们开发的部分常用的类随JDK一起发布。

在包的命名方面,为了防止重名,有一个惯例:大家都以自己域名的倒写形式作为开头来为自己开发的包命名,例如百度发布的包会以com.baidu.* 开头,w3c组织发布的包会以org.w3c.* 开头,微学苑发布的包会以 net.weixueyuan.* 开头……

组织机构的域名后缀一般为org,公司的域名后缀一般为 com,可以认为org.* 开头的包为非盈利组织机构发布的包,它们一般是开源的,可以免费使用在自己的产品中,不用考虑侵权问题,而以com.* 开头的包往往由盈利性的公司发布,可能会有版权问题,使用时要注意。

java中常用的几个包介绍:

包名 说明
java.lang 该包提供了Java编程的基础类,例如Object、Math、String、StringBuffer、System、Thread等,不使用该包就很难编写Java代码了。
 java.applet Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程序。
java.util 该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
java.io 该包通过文件系统、数据流和序列化提供系统的输入与输出。
java.net 该包提供实现网络应用与开发的类。
java.sql 该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。
java.awt 这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。 
javax.swing
java.text 提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。

其他还有

10.   java.beans     开发 Java Beans 需要的所有类

11.   java.math      简明的整数算术以及十进制算术的基本函数

12.   java.rmi       与远程方法调用相关的所有类

13.   java.security    设计网络安全方案需要的一些类

常用的 Java 扩展包 (Java Extension Package)

1.  javax.accessibility  定义了用户界面组件之间相互访问的一种机制

2.  javax.naming.*     为命名服务提供了一系列类和接口

3.  javax.swing.*       提供了一系列轻量级的用户界面组件,是目前 Java 用户界面常用的包

注 1:在使用 Java 时,除了 java.lang 外,其他的包都需要 import 语句引入之后才能使用。

重点讲解内容:java.lang和java.util。

java.lang 包

这个包称为 java 语言包,是由编译器自动引入的。程序中不必用 import 语句就可以使用。它所包含的类和接口对所有实际的 Java 程序都是必要的。

1.       object 类

2.       数学类 (Math)

3.       数据类型类

4.       线程类

5.       字符串类 (String 类和 StringBuffer 类 )

6.       系统及运行类 (System 类和 Runtime 类 )

7.       错误和异常处理类 (Throwable 、 Exception 、 Error)

8.       过程类 (process)

java.util 包

1. 日期类、日历类( Data 、 Calendar 、 GregorianCalendar )

2. 随机数类( Random )

3. 位运算类( BitSet )

4. 矢量类( Vector )

5. 数据结构类( Stack )

6. 散列表类( Hashtable )

7. StringTokenizer类

下面简单说明一下java.lang包下的Object类和Math类。

Object类:

Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

下面说明Object类的几种常用方法:

示例1:

toString

  public String toString()

返回:
该对象的字符串表示形式。

equals

public boolean equals(Object obj)

返回:

指示其他某个对象是否与此对象“相等”(内容)。
package com.company;

public class test {
/**
* 类库练习
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1,str2,str3,str4;
str1 = new String("ABC");
str2 = new String("ABC");
str3 = "ABC";
str4 = "ABC";
System.out.println(str1.toString());//用于返回该对象的信息
System.out.println(str1.equals(str2));
//判断内容是不是相等
System.out.println(str1.equals(str3));
System.out.println("+++++++++++++++++");
System.out.println(str1==str2);
//判断是不是相同
System.out.println(str1==str3);
System.out.println(str4==str3); } }

运行结果

ABC
true
true
+++++++++++++++++
false
false
true

Math类:

Math类中包含多种对数字数据处理的工具方法。

1.sqrt

public static double sqrt(double a)

返回正确舍入的 double 值的正平方根。

2.cbrt

public static double cbrt(double a)

返回 double 值的立方根。

3.pow

public static double pow(double a,double b)

返回第一个参数的第二个参数次幂的值。

4.round

public static long round(double a)

返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值:

(long)Math.floor(a + 0.5d)

示例2:

package com.company;

public class test01 {

        /**
* 类库练习
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//有一三角形土地,有两边本别长为400,500米,夹角70度,求土地面积。
//利用公式S=1/2*a*b*sinAB
double a = 400,b = 500;
double c=Math.PI*70/180; //用弧度制表示
System.out.println(a*b*(Math.sin(c))/2);
System.out.println("+++++++++++++++++");
//求平方根,立方根,n次幂,四舍五入,绝对值
System.out.println("10的平方根:"+Math.sqrt(10));
System.out.println("10的立方根:"+Math.cbrt(10));
System.out.println("25的4次方:"+Math.pow(25,4));
System.out.println("对3.5四舍五入:"+Math.round(3.5));
System.out.println("对-3.5四舍五入:"+Math.round(-3.5));
System.out.println("求两数-12和34的差"+Math.abs((-12)-34));
System.out.println("+++++++++++++++++");
//求两个数之中的大数、小数
double inter1,inter2;
inter1 = -123.45;
inter2 = 67.89;
System.out.println(Math.min(inter1, inter2));
System.out.println(Math.max(inter1, inter2));
System.out.println("+++++++++++++++++");
//随机数,每次运行产生的数是不一样的
int i,sum=0;
int array[] = new int [10];
for(i=0;i<=9;i++)
{
array[i]=(int)(Math.random()*900+100);
sum+=array[i];
}
System.out.println("随机数的平均值是:"+sum/10.0);
System.out.println("随机数分别是:");
for(i=0;i<=9;i++)
{
System.out.println(array[i]);
}
} }

运行结果

93969.26207859084
+++++++++++++++++
10的平方根:3.1622776601683795
10的立方根:2.154434690031884
25的4次方:390625.0
对3.5四舍五入:4
对-3.5四舍五入:-3
求两数-12和34的差46
+++++++++++++++++
-123.45
67.89
+++++++++++++++++
随机数的平均值是:564.5
随机数分别是:
578
301
546
713
745
256
199
638
716
953 Process finished with exit code 0

Java类库以及它的基本组织结构的更多相关文章

  1. Java 类库和常用类库

    Java 类库概念: Java 的应用程序接口 (API) 以包的形式来组织,每个包提供了大量的相关类.接口和异常处理类,这些包的集合就是 Java 的类库 包名以 Java 开始的包是 Java 核 ...

  2. [Liferay6.2]启动Tomcat提示APR不能在java类库路径中被找到的解决办法

    问题描述 启动liferay之后,在控制台中打印出会打印出以下信息: 信息: The APR based Apache Tomcat Native library which allows optim ...

  3. 介绍4款json的java类库 及 其性能测试

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...

  4. 关于ECharts Java类库的一个jquery插件

    在项目中开发图表功能时用到了Echars和一个关于Echars的java类库(http://git.oschina.net/free/ECharts).这个类库主要目的是方便在Java中构造EChar ...

  5. java类库

    Java的应用程序接口(API)以包的形式来组织,每个包提供大量的相关类.接口和异常处理类,这些包的集合就是Java的类库. Java类库可以分为两种 包名以java开始的包是Java核心包(Java ...

  6. Effective Java 第三版——59. 熟悉并使用Java类库

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  7. 词典的实现(3)--使用JAVA类库ArrayList实现Map数据结构

    1,在词典的实现(2)-借助顺序表(数组)实现词典文章中使用了自定义的数组代替ArrayList,并实现了Map数据结构的基本功能.而借助JAVA类库ArrayList类的一些方法可以更加容易地实现M ...

  8. 使用Java类库POI生成简易的Excel报表

    使用Java类库POI生成简易的Excel报表 1.需求 1.数据库生成报表需要转义其中字段的信息.比如 1,有效 2.无效等 2.日期格式的自数据需要转义其格式. 3.标题的格式和数据的格式需要分别 ...

  9. Java类库和常用类库介绍

    Java 类库概念: Java 的应用程序接口 (API) 以包的形式来组织,每个包提供了大量的相关类.接口和异常处理类,这些包的集合就是 Java 的类库 包名以 Java 开始的包是 Java 核 ...

随机推荐

  1. springboot整合邮件发送(163邮箱发送为例)

    先登录163邮箱获取授权  勾选后安装提示会叫你设置授权密码之类的:记住授权的密码 1.引入maven依赖 <dependency> <groupId>org.springfr ...

  2. 在sharepoint 2010创建级联下拉菜单

    SPServices是一个jQuery库,它提取SharePoint Web服务,并使其更容易使用.它可以使用不同的Web服务操作提供更有用且很酷的功能.它完全安装在客户端,不需要服务器. 用SPSe ...

  3. Ubuntu chmod 命令修改文件chmod读写权限

    Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限 chmod 命令有两种使用方式 一. chmod [u/g/o/a] [+/-/=] [r/w/x] filename [ ]里都代表 ...

  4. Spring Boot必备技能之Starter自定义

    本文摘自于<Spring Cloud微服务 入门 实战与进阶>一书.  作者:尹吉欢 Spring Boot的方便体现在简化了很多繁琐的配置,对开发人员来说是一个福音,通过引入各种Spri ...

  5. 把Spring Cloud Data Flow部署在Kubernetes上,再跑个任务试试

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring Cloud Data Flow在本地跑得好好的,为什么要部署在Kubernetes上呢?主要是因为Kubern ...

  6. 和菜鸟一起学linux之DBUS基础学习记录(转)

    转自:https://www.cnblogs.com/wuyida/p/6299998.html D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信.它是个3层架 ...

  7. 我还在生产玩 JDK7,JDK 15 却要来了!|新特性尝鲜

    自从 JDK9 之后,每年 3 月与 9 月 JDK 都会发布一个新的版本,而2020 年 9 月即将引来 JDK15. 恰巧 IDEA 每四五个月会升级一个较大的版本,每次升级之后都会支持最新版本 ...

  8. 5、Java 修饰符

    引言:Java的修饰符根据修饰的对象不同,分为类修饰符.方法修饰符.变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符. 1.访问控制修饰符的总结 四个关键字:public.protec ...

  9. ROS 八叉树地图构建 - 安装 octomap 和 octomap_server 建图包!

    项目要用到八叉树库 Octomap 来构建地图,这里记录下安装.可视化,并启用带颜色的 Octomap 的过程. 一.Apt 安装 Octomap 库 如果你不需要修改源码,可以直接安装编译好的 oc ...

  10. java Format

    DecimalFormat函数语法: DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字. DecimalFormat 包含一个模式 和一组符号 符号含义: ...