原创 Operation not allowed after ResultSet closed錯誤的解決

現象:實現一個刪除數據庫前10條記錄的練習時,出現了Operation not allowed after ResultSet closed的錯誤。 原因:由於要先進行查詢操作,在while中也就是意味着rs還沒有關閉,因爲使用了

原创 一個DAO的實現

接口 package jdbctest; import java.util.List; public interface DAO { //增加 public void add(Hero hero); //更新 p

原创 Tomcat啓動亂碼和訪問html出現亂碼的解決方式

版本信息 Tomcat:9.0.36.0 Java虛擬機版本: 14.0.1+7 問題1:Tomcat啓動亂碼 現象: 解決: 打開logging.properties文件,找到文件中的java.util.logging

原创 子查詢和關聯練習題,坑在子查詢和開窗函數的使用

遇到的問題: 1.由於工位的機子上裝的是mysql5.5版本,因此不支持開窗函數。第20題的查詢無法進行,需要更換mysql8的版本。 --20.查詢每個部門薪資最高的前兩名員工信息及所在部門名稱 select * from

原创 異常結構化總結

原创 for循環和HashMap查找性能比較

難點 HashMap的初始化比較難實現 初始化實現如下: HashMap<String,List<Hero>> heroMap =new HashMap<String, List<Hero>>(); //h

原创 多線程查找指定字符串

多線程查找 package iolearning; import java.io.File; public class TestThreadFindString { public static void main(Stri

原创 對編碼方式的理解

使用一段java代碼來解釋字符編碼。 需要的基礎知識有UTF-8、ANSI、GBK、ISO-8859-1 ASCII、UNICODED等編碼方式。 GBK 是針對中文字符的編碼,使用2字節存儲。 ASCII 就是平常最容易見的字

原创 shutdown()與awaitTermination()的分析

shutdown() 源碼說明如下: /** * Initiates an orderly shutdown in which previously submitted * tasks are executed, but n

原创 RemoveComments的實現

遇到的問題: 在第一次實現的時候,沒有注意到使用緩衝流寫入數據的時候會清空原有的數據,大忌!!! 改進方法: 1.在緩衝流讀數據過程中,使用stringBuffer的append()方法把判斷爲不是//的字符保存起來。在使用緩衝

原创 單線程窮舉法破解密碼

窮舉使用多層for循環完成: for (int i = 48; i < 122; i++) { for (int j = 48; j < 122; j++) { for (int k = 48; k < 122;

原创 多線程判斷本網段有多少可以ping通的ip

ping命令空格問題,正確如下: Process p = Runtime.getRuntime().exec("ping -n 1 "+ip);//空格引發的災難 線程池關閉方式有誤,只使用了threadPool.shut

原创 IO詳細總結-結構化表達

File文件對象 文件操作1 isDirectory length() size() exists() isFile() 文件操作2 listFiles()返回文件數組 getParent() mkdir() create

原创 java判斷本網段有多少可以ping通的ip

使用ArrayList生成本網段所有IP的集合。然後使用增強for循環一個個進行判斷是否可以ping通,但存在一個問題是這樣遍歷ip的方式太慢了,應該考慮使用多線程實現。下一篇文章嘗試使用多線程進行ping查詢。 以下整體實現:

原创 使用Reader流進行字符加密

需求 數字: 如果不是9的數字,在原來的基礎上加1,比如5變成6, 3變成4 如果是9的數字,變成0 字母字符: 如果是非z字符,向右移動一個,比如d變成e, G變成H 如果是z,z->a, Z-A。 字符需要保留大小寫 非字母