Java中的内置包
Java中的包用于避免命名冲突和控制类、接口、子类等的访问。一个包可以定义为一组相似类型的类、子类、接口或枚举等。使用包可以更容易地定位或查找相关的类和包,它提供了具有大量类和文件的项目的良好结构或大纲。
包分为两部分:
- 内置包:在Java中,我们已经有各种预定义的包,这些包包含大量我们在Java中使用的类和接口,称为内置包。
- 用户定义包:顾名思义,用户定义包是由用户或程序员定义的包。
内置包
您下载的 JDK 或 JRD 附带的包称为内置包。内置包以JAR文件的形式出现,当我们解压JAR文件时,我们可以很容易地看到JAR文件中的包,例如lang、io、util、SQL等Java提供了各种内置包例如Java.awt
现在让我们讨论一些内置包。
内置包的示例
- Java.sql :提供用于访问和处理存储在数据库中的数据的类。 Connection、DriverManager、PreparedStatement、ResultSet、Statement 等类是这个包的一部分。
- Java.lang :包含Java编程语言设计的基础类和接口。 String、StringBuffer、System、Math、Integer 等类是此包的一部分。
- Java.util :包含集合框架、一些国际化支持类、属性、随机数生成类。 ArrayList、LinkedList、HashMap、Calendar、Date、Time Zone 等类是这个包的一部分。
- Java.net :提供用于实现网络应用程序的类。 Authenticator、HTTP Cookie、Socket、URL、URLConnection、URLEncoder、URLDecoder 等类是这个包的一部分。
- Java.io :为系统输入/输出操作提供类。像 BufferedReader、BufferedWriter、File、InputStream、OutputStream、PrintStream、Serializable 等类是这个包的一部分。
- Java.awt :包含用于创建用户界面和绘制图形和图像的类。 Button、Color、Event、Font、Graphics、Image 等类是这个包的一部分。
让我们用代码讨论一些上面提到的例子
Java。 awt 包
这个包是抽象窗口套件的主包。它包括图形类,包含Java 2D 图形,它还定义了Java的图形用户界面 (GUI) 框架。这个包有几个沉重的 GUI 对象,属于Java。秋千包
Java
import java.awt.*;
public class AWTExample{
AWTExample()
{
Frame fr1=new Frame();
Label la = new Label("Welcome to the java graphics GEEKSFORGEEKS");
fr1.add(la);
fr1.setSize(200, 200);
fr1.setVisible(true);
}
public static void main(String args[])
{
Testawt tw = new Testawt();
}
}
Java
// using DatagramSocket under java.net package
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UDP {
public static void main(String[] args)
throws IOException
{
// Create a socket to listen at port 4567
int port_no = 4567;
DatagramSocket ds = new DatagramSocket(port_no);
byte[] receive = new byte[65535];
DatagramPacket DpReceive = null;
while (true) {
// create a DatgramPacket to receive the data.
DpReceive = new DatagramPacket(receive,
receive.length);
// receive the data in byte buffer.
ds.receive(DpReceive);
System.out.println("DATA:- " + data(receive));
// Clear the buffer after every message.
receive = new byte[65535];
}
}
}
Java
import java.sql.*;
public class JavaSQL {
static final String URL = "jdbc:mysql://localhost/Geeksforgeeks";
static final String USER = "user";
static final String PASSWORD = "123";
static final String QUERY = "SELECT ID, NAME, ADDRESS FROM STUDENTS";
public static void main(String[] args) {
// Open a connection
try(
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(QUERY);) {
while (rs.next()) {
// Retrieving data from column name
System.out.print("ID: " + rs.getInt("id"));
System.out.print(",NAME: " + rs.getInt("name"));
System.out.println(",ADDRESS: " + rs.getString("address"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Java
import java.lang.*;
class example_lang {
public static void main(String args []) {
int a = 100, b = 200,maxi;
maxi = Math.max(a,b);
System.out.printf("Maximum is = "+maxi);
}
}
Java
import java.io.Console;
class example_io {
public static void main(String args []) {
Console cons = System.console();
System.out.println("Enter your favorite color");
String colour ;
colour = cons.readLine();
System.out.println("Favorite colour is " + colour);
}
}
Java
import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {
int[] arr = { 40, 30, 20, 70, 80 };
Arrays.sort(arr);
System.out.printf("Sorted Array is = "+Arrays.toString(arr));
}
}
输出:
在上述示例中,我们使用 awt 包创建了一个大小为 200 x 200 的框架,然后打印一条消息“Welcome to the Java graphics GEEKSFORGEEKS.
Java.net 包
该包包含用于网络的类和接口,如 Socket 类、ServerSocket 类、URLConnection 类、DatagramSocket、MulticastSocket 等Java支持两种网络协议,如 TCP(传输控制协议)和 UDP(用户数据报协议,这是一个连接-更少的协议)。
Java
// using DatagramSocket under java.net package
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UDP {
public static void main(String[] args)
throws IOException
{
// Create a socket to listen at port 4567
int port_no = 4567;
DatagramSocket ds = new DatagramSocket(port_no);
byte[] receive = new byte[65535];
DatagramPacket DpReceive = null;
while (true) {
// create a DatgramPacket to receive the data.
DpReceive = new DatagramPacket(receive,
receive.length);
// receive the data in byte buffer.
ds.receive(DpReceive);
System.out.println("DATA:- " + data(receive));
// Clear the buffer after every message.
receive = new byte[65535];
}
}
}
输出
DATA:- //whatever to get from server
在上述示例中,我们实现了一个 UDP 套接字接收器,它通过端口号从服务器端接收数据。首先,我们使用 DatagramSocket 方法创建了一个套接字来监听 4567 端口,其次,我们创建了一个数据报包来接收字节缓冲区中的数据,最后在获得数据后我们将其打印出来。
Java.sql 包
该包包含提供和执行所有 JDBC 任务(如创建和执行 SQL 查询)的类和接口。它包括一个框架,可以动态安装不同的驱动程序以访问不同的不同数据库,它还提供了用于访问和处理存储在数据库中的数据库的 API。
Java
import java.sql.*;
public class JavaSQL {
static final String URL = "jdbc:mysql://localhost/Geeksforgeeks";
static final String USER = "user";
static final String PASSWORD = "123";
static final String QUERY = "SELECT ID, NAME, ADDRESS FROM STUDENTS";
public static void main(String[] args) {
// Open a connection
try(
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(QUERY);) {
while (rs.next()) {
// Retrieving data from column name
System.out.print("ID: " + rs.getInt("id"));
System.out.print(",NAME: " + rs.getInt("name"));
System.out.println(",ADDRESS: " + rs.getString("address"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
输出
ID: 1, NAME: Harry, ADDRESS: India
ID: 2, NAME: Jhon, ADDRESS: USA
ID: 3, NAME: Kim, ADDRESS: USA
ID: 4, NAME: Bob, ADDRESS: India
在上面的例子中可以看到,首先我们导入了包名Java.*,在main方法中我们初始化了字符串变量名URL、USER、PASSWORD、QUERY。然后使用 DriverManager 连接到数据库。最后,我们使用 executeQuery 方法执行从数据库中选择数据的查询。
Java.lang 包
这个包包含Java语言的核心类。这个包是自动导入到每个程序中的,也就是说我们可以在我们的程序中直接使用这个包的类。让我们举一个 lang 包的 Math 类的例子,它提供了各种数学运算的函数或方法。
Java
import java.lang.*;
class example_lang {
public static void main(String args []) {
int a = 100, b = 200,maxi;
maxi = Math.max(a,b);
System.out.printf("Maximum is = "+maxi);
}
}
Maximum is = 200
在上述示例中,我们使用 lang 包和 Math 类使用“max”函数找到两位数的最大值。首先,我们创建了一个名为“a”和“b”以及 maxi 的三个整数变量。其中 a = 100 和 b = 200 并且 maxi 将存储来自 a 或 b 的最大值。在为变量赋值后,我们使用 max函数找到最大值并将其存储在 maxi 中。所以在期望的输出中,我们最多可以看到两个数字,即 200。
Java.io 包
这个包提供了用于处理系统(输入/输出)的类和接口。使用这些类,程序员可以从用户那里获取输入并对其进行操作,然后将输出显示给用户。除此之外,我们还可以使用此包的类执行文件处理读取或写入。
Java
import java.io.Console;
class example_io {
public static void main(String args []) {
Console cons = System.console();
System.out.println("Enter your favorite color");
String colour ;
colour = cons.readLine();
System.out.println("Favorite colour is " + colour);
}
}
输出
Enter your favorite color
RED
Favorite color is RED
在上面的例子中,我们使用Java.io 包和 Console 类来获取用户的输入,对它执行一些任务或操作,最后在控制台上显示结果。正如代码首先所说,我们显示消息“输入您最喜欢的颜色”,要求用户输入颜色。用户系统使用 cons.readLine() 读取该行并将其存储在字符串类型变量中,然后最终显示该行。
Java.util 包
这个包为Java程序员提供了基本的必要的东西。这个包中最常见的类是数组,程序员通常在各种情况下使用它。可以说它是Java中最有用的包,因为它有助于通过使用预先编写的类轻松实现不同类型的需求。让我们看看 Arrays 类的例子。
Java
import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {
int[] arr = { 40, 30, 20, 70, 80 };
Arrays.sort(arr);
System.out.printf("Sorted Array is = "+Arrays.toString(arr));
}
}
输出:
Sorted Array is = [20, 30, 40, 70, 80]
在上述示例中,我们使用了Java。 util 包和 Arrays 类对整数数组进行排序。首先,我们创建了一个由元素 40、30、20、70、80 组成的整数类型数组,并使用 Arrays 类的“排序”函数对数组进行排序。对数组进行排序后,我们将打印排序后的数组,您可以在所需的输出中看到它。