前言
Java现在也已经是学了一年了,有一些知识点已经有些记不清了,特此写下这篇文章回顾一下JavaSE的主要学习线路图,一方面是帮助我温习JavaSE的基础知识,另一方面也是给读者留下学习的线索。废话不多说,开始吧~
JavaSE知识脑图
看起来JavaSE得知识框架还是挺清晰简单的(相比于J2EE~ 呜呜TAT)
基本数据类型
集合类
Java异常体系结构
Java文件 / IO
线程的生命周期
Java网络编程(TCP)
Java网络编程(UDP)
JDBC的基本使用
代码模板
以下是一些常用的但可能容易忘的代码模板,记不清的时候可以来这儿查查!
JDBC数据库连接
import java.sql.*;
public class Solution {
final static String url = "jdbc:mysql://localhost:3306/ex3";
final static String user = "root";
final static String pwd = "";
final static String driver = "com.mysql.jdbc.Driver";
final static String sql = "SELECT * FROM dept";
private static Connection conn = null;
private static Statement state = null;
private static ResultSet result = null;
public static void main(String[] args) {
try {
// 加载数据库驱动
Class.forName(driver);
// 取得数据库连接
conn = DriverManager.getConnection(url, user, pwd);
// 通信工具
state = conn.createStatement();
// 执行sql语句
result = state.executeQuery(sql);
// 输出执行结果
while (result.next()) {
System.out.print(result.getInt("DEPTNO") + "--");
System.out.print(result.getString("DNAME") + "--");
System.out.println(result.getString("LOC"));
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
UDP数据报收发
import java.lang.*;
import java.io.IOException;
import java.net.*;
class SendUDP {
public static void main(String[] args) throws IOException {
DatagramSocket socket = null;
DatagramPacket pack = null;
socket = new DatagramSocket(12345);
String data = "This is a message from SendUDP... Hi~";
pack = new DatagramPacket(data.getBytes(), data.length(), InetAddress.getLocalHost(),12346);
socket.send(pack);
socket.close();
}
}
class RecvUDP {
public static void main(String[] args) throws Exception {
DatagramSocket socket = null;
DatagramPacket pack = null;
byte[] data = new byte[1024];
socket = new DatagramSocket(12346);
pack = new DatagramPacket(data, data.length);
socket.receive(pack);
System.out.println(new String(data));
socket.close();
}
}
TCP多线程服务器
import java.io.*;
import java.lang.*;
import java.net.*;
import java.util.Scanner;
class SendTCP {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
Socket socket = null;
String data;
socket = new Socket(InetAddress.getLocalHost(), 12345);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
System.out.println("请输入内容:");
while (!(data = in.next()).equals("bye")) {
out.write(data);
out.flush();
}
out.close();
socket.close();
}
}
class RecvTCP {
static class ServerThread implements Runnable {
private Socket clientSocket = null;
byte[] b = new byte[1024];
InputStream in = null;
public ServerThread(Socket clientSocket) {
this.clientSocket = clientSocket;
}
@Override
public void run() {
try {
// 取得一个输入流
in = clientSocket.getInputStream();
String data = null;
int n;
while ((n = clientSocket.getInputStream().read(b)) != -1) {
System.out.println(new String(b, 0, n));
}
in.close();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws Exception {
// 开启一个服务器socket
ServerSocket serverSocket = new ServerSocket(12345);
// 与客户端socket取得连接
Socket clientSocket = null;
while (true) {
// 监听端口,取得一个tcp连接
clientSocket = serverSocket.accept();
// 开启一个新线程处理tcp连接
new Thread(
new ServerThread(clientSocket)
).start();
}
// serverSocket.close();
}
}
关于JavaSE就总结这么多,更多是个人温习的时候可以回顾到的。我觉得以图的形式比较好串起JavaSE的体系,更详细的文字描述性参考,可以查看这个gitHub地址。