Time of Update: 2018-07-26
自訂註解: 使用@interface自訂註解時,自動繼承了java.lang.annotation.Annotation介面,由編譯器自動完成其他細節。在定義註解時,不能繼承其他的註解或介面。@interface用來聲明一個註解,其中的每一個方法實際上是聲明了一個配置參數。方法的名稱就是參數的名稱,傳回值類型就是參數的類型(傳回值類型只能是基本類型、Class、String、enum)。可以通過default來聲明參數的預設值。 定義註解格式: public @
Time of Update: 2018-07-26
<<1(左移1位)相當於乘以2;>>1(右移1位) 相當於除以2 public static void main(String[] args) { // << : 左移運算子, << 1,相當於乘以2 // >> : 右移運算子, >> 1,相當於除以2 // >>> : 無符號右移,忽略符號位,空位都以0補齊 int a = 10;
Time of Update: 2018-07-26
說資料持久化,初學者可能還不太懂;但要說把資料儲存到檔案,這誰都懂了。為什麼說持久化就是把資料儲存到檔案。持久化指的就是當程式退出後,其中的資料能夠保留下來,供程式再次啟動並執行時候使用。這些資料保留在什麼地方最好呢。當然是檔案裡。 儲存到檔案是資料持久化最常用的方式,除此之外,還可以把資料儲存到資料庫,或者發送到其它機器,這都是持久化。不過儲存在檔案是最簡單的方式。具體來說就是:選取需要儲存的資料,按照一定的格式組織起來,然後寫入檔案。下面是一個簡單的例子:
Time of Update: 2018-07-26
以前在開發時只知道依靠資料庫事務來保證程式關閉時資料的完整性。 但有些時候一個業務上要求的原子操作,不一定只包括資料庫,比如外部介面或者訊息佇列。此時資料庫事務就無能為力了。 這時我們可以依靠java提供的一個工具方法:java.lang.Runtime.addShutdownHook(Thread hook)addShutdownHook方法可以加入一個鉤子,在程式退出時觸發該鉤子。 (退出是指ctrl+c或者kill -15,但如果用kill -9
Time of Update: 2018-07-26
1、基本思想: 希爾排序也成為“縮小增量排序”,其基本原理是,現將待排序的數組元素分成多個子序列,使得每個子序列的元素個數相對較少,然後對各個子序列分別進行直接插入排序,待整個待排序列“基本有序”後,最後在對所有元素進行一次直接插入排序。因此,我們要採用跳躍分割的策略:將相距某個“增量”的記錄組成一個子序列,這樣才能保證在子序列內分別進行直接插入排序後得到的結果是基本有序而不是局部有序。希爾排序是對直接插入排序演算法的最佳化和升級。
Time of Update: 2018-07-26
2.String類對象的常用操作及方法 在Java中,String類包含有50多個方法來實現字串的各種操作,以下介紹一些我們需要經常使用的方法. (1)字串的串連 public String concat(String str) 該方法的參數為一個String類對象,作用是將參數中的字串str串連到原來字串的後面. (2)求字串的長度 public int length() 返回字串的長度,這裡的長度指的是字串中Unicode字元的數目.
Time of Update: 2018-07-26
Java-線程池專題 (美團面試題) 去美團面試,問到了什麼是線程池,如何使用,為什麼要用,以下做個總結 1、什麼是線程池: java.util.concurrent.Executors提供了一個 java.util.concurrent.Executor介面的實現用於建立線程池
Time of Update: 2018-07-26
有沒有人和我一樣好奇自己寫的java程式是經過了哪些過程,最後以可視化的介面呈現給我們的呢。如果你現在也不知道,或者不是很清楚,那麼我們可以一起學習一下。 一、副檔名 記得剛開始學習敲代碼的時候,時常有人告訴我們寫完了代碼要Control+S(儲存一下),然後當我們查看所寫的內容所在的檔案的格式時,會發現是.java的副檔名,不同於我們平時見到的.txt或者.exe等,為什麼檔案的副檔名不同於平時接觸到的呢,還有.java檔案編譯後的.class副檔名。 其實:
Time of Update: 2018-07-26
hotspot虛擬機器的收集器之新生代收集器 hotspot垃圾收集器主要有七種:如圖所示: 圖中上面部分是新生代的垃圾收集器,下面部分表示老年代的垃圾收集器,兩個垃圾收集器的之間的連線表示兩個收集器搭配使用。 serial收集器 serial收集器是最基本發展最悠久的收集器。serial收集器是一個單線程的收集器,但他的“單線程”的意義並不僅僅只會使用一個cpu或者一條線程去完成垃圾收集工作,更重要的是在他進行垃圾收集時,必須暫停其他所有的背景工作執行緒,直到收集結束。
Time of Update: 2018-07-26
題目:按照指定的長寬和輸出方向,從外向內列印一個從 1 開始的數字矩陣,矩陣的開始位置在左上方。如下圖 代碼及注釋如下: public class NumberMatrix { public static void main(String[] args) { int width = 25; int height = 12; boolean clockwise = false; outputMatrix(width,
Time of Update: 2018-07-26
package com; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; /** * 玩家基本資料類 * @author lzq31
Time of Update: 2018-07-26
定義 裝飾者模式:在不改變原類檔案以及不使用繼承的情況下,動態地將責任附加到對象上,從而實現動態拓展一個對象的功能。它是通過建立一個封裝對象,也就是裝飾來包裹真實的對象。 設計原則 要使用裝飾者模式,需要滿足以下設計原則: 1、多用組合,少用繼承 2、開放-關閉原則:類應該對拓展開放,對修改關閉 UML類圖 我們先來看看裝飾者模式的類圖,再來詳細講述: 由上自下:
Time of Update: 2018-07-26
1、實現代碼 import java.util.HashMap;import java.util.concurrent.ConcurrentHashMap;public class LocalCache { private LocalCache() { } // 防止在外部執行個體化 // 使用volatile延遲初始化,防止編譯器重排序 private static volatile LocalCache instance; public
Time of Update: 2018-07-26
Java代碼 import java.util.Date; public class Test extends Date{ public static void main(String[] args) {
Time of Update: 2018-07-26
一、java web中涉及的編解碼 我們都知道對於中文來說,有I/O的地方就會涉及編碼,前面已經提到了I/O操作會引起編碼,而大部分I/O引起的亂碼都是網路I/O,因為現在幾乎所有的應用程式都涉及網路操作,而資料經過網路傳輸都是以位元組為單位的,所以所有的資料都必須能夠被序列化為位元組。在java中資料要被序列化必須繼承Serializable介面。 這裡有一個問題,你是否認真考慮過一段文本它的實際大小應該怎麼計算,我曾經碰到過一個問題,就是想辦法壓縮Cookie大小,
Time of Update: 2018-07-26
Math類中提供的三個與取整有關的方法: 第一個: ceil ceil的意思就是: 天花板的意思;該方法表示的是向上取整Math.ceil(11.3)的值是12 ; Math.ceil.(-11.6)的結果是-11; 第二個是: floor 首先他的英文含義就是地板的含義,該方法就表示的是向下取整, Math.floor(11.6)的結果就是11 ; Math.floor(-11.4);的結果就是-12 第三個是: round 他表示的是四捨五入,演算法為 Math.
Time of Update: 2018-07-26
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; //
Time of Update: 2018-07-26
[java] view plain copy /** * Java得到一個整數的絕對值,不使用任何判斷和比較語句,包括API. <br> * 1、不得使用任何API,如Math.abs()等。<br>
Time of Update: 2018-07-26
Spark問題[一]:java.lang.ClassNotFoundException: org.apache.spark.launcher.Main 在開發中,需要使用crontab調度Shell指令碼,來執行Spark任務。手動執行指令碼沒有問題,但是放到crontab中執行,就報以下錯誤: Exception in thread "main" java.lang.NoClassDefFoundError:
Time of Update: 2018-07-26
項目要求 輸進球的個數和槽的個數,豆豆機中釘子按第幾行則有幾顆釘子排列,行數為(槽-1)。 列印出每個球的滾動方向,並表現出各個槽中球的分布情況。 代碼如下 import java.util.Arrays;import java.util.Scanner;public class BeanMachine {static Scanner input = new Scanner(System.in);public static void main(String[]