一、Java语言概述
Java语言是一种类C++语言,是由Sun Microsystems于1995年推出的一种面向对象的计算机编程语言。Java语言特色如下: 1.平台无关性
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
程序被编译成字节码,而不是特定操作系统平台的机器码。Java虚拟机(JVM)会将字节码解释为相应平台的机器码,因此Java程序可以在不同操作系统平台上运行。 2.面向对象
class Car{
private String make;
private String model;
private int year;
public Car(String make, String model, int year){
this.make = make;
this.model = model;
this.year = year;
}
public String getMake(){
return make;
}
public String getModel(){
return model;
}
public int getYear(){
return year;
}
}
Java语言支持面向对象编程,可以定义类、对象、方法、属性等,方便维护和扩展。 3.垃圾回收机制 Java使用自动垃圾回收机制,程序员不需要手动进行内存管理。JVM会检查对象是否没有任何引用指向,如果是,JVM就会自动释放该对象所占用的内存。这也是Java程序安全性高的一个原因,因为它可以尽可能地减少内存泄漏和访问越界等问题。
二、Java开发环境
Java开发环境有两个核心部分:Java Development Kit (JDK)和集成开发环境(Integrated development environment,IDE)。 1.JDK JDK包括Java编译器、Java虚拟机、类库等,是Java程序开发的必备环境。下面是一个简单的Hello World程序:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
2.IDE IDE提供可视化界面,高级代码编辑器、错误检查、代码调试等功能,是Java开发的重要组成部分。Eclipse是最流行的Java IDE之一,下面是一个Eclipse IDE的示例:
三、 Java网络编程
Java提供了基于TCP/IP协议的网络编程功能,可以方便地实现网络应用程序。 1.Socket编程 Socket编程是Java网络编程的核心,可以实现通过不同计算机之间进行数据传输。下面是Socket编程的一个简单示例:
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("连接到主机:" + serverName + " ,端口号:" + port);
Socket client = new Socket(serverName, port);
System.out.println("远程主机地址:" + 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("服务器响应: " + in.readUTF());
client.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
- HTTP编程 Java也可以用来实现基于HTTP协议的网络编程,可以用来构建Web应用程序。下面是使用Java实现GET请求的示例:
import java.net.*;
import java.io.*;
public class HttpURLConnectionDemo{
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.baidu.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
int responseCode = con.getResponseCode();
System.out.println("GET Response Code :: " + responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()));
StringBuffer response = new StringBuffer();
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
} in.close();
System.out.println(response.toString());
} else {
System.out.println("GET request not worked");
}
}
}
四、 Java并发编程
Java支持多线程编程,可以提高程序的效率。下面是Java多线程编程的一个简单示例:
class PrintThread implements Runnable{
private Thread t;
private String threadName;
PrintThread( 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) {
PrintThread R1 = new PrintThread( "Thread-1");
R1.start();
PrintThread R2 = new PrintThread( "Thread-2");
R2.start();
}
}
五、Java图形界面编程
Java可以使用Swing等库实现图形化界面,可以实现可视化的应用程序。下面是一个简单的Java Swing示例:
import javax.swing.*;
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支持访问各种数据库,通过JDBC驱动,可以方便进行数据库编程。下面是一个简单的JDBC示例:
import java.sql.*;
public class JDBCDemo {
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(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();
}
}
System.out.println("Goodbye!");
}
}