原创 JAVA IO 通俗解釋

以網購之後到貨爲例簡單解釋JAVA各IO模型: 阻塞 IO 模型(BIO):付款完了什麼也不幹,自己不斷問貨物是否到了,直到貨物到了拿了快遞再去做別的事兒。(效率很低,用戶線程直接阻塞) 非阻塞 IO 模型:買完了自己每隔一段時間就

原创 Java序列化:Serializable 和 Externalizable 接口

記一次面試: 面試官:怎麼實現實體的序列化? 答:實現了Serializable接口 面試官:哦,確定嗎?還有其他答案嗎? 答:確定,暫時沒有 面試官:那怎麼避免某個字段參與序列化? 答:使用transient關鍵字。 面試官:哦,確定

原创 JAVA引用傳遞、淺拷貝、深拷貝

測試類: Player類,包含name  level  和  weapon   三個成員 public class Player implements Cloneable { private static final lon

原创 Git學習筆記——3、文件的新建、暫存、提交及重新提交

本節在不考慮分支的情況,以game文件夾爲例,來實際演示git的實際操作,爲了好理解,先只模擬代碼的增和補,至於回退一類的逆向操作則放在下一節。 1. 初始化本地庫 假如我們的項目是game,新建並進入game目錄,我們先執

原创 Java6至Java13重要特性摘錄

參考官方release note,主要摘取各版本比較重要的特性,翻譯水平有限,如有紕漏歡迎指出。 JDK6 語法部分 實現接口方法時,可以加@override註解了,JDK5會報錯 JVM部分 Parallel C

原创 Git學習筆記——1、基本概念

序 Git相對於SVN多了很多新概念,用起來不難但想完全掌握需要花些功夫的 Git現在是各大互聯網公司的主流代碼管理工具,曾經面試時因爲沒有過多接觸Git而被面試官鄙視 故認真學習,撰寫筆記 常見術語 Git:git本

原创 mac終端優化改造

下載iterm2地址 https://www.iterm2.com/ 升級macOS Catalina後,默認啓用zsh,不用單獨安裝。 安裝oh my sh sh -c "$(wget https://raw.githubu

原创 Git學習筆記——4、未提交前文件的回退操作

本節按使用場景來總結說明,總結文件未提交前的常見回退情形 1. 新建文件暫存後撤銷 在項目目錄下新建version.md文件,將文件暫存,狀態如下: 可以看到version.md是new file的狀態。通過命令行的輸出,

原创 Git學習筆記——2、文件狀態

剛工作使用SVN的時候,基本沒有考慮過文件的狀態,以爲無非是檢出、提交、撤回,對版本控制理解的不夠深入,其實SVN和Git一樣,也有add相關操作。 Git文件狀態的轉換 Git下每個文件狀態分爲4個階段: 未追蹤(Untr

原创 MAVEN安裝jar到本地倉庫(macOS版)

場景:        項目需要ojdbc6的jar包,由於版權問題,maven中央倉庫已經不提供包的下載了,在倉庫檢索出來的pom均不能使用,故需手動安裝到本地倉庫。 命令:  mvn install:install-file -Df

原创 hikari連接池T4CPreparedStatement.isClosed()Z is abstract錯誤解決

項目是springBoot2.0的,原先使用druid連接池,後換用hikari連接池自己學習,啓動項目OK不報錯,但每次dao層訪問數據庫就報500,T4CPreparedStatement.isClosed()Z is abstrac

原创 Oracle遠程無法連接(但本機訪問正常)問題解決

場景: 兩臺筆記本接入同一個路由器,其中一臺A機器(WIN)搭建數據庫,另一臺B機器(OSX)跑項目通過局域網訪問數據庫。 早上重新開機後,B機器就怎麼也連接不上數據庫了,能ping通,通過nc命令測試端口無響應:nc -z 172.2

原创 Java重載、重寫、覆蓋、隱藏的總結

重載Overloading 發生要素如下: 1. 在同一作用範圍內(同一個類,同一個接口) 2. 方法名必定相同 3. 形參組成不同(類型、個數均不相同 or 個數相同但類型不同 or 類型相同個數不同) 錯誤的認識: 1. 方法名相同

原创 Sftp之ChrootDirectory主目錄權限的配置

背景交代: CentOS6.5搭建SFTP,按照教程配置 + 重啓SSHD服務,之後用sftp命令試驗登陸,用戶名爲paymentftp   報錯信息如下: [root@BILLING86 local]# sftp paymentftp@

原创 Java8新特性之default關鍵字學習

先談一談抽象類和接口的區別 抽象類 可看做是不可實例化的普通類,可以擁有構造方法,可以有main方法 抽象類中的方法可以是抽象方法(抽象方法必須存在於抽象類中),也可以是普通方法、靜態方法 可以聲明變量,不是必須賦初值。 抽象類可以繼承