Time of Update: 2018-07-27
Java中的23種設計模式與7大原則 建立型模式 5 抽象原廠模式(Abstract factory pattern): 提供一個介面, 用於建立相關或依賴對象的家族, 而不需要指定具體類. 產生器模式(Builder pattern): 使用產生器模式封裝一個產品的構造過程, 並允許按步驟構造. 將一個複雜物件的構建與它的表示分離, 使得同樣的構建過程可以建立不同的表示. 原廠模式(factory method pattern):
Time of Update: 2018-07-27
package com;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ComparatorDemo {public List<Student> mList;public List<Comparator<Student>> mCmpList = new ArrayList&
Time of Update: 2018-07-27
162. Find Peak Element A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ num[i+1], find a peak element and return its index. The array may contain multiple peaks, in that case return the index
Time of Update: 2018-07-27
有序鏈表: 按關索引值排序。刪除鏈頭時,就刪除最小(/最大)的值,插入時,搜尋插入的位置。 插入時需要比較O(N),平均O(N/2),刪除最小(/最大)的在鏈頭的資料時效率為O(1), 如果一個應用需要頻繁的存取(插入/尋找/刪除)最小(/最大)的資料項目,那麼有序鏈表是一個不錯的選擇 優先順序隊列 可以使用有序鏈表來實現 有序鏈表的插入排序: 對一個無序數組,用有序鏈表來排序,比較的時間級還是O(N^2)
Time of Update: 2018-07-27
在網上搜了不少線上編譯網站,國內外都有。對於java來說,我感覺好用的是這個: 1. https://www.jdoodle.com/online-java-compiler 這個支援 Java8,並且能夠儲存代碼,還支援匯入外部庫。 但是國內很多情況登不上,真不明白這個學習網站也封。 2. https://www.tutorialspoint.com/compile_java8_online.php 這個網站比較美觀,也支援 java 8,
Time of Update: 2018-07-27
(一)首先明確: java斷言Assert是jdk1.4引入的。 jvm 斷言預設是關閉的。 斷言是可以局部開啟的,如:父類禁止斷言,而子類開啟斷言,所以一般說“斷言不具有繼承性”。 斷言只適用於複雜的調試過程。 斷言一般用於程式執行結果的判斷,千萬不要讓斷言處理商務程序。 (二)判斷eclipse是否開啟了斷言,代碼如下: public class AssertTest { public
Time of Update: 2018-07-27
java語言在發展的時候,對於調試員來說,調試工作是很累人的,但是java裡的發展卻在一定程度上方便了他們,現在就有一個斷言的功能,就是說,可以使用assert關鍵字來判斷一個boolean的屬性,到底是true還是false,不過一些編程用的軟體eclipse和myeclipse預設情況下並沒有開啟這個功能, Eclipse中如何開啟斷言(Assert),方法有二:1.Run -> Run Configurations -> Arguments頁簽 -> VM
Time of Update: 2018-07-27
一、assertion的意義和用法 J2SE 1.4在語言上提供了一個新特性,就是assertion功能,它是該版本在Java語言方面最大的革新。 從理論上來說,通過 assertion方式可以證明程式的正確性,但是這是一項相當複雜的工作,目前還沒有太多的實踐意義。 在實現中,assertion就是在程式中的一條語句,它對一個boolean運算式進行檢查,一個正確程式必須保證這個boolean運算式的值為true;如果該值為false,說明程式已經處於不正確的狀態下,系統將給出警告或退出。
Time of Update: 2018-07-27
An internal error occurred during: “Launching FarmeWork on Tomcat 7.X java.lang.NullPointerException”. 如果出現了上述的錯誤按照如下的3個步驟解決: 1、首先關閉MyEclipse工作空間。 2、然後刪除工作空間下的
Time of Update: 2018-07-27
public static void main(String[] args) { String str="<IMG border=0 align=center src=/epbwebeditor/uploadfile/20140509103010830.jpg 300px; HEIGHT: 201px></SPAN></FONT><SPAN style=FONT-FAMILY: New FONT-SIZE: 10.5pt
Time of Update: 2018-07-27
剛學Java的時候我也有過這種懷疑,但一直沒有驗證;最近在OSCHINA上看到有人在回答問題時也這麼說,於是萌生了一探究竟的想法——java.lang.Object.hashCode()的傳回值到底是不是對象記憶體位址。 (順帶回顧一下JNI) hashCode契約 說到這個問題,大家的第一反應一定和我一樣——去查Object.hashCode的源碼,但翻開源碼,看到的卻是這樣的(Oracle JDK 8): /** * Returns a hash code
Time of Update: 2018-07-27
1. 讀取本地圖片 前台 <img src="<%=path%>xx! showPicture " /> /** * 讀取本地圖片,並顯示 */public void
Time of Update: 2018-07-27
剛剛從java核心技術書中看到了泛型的一些操作,泛型機制有一個重要的概念:擦除(erased) ,在運行時,JVM是沒有泛型概念的,也就是說定義一個類 Pair<T>,在運行時只有Paris類,而其中的一些變數如 private T first會轉換成private Object first(術語叫限定類型),若有萬用字元時Pair<T extends Number &
Time of Update: 2018-07-27
一種情況: public static void main(String[] args) {char x = 'X';int i = 0;System.out.println(true ? x : 0);System.out.println(false ? i : x);} 結果為X 88 當類型相同時,運算式返回該類型,當類型不同時: 1.一種類型為char,short,byte,另一種為int常量,而且該常量能被前三種類型表示,則返回的是前三種的類型; 2.
Time of Update: 2018-07-27
java有很多方式實現改變字串中的字元順序,本文列舉兩種較易想到的演算法實現字串順序變化:abcdef g-> defgabc 1.截取0到n的字元子串,然後將後邊的子串放到一個StringBuilder中,在將前子串toCahrArray()轉換成字元數組,迴圈 該數組append到StringBuilder中: public static String changeString1(String s,int n){char[] ch =
Time of Update: 2018-07-27
子類直接存取父類的成員變數會報錯: 子類訪問父類的public成員函數會運行出錯: Exception in thread "main" java.lang.StackOverflowError at javalearning.Manager.getSalary(LotteryArray.java:45) at javalearning.Manager.getSalary(LotteryArray.java:45)
Time of Update: 2018-07-27
曾經和同學討論過,java中float和int之間的轉化關係,在之前片面的學習java基礎時感覺int類型不如float類型的精度高,原因是float可以表示小數,而int只能表示整數。
Time of Update: 2018-07-27
java產生二維碼圖片 java中有好幾種方式產生二維碼圖片,比如Google下的zxing工具包和SwetakeQRCode工具包。 下面使用SwetakeQRCode工具包產生二維碼圖片範例: pom檔案引入SwetakeQRCode工具包依賴: <!-- 二維碼產生工具jar包 --><dependency> <groupId>com.swetake.util</groupId>
Time of Update: 2018-07-27
貪進法描述: 貪心演算法總是作出在當前看來最好的選擇。也就是說貪心演算法並不從整體最優考慮,它所作出的選擇只是在某種意義上的局部最優選擇。 在一些情況下,即使貪心演算法不能得到整體最優解,其最終結果卻是最優解的很好近似。 問題描述: 現有一組活動由你安排,但要求你在最短的時間內安排儘可能多的活動。 代碼如下: Activity類用於封裝使用中的物件,包括活動的開始時間和結束時間,另外實現了Comparable介面,用於按照結束時間非遞減排序
Time of Update: 2018-07-27
此類錯誤通常是編碼格式的問題 如果我們控制台輸入的字元是 BGK格式的 而 web傳入的是UTF-8 我們 toString()查看內容 表明上是看不出區別的 這就導致了相同字串 加密後得到的結果不同 如下面的小例子 import static org.apache.commons.codec.digest.DigestUtils.md5Hex; String text = "error606@qq.com|工工工|!@$%&1000";