一、Java語言簡介
Java是一種面向對象的編程語言。它由James Gosling和Sun Microsystems於1995年推出。Java具有簡單性、可移植性、面向對象性、安全性、多線程性和互聯性等特點。Java語言源代碼被編譯成位元組碼,然後由Java虛擬機(JVM)運行。Java虛擬機是Java語言的核心,它允許在任何平台上運行Java程序,實現了Java語言的可移植性。
以下是一個簡單的Java程序示例:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } }
二、Java開發工具
Java開發工具是Java程序員必備的軟件。最好的Java開發工具之一是Eclipse,它是一個開放源代碼的綜合性開發工具,可用於多種編程語言,包括Java、C/C++等。Eclipse具有強大的調試功能、自動補全、代碼重構、版本控制等功能,是Java開發的首選工具。
另外一個常用的Java開發工具是IntelliJ IDEA,它是一款非常優秀的Java集成開發環境。擁有智能代碼提示、自動重構、代碼審查等功能,可以幫助Java程序員更加高效的開發Java程序。
三、Java Web開發
Java Web開發是Java技術最常用的應用之一。Java Web開發可以使用Java Server Pages(JSP)和Servlet技術創建動態Web應用程序。JSP通過將靜態的HTML頁面與動態生成的內容結合到一起,來實現動態Web應用程序。Servlet是Java Web程序的後端處理程序,負責處理客戶端請求和向客戶端發送響應結果。
以下是一個簡單的JSP頁面示例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Welcome to Java Web Development!</title> </head> <body> <h1><%= "Hello, World!" %></h1> </body> </html>
四、Java數據庫連接
Java 數據庫連接(JDBC)是Java程序訪問數據庫的標準API。JDBC允許Java程序員訪問各種關係型數據庫。Java程序可以通過JDBC API與任何支持JDBC協議的數據庫進行通信,包括MySQL、Oracle、Microsoft SQL Server等。JDBC API提供了許多接口和類,可以使Java程序員輕鬆地執行數據庫操作和訪問數據。
以下是一個使用JDBC連接MySQL數據庫的示例:
import java.sql.*; public class JDBCExample { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL,USER,PASS); stmt = conn.createStatement(); String sql; sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ se.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } }
五、Java桌面應用程序
Java的桌面應用程序開發可以使用Swing和JavaFX GUI工具包。Swing是Java GUI工具包,提供了許多圖形用戶界面組件,包括按鈕、文本框、標籤、列表框等。JavaFX是Java平台的新一代GUI工具包,提供了更多的可視化效果和動畫效果。
以下是一個使用Swing創建簡單GUI應用程序的示例:
import javax.swing.*; import java.awt.event.*; public class HelloWorldSwing { private static void createAndShowGUI() { JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hello, World"); frame.getContentPane().add(label); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
六、Java多線程
Java多線程是Java技術的又一重要特性。Java程序可以利用多線程技術實現並行處理,提高程序性能和運行效率。Java多線程可以使用Java的內置線程支持或者使用第三方線程庫,如Apache的Commons Lang庫。
以下是一個簡單的Java多線程示例:
public class ThreadDemo extends Thread { private Thread t; private String threadName; ThreadDemo(String name) { threadName = name; System.out.println("Creating " + threadName ); } public void run() { System.out.println("Running " + threadName); try { for(int i = 4; i > 0; i--) { System.out.println("Thread: " + threadName + ", " + i); Thread.sleep(50); } } catch (InterruptedException e) { System.out.println("Thread " + threadName + " interrupted."); } System.out.println("Thread " + threadName + " exiting."); } public void start () { System.out.println("Starting " + threadName ); if (t == null) { t = new Thread (this, threadName); t.start (); } } } public class TestThread { public static void main(String args[]) { ThreadDemo T1 = new ThreadDemo( "Thread-1"); T1.start(); ThreadDemo T2 = new ThreadDemo( "Thread-2"); T2.start(); } }
七、Java異常處理
Java異常處理是Java技術最重要的特性之一。Java程序中的異常是在程序運行時發生的不正常情況。Java程序可以使用try-catch塊來捕獲異常並進行處理。Java異常處理可以使用Java內置的異常類或者自定義異常類。
以下是一個簡單的Java異常處理示例:
public class ExceptionDemo { public static void main(String args[]) { try { int[] array = new int[10]; array[11] = 9; } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Exception caught: " + e); } System.out.println("Program continues..."); } }
八、Java註解
Java註解是Java語言的一個重要特性,可以在代碼中提供附加信息。Java註解可以在編譯器、運行時或者其他工具中使用。Java註解可以用於聲明類、方法、變量等元素。Java註解可用於提供配置信息、防止代碼注入等方面。
以下是一個使用Java註解的示例:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Test { public boolean enabled() default true; } public class MyClass { @Test public void testMethod() { System.out.println("Test method"); } }
九、Java網絡編程
Java的網絡編程支持可以使用Java的內置網絡庫或者使用第三方網絡庫,如Apache的HttpClient庫。Java網絡編程可以實現基於TCP/IP協議的客戶端/服務器模型。Java程序可以通過Socket類來創建客戶端和服務器端。
以下是一個使用Java網絡編程實現客戶端/服務器模型的示例:
import java.net.*; import java.io.*; public class GreetingClient { public static void main(String [] args) { String serverName = args[0]; int port = Integer.parseInt(args[1]); try { System.out.println("Connecting to " + serverName + " on port " + port); Socket client = new Socket(serverName, port); System.out.println("Just connected to " + client.getRemoteSocketAddress()); OutputStream outToServer = client.getOutputStream(); DataOutputStream out = new DataOutputStream(outToServer); out.writeUTF("Hello from " + client.getLocalSocketAddress()); InputStream inFromServer = client.getInputStream(); DataInputStream in = new DataInputStream(inFromServer); System.out.println("Server says " + in.readUTF()); client.close(); } catch (IOException e) { e.printStackTrace(); } } } import java.net.*; import java.io.*; public class GreetingServer extends Thread { private ServerSocket serverSocket; public GreetingServer(int port) throws IOException { serverSocket = new ServerSocket(port); serverSocket.setSoTimeout(10000); } public void run() { while(true) { try { System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "..."); Socket server = serverSocket.accept(); System.out.println("Just connected to " + server.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(server.getInputStream()); System.out.println(in.readUTF()); DataOutputStream out = new DataOutputStream(server.getOutputStream()); out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!"); server.close(); } catch (SocketTimeoutException s) { System.out.println("Socket timed out!"); break; } catch (IOException e) { e.printStackTrace(); break; } } } public static void main(String [] args) { int port = Integer.parseInt(args[0]); try { Thread t = new GreetingServer(port); t.start(); } catch (IOException e) { e.printStackTrace(); } } }
原創文章,作者:PIJG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135715.html