原创 Effective Java讀書筆記-始終要覆蓋toString

雖然java.lang.object提供了toString方法的一個實現,但它所返回的字符串通常不是類的用戶所希望看到的。它包含類的名稱以及一個@符號,接着是散列碼的無符號十六進制表示法,例如”PhoneNumber@163b91

原创 使用Mongo創建一個新的數據庫的步驟

在MongoDB下創建數據庫的方法 跳轉到MongoDB所在的目錄下。 C:Users\Administrator\d: 創建一個data目錄並進入其中 mkdir data 創建數據庫文件db並進入其中 mkdir db 命令行

原创 Mongo更新文檔操作

Mongo使用update和save方法來更新集合中的文檔。 語法格式:強調內容 db.collection.update ( <query>, <update>, { upsert:<boolean>, mu

原创 Effective Java讀書筆記-覆蓋equals時遵守的通用約定

不需覆蓋equals的情況 覆蓋equals看似很簡單,但是很多覆蓋方式會導致錯誤,並且後果會非常嚴重,最簡單的方法就是不去覆蓋equals方法。 以下幾種情況,可以不用覆蓋equals方法: 類的每個實例本質上是一致的。 不

原创 最長公共子序列的問題

題目: 給定兩個字符串str1和str2,返回兩個字符串的最長公共子序列。 舉例str1=”1A2C3D4B56”,str=“B1D23CA45B6A”。123456或者12C4B6都是最長公共子序列,返回哪一個都行。 思路: 此題可以

原创 漢諾塔問題

題目: 給定一個整數n,代表漢諾塔遊戲中從小到大放置的n個圓盤,假設開始時所有的圓盤都放在左邊的柱子上,想按照漢諾塔遊戲的要求把所有的圓盤都移到右邊的柱子上。實現函數打印最有軌跡。 思路: 此題可以採用遞歸的思想來解決,首先設有三個柱子分

原创 只用位運算不用算數運算求兩個數的加減

題目: 給定兩個32位整數a和b,可正、可負、可0.不能使用算數運算符,分別實現a與b的加減運算。 思路: 兩個數的相加實際上就是在二進制位上的抑或、與、移位等操作。兩個數抑或表示兩個數無進位的相加,兩個數與再向左移動一位代表着兩個數相加

原创 將正方形矩陣順時針轉動90度

題目:給定一個NxN的矩陣matrix,把這個矩陣調整成順時針轉動90度後的形式。例如:1  2    3   45  6    7   89  10  11  1213 14 15  16順時針轉動90度13  9   5   114

原创 數據庫基礎知識

大數據的三大相關性:容量:交易、記錄、大量的數據速度:實時、成批次處理、流動變量:結構化、非結構化、半結構化一個好的數據庫系統需要滿足以下兩點要求:合理的組織數據。高效的進行數據查詢。現代的數據庫系統的變化:需要存儲更多的非結構化數據。更

原创 Effective Java讀書筆記-謹慎的覆蓋clone

Cloneable接口的目的是作爲對象的一個mixin接口,表明這樣的對象允許克隆(clone)。Object的clone方法是受保護的,如果不借助反射(reflection),就不能僅僅因爲一個對象實現了Cloneable,就可以調用c

原创 迴文最少分割數

題目: 給定一個字符串str,返回把str全部切割爲迴文子串的最小分割數。 思路: 該題可以使用動態規劃的思想來解決。首先要明確好dp[i]的概念,即從str的首個位置開始到第i個位置要切割爲迴文子串的最小分割數。最後的dp[str.le

原创 在其它數都出現k次的數組中找到只出現一次的數

題目: 給定一個整形數組arr和一個大於1的整數k。已知arr中只有1個數出現了1次,其他的數都出現了k次,請返回只出現1次的數。 思路: 根據該題的數組中很多數出現了k次只有一個數出現了1次。可以採用如下的步驟解決此題。 將數組中所有

原创 Effective Java讀書筆記-複合優先於繼承

繼承是完成代碼重用的有力手段,但它並非是完成這項工作的最佳工具。使用不當通常會導致軟件非常的脆弱。在包的內部使用繼承是非常安全的。對於普通的具體的類進行跨越包的邊界的繼承將是非常危險的。 繼承打破了封裝性: 與方法調用不同,繼承打破了封裝

原创 Effective Java讀書筆記-考慮實現Comparable接口

compareTo方法沒有在Object中聲明,相反它是Comparable接口的唯一方法。compareTo方法不單單可以進行簡單的同性比較,而且允許執行順序比較。類實現了Comparable接口就表明它的實例具有內在的排序關係(nat

原创 最長公共子串問題

題目: 給定兩個字符串str1和str2,返回兩個字符串的最長公共子串。要求時間複雜度爲O(M*N),額外空間複雜度爲O(1)的方法。 思路: 一開始想用KMP算法解決此題,但是衆所周知KMp算法需要next數組,那麼空間複雜度肯定是O(