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. 环境篇:DolphinScheduler-1.3.1安装部署及使用技巧

    环境篇:DolphinScheduler-1.3.1安装部署 1 配置jdk JDK百度网盘:https://pan.baidu.com/s/1og3mfefJrwl1QGZGZDZ8Sw 提取码:t ...

  2. Python os.unlink() 方法

    概述 os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误.高佣联盟 www.cgewang.com 语法 unlink()方法语法格式如下: os.unlink(path) 参 ...

  3. 5.15 省选模拟赛 容斥 生成函数 dp

    LINK:5.15 T2 个人感觉生成函数更无脑 容斥也好推的样子. 容易想到每次放数和数字的集合无关 所以得到一个dp f[i][j]表示前i个数字 逆序对为j的方案数. 容易得到转移 使用前缀和优 ...

  4. 三类安装VMTools失败的解决方法(Windows、Linux、MacOs)

    前言 写这篇笔记的原因,是前几天在虚拟机 Vmware 中重新安装了几个操作系统,突然发现 VMTools 这个工具成了一个特殊的问题,以前还没有发现,因为通常它就给你自动安装了.但是大多数时候也是需 ...

  5. SpringBoot一个依赖搞定session共享

    原文:微信公众号:Java开发宝典  https://mp.weixin.qq.com/s/_VFY9lXqNhH8Nh4HC9tuMg 1. 前言 在传统的单服务架构中,一般来说,只有一个服务器,那 ...

  6. Boolean源码解剖学

    一.类继承 Boolean的源码类定义部分如下: 1 public final class Boolean implements java.io.Serializable, 2 Comparable& ...

  7. 记不住git命令?试试这个命令浏览网站

    Find the right git commands without digging through the web. 找 git 命令,无需谷歌百度,无需 git -help,这个网站以图形界面的 ...

  8. 【av68676164(p33-p34)】进程通信

    4.7.1 匿名管道通信 任务:把一个CMD控制台程序改成窗口程序 "算命大师"程序的改进版 改进目标:标准的Windows窗口程序 (匿名)管道通信机制 管道定义 pipe 定义 ...

  9. 我搭的神经网络不work该怎么办!看看这11条新手最容易犯的错误

    1. 忘了数据规范化 2. 没有检查结果 3. 忘了数据预处理 4. 忘了正则化 5. 设置了过大的批次大小 6. 使用了不适当的学习率 7. 在最后一层使用了错误的激活函数 8. 网络含有不良梯度 ...

  10. JDBC的开发步骤

    一.JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问, 它由一组用Jav ...