原创 設計模式——原型模式(Prototype Pattern)

在看《大話設計模式》 看到深拷貝和淺拷貝有點不太懂。 如果有引用, 淺拷貝:原對象和副本引用同一對象。對屬性直接拷貝。是引用類型的話,只複製引用,不復制引用的對象。 深拷貝:原對象和副本引用的不是同一個對象。 淺拷貝: c

原创 IDEA使用log4j

1.下載IDEA 到官網即可 2.註冊 https://www.jb51.net/softs/543007.html 下載插件,拖進idea即可 或者 https://www.jiweichengzhu.com/article/9

原创 Java線程-兩階段終止模式(interrupted實現)

最近剛開始學線程。 任務 使用sleep,interrupt實現 import org.apache.log4j.Logger; import static java.lang.Thread.sleep; public clas

原创 遺傳算法解決01揹包

參考自:https://blog.csdn.net/liyuming0000/article/details/48394587 我只是修改了一下,代碼可以直接跑。 import java.util.*; public class

原创 638.大禮包

在LeetCode商店中, 有許多在售的物品。 然而,也有一些大禮包,每個大禮包以優惠的價格捆綁銷售一組物品。 現給定每個物品的價格,每個大禮包包含物品的清單,以及待購物品清單。請輸出確切完成待購清單的最低花費。 每個大禮包的由一

原创 由右移運算符引發的思考(計算機原理)

輸出 -50>>5,得到-2 輸出 -50/32得到-1 思考是如何在計算機內部實現的?? 首先需要知道:計算機中所有數都是以補碼形式存儲的。 簡單說一下符號位0爲正,1爲負。移碼相反。 50的二進制是110010,那麼-50的表

原创 167.兩數之和Ⅱ-輸入有序數組

雙指針+了一點小小小的優化: class Solution { public int[] twoSum(int[] numbers, int target) { int left=0; in

原创 在一個線程裏面調用另一個線程的sleep方法

import static java.lang.Thread.sleep; public class send { static int x; public static void main(String[]

原创 34.在排序數組中查找元素的起始和末尾位置

輸入: nums = [5,7,7,8,8,10], target = 8 輸出: [3,4] 找不到輸出[-1,-1] 先找到第一個nums[mid]=target的mid,然後分別查找左右。 當時覺得還不錯,一運行時間和線性查

原创 1351.統計有序矩陣中的負數

每行二分 class Solution { public int countNegatives(int[][] grid) { int row=grid.length; int col=g

原创 synchronized能不能保證有序性??

肯定能啊。 但是: 比如單例模式裏面的雙檢鎖dcl,爲什麼還要加volatile禁止指令重排序呢?? class Singleton{ private static Singleton instance; priv

原创 稀疏數組搜索

就知道個簡單的二分算法,這次看題解發現了新的大陸。 原來二分還能這麼玩啊。 class Solution { public int findString(String[] words, String s) {

原创 不使用乘法、除法和mod,實現兩數相除

被除數÷除數=商+餘數 需要注意的問題: int 的範圍是[-2^31,2^31-1],也就是【-2147483648,2147483647】,如果-2147483648/-1結果會超出int 範圍。 除法,乘法和mod都不能使

原创 牛頓迭代

一種在實數域和複數域上近似求解方程的方法 。 方法使用函數f(x)的泰勒級數的前面幾項來尋找方程f(x)=0的根。 把f(x)在X0點的某鄰域內展開成泰勒級數 : 取其線性部分(即泰勒展開的前兩項),並令其等於0。即 以此作爲

原创 複製文件以及異常處理

代碼實現特定 文件的複製粘貼。 如將D盤的大作業複製到F盤。 出現過拒絕訪問的錯誤:你要讀取文件,但路徑是目錄。 public class Demo1 { public static void main(String[]