首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 開發必備:20 個高頻代碼片段速查手冊

     編輯:Java 相關知識

日常開發中,我們反覆造輪子的場景其實有限。整理 20 個高頻、可直接落地的代碼片段,涵蓋字串、IO、日期、網絡、加密、PDF、郵件等核心領域,建議收藏備查。

1. 字串與基本類型互轉

String s = String.valueOf(123);   // int → String
int i = Integer.parseInt("123");  // String → int

2. 追加寫入檔案

try (BufferedWriter w = new BufferedWriter(
        new FileWriter("log.txt", true))) {
    w.write("new line");
    w.newLine();
}

3. 獲取當前方法名

String method = new Object(){}.getClass()
    .getEnclosingMethod().getName();

4. 字串解析日期

LocalDate date = LocalDate.parse("2024-06-15");
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String formatted = date.format(fmt);

5. JDBC 連線 Oracle(含連線池建議)

// 建議生產環境使用 HikariCP
HikariConfig cfg = new HikariConfig();
cfg.setJdbcUrl("jdbc:oracle:thin:@//host:1521/service");
cfg.setUsername("user"); cfg.setPassword("pwd");
DataSource ds = new HikariDataSource(cfg);

6. java.util.Date ↔ java.sql.Date

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
java.util.Date utilDate = new java.util.Date(sqlDate.getTime());

7. NIO 大檔案高效複製

Files.copy(srcPath, dstPath,
    StandardCopyOption.REPLACE_EXISTING,
    StandardCopyOption.COPY_ATTRIBUTES);

8. 圖片縮略圖生成

BufferedImage thumb = Thumbnails.of(srcFile)
    .size(200, 200)
    .outputQuality(0.8)
    .asBufferedImage();
ImageIO.write(thumb, "jpg", dstFile);

9. JSON 序列化

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(obj);
MyDto dto = mapper.readValue(json, MyDto.class);

10. iText 7 生成 PDF

PdfWriter writer = new PdfWriter("out.pdf");
PdfDocument pdf = new PdfDocument(writer);
Document doc = new Document(pdf);
doc.add(new Paragraph("Hello PDF").setFontSize(14));
doc.close();

11. HTTP 代理設定

System.setProperty("http.proxyHost", "proxy.com");
System.setProperty("http.proxyPort", "8080");
Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("user", "pass".toCharArray());
    }
});

12. 雙重檢查鎖單例

public class Singleton {
    private volatile static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) instance = new Singleton();
            }
        }
        return instance;
    }
}

13. 螢幕截圖

Robot robot = new Robot();
Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage img = robot.createScreenCapture(rect);
ImageIO.write(img, "png", new File("screen.png"));

14. 目錄遍歷與過濾

Files.list(dirPath)
    .filter(p -> p.toString().endsWith(".java"))
    .forEach(System.out::println);

15. 建立 ZIP 壓縮包

try (ZipOutputStream zos = new ZipOutputStream(
        new FileOutputStream("archive.zip"))) {
    Files.walk(srcDir)
        .filter(p -> !Files.isDirectory(p))
        .forEach(p -> {
            zos.putNextEntry(new ZipEntry(srcDir.relativize(p).toString()));
            Files.copy(p, zos);
            zos.closeEntry();
        });
}

16. DOM 解析 XML

DocumentBuilder builder = DocumentBuilderFactory.newInstance()
    .newDocumentBuilder();
Document doc = builder.parse(new File("data.xml"));
NodeList users = doc.getElementsByTagName("user");

17. 二維陣列轉 Map

String[][] data = {{"k1","v1"},{"k2","v2"}};
Map map = Arrays.stream(data)
    .collect(Collectors.toMap(a -> a[0], a -> a[1]));

18. 發送郵件

MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, to);
msg.setSubject(subject);
msg.setText(content);
Transport.send(msg);

19. HTTP GET 請求

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.example.com"))
    .GET().build();
String resp = client.send(req, BodyHandlers.ofString()).body();

20. 動態擴容陣列

int[] arr = {1,2,3};
arr = Arrays.copyOf(arr, 5); // {1,2,3,0,0}

使用提醒

  • 所有片段均為 Java 8+ 語法,若維護舊版本請適配
  • 資源關閉請優先使用 try-with-resources
  • 第三方庫(Jackson、iText、Thumbnails、HikariCP)需自行引入依賴
  • 敏感資訊(密碼、金鑰)請從配置中心/環境變數讀取,嚴禁硬編碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved