Time of Update: 2018-07-27
點擊進入_更多_Java千百問 1、is-a,has-a,like-a是什麼 在物件導向設計的領域裡,有若干種設計思路,主要有如下三種: is-a、has-a、like-a java中在類、介面、抽象類別中有很多體現。 瞭解java看這裡:什麼是Java 瞭解類和對象看這裡:類、對象到底有什麼秘密 瞭解介面和抽象類別看這裡:介面和抽象類別有什麼區別 2、is-a是什麼 is-a,顧名思義,是一個,代表繼承關係。 如果A is-a B,那麼B就是A的父類。
Time of Update: 2018-07-27
概述: 在java內建API中操作線程所用到的類為Thread。建立線程一般有兩種方式, 繼承Thread方式 實現Runnable方式,並以runnable作為target建立Thread 在Android中的耗時任務一般都需要另開線程來執行,常常需要用線程池來管理這些線程,實現控制線程數,重用,控制執行和取消等功能。 Java線程池 Java提供了四種線程池 newCachedThreadPool :
Time of Update: 2018-07-27
程式計數器:可以看做當前線程運行所執行的位元組碼的行號指標,在虛擬機器的概念性模型中,位元組碼解譯器工作時就是 通過改變這個計數器的值來選取下一條需要執行的位元組碼指令。由於JVM多線程是通過線程輪流切換並分配處理器執行時間 的方式來實現的,在任何一個確定的時刻,一個處理器只會執行一個線程中的指令。為了使線程切換後能夠恢複到正確的 位置,程式計數器必須是線程私人的,隔離儲存區
Time of Update: 2018-07-27
java的學習中斷了半個多月了,今天算是接著學了。今天學習了內部類和異常,下面是今天的總結。 首先來看內部類。 在一個類中定義另外一個類,這個類就叫做內部類或者內建類(inner class)。 內部類可以讓我們將邏輯上的相關的一組類組織起來,並由外部類(outer class)來控制內部類的可見度。 當我們建立了一個inner class時,其對象就擁有了與外部類對象之間的一種關係,這是通過一個特殊的this
Time of Update: 2018-07-27
概念區分: java.util.Collection和java.util.Collections區別: 1、 java.util.Collection 是一個集合介面(集合類的一個頂級介面)。它提供了對集合對象進行基本操作的通用介面方法。Collection介面在Java 類庫中有很多具體的實現。Collection介面的意義是為各種具體的集合提供了最大化的統一操作方式,其直接繼承介面有List與Set。 2、java.util.Collections
Time of Update: 2018-07-27
情境: 把項目中要用到的class檔案和jar放到D:\loader\terry\codex目錄下,如何讓項目通過代碼的方式實現載入和使用這些類呢。 方案:通過URLClassLoader構造D:\loader\terry\codex這個路徑下的類載入器,在通過Java反射機制進行執行個體化使用這些類 例子:
Time of Update: 2018-07-27
本文轉自:http://ifeve.com/java-fork-join-framework/#more-35602 譯序 Doug Lea 大神關於Java 7引入的他寫的Fork/Join架構的論文。 響應式編程(Reactive Programming /
Time of Update: 2018-07-27
在Java多線程應用中,隊列的使用率很高,多數生產消費模型的首選資料結構就是隊列。Java提供的安全執行緒的Queue可以分為阻塞隊列和非阻塞隊列,其中阻塞隊列的典型例子是BlockingQueue,非阻塞隊列的典型例子是ConcurrentLinkedQueue,在實際應用中要根據實際需要選用阻塞隊列或者非阻塞隊列。 註:什麼叫安全執行緒。這個首先要明確。安全執行緒就是說多線程訪問同一代碼,不會產生不確定的結果。 LinkedBlockingQueue
Time of Update: 2018-07-27
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries 這是widows系統下搭建Hadoop開發環境,進行遠端偵錯才會出現的錯誤。 解決: 到
Time of Update: 2018-07-27
public static final String[] encodes = new String[] { "UTF-8", "GBK", "GB2312", "ISO-8859-1", "ISO-8859-2" }; public static void main(String[] args) throws Exception { // TODO
Time of Update: 2018-07-27
在編程中,我們通常在需要用到線程時會直接建立一個線程,這樣實現起來非常方便,但是同時也會帶來這樣一個問題: 如果需要大量並發的線程,每個線程建立後,執行時間很短的任務就結束線程,那麼這將會大大降低系統的運行效率,因為頻繁地建立和銷毀線程會浪費大量的時間和資源。 在Java中,我們可以通過使用線程池來避免這種情況。下面我們將從線程池核心類ThreadPoolExecutor類對Java線程池進行分析。 1. 線程池ThreadPoolExecutor類 1.1
Time of Update: 2018-07-27
instanceof其作用是用來判斷某對象是否為某個類或介面類型 。由於java語言的多態性使得可以用一個子類的執行個體賦值給一個父類的變數,但是在一些情況下需要判斷變數的原有類型,此時可以使用instanceof實現。範例程式碼如下: /** *定義Animal父類 */ class Animal{ } /** *定義Animal子類Dog */ class Dog extends Animal{
Time of Update: 2018-07-27
最近一直在整傳輸資料的事,當然一直在用json格式傳遞,自然就免不了資料之間格式的轉化,包括json轉java的bean對象,封裝解析map、list等。今天就大概記錄一下這些方法,留待以後使用。 一、json 1.將json轉化為java對象 json串為: String s ={"id":"1","name":"shanxi","librays":[{"libraryid&
Time of Update: 2018-07-27
深入java並發Lock http://blog.csdn.net/zhaozhenzuo/article/details/37109015 Java並發編程:Lock http://www.importnew.com/18320.html 怎麼理解Condition http://ifeve.com/understand-condition/
Time of Update: 2018-07-27
簡單通過一個樣本來使用一下HDFS的Java介面。 package cn.zhoucy.Hadoop;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.URI;import
Time of Update: 2018-07-27
題目: 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為旋轉。 輸入一個遞增的排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小元素為1. 這道題最直觀的解法並不難,從頭到尾遍曆一次,我們就能找到最小的元素。這種思路的時間複雜度為O(n)。但是這個思路沒有利用輸入的旋轉數組的特性,肯定達不到面試官的要求。
Time of Update: 2018-07-27
我們繼續討論ThreadPoolExecutor線程池。上篇文章給出的最簡單的ThreadPoolExecutor線程池的使用方式中,我們只採用了ThreadPoolExecutor最簡單的一個建構函式: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,
Time of Update: 2018-07-27
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root 添加使用者:useradd -m 使用者名稱 然後設定密碼 passwd 使用者名稱 useradd -m admin passwd admin 修改檔案夾許可權 chown -R admin
Time of Update: 2018-07-27
import javax.ws.rs.Produces; /* * Produces.java * Created on September 15, 2006, 2:40 PM */package javax.ws.rs;import java.lang.annotation.ElementType;import java.lang.annotation.Inherited;import java.lang.annotation.Retention;import
Time of Update: 2018-07-27
如何正確停止線程 關於如何正確停止線程,這篇文章(how to stop thread)給出了一個很好的答案, 總結起來就下面3點(在停止線程時): 1. 使用violate boolean變數來標識線程是否停止 2. 停止線程時,需要調用停止線程的interrupt()方法,因為線程有可能在wait()或sleep(), 提高停止線程的即時性 3. 對於blocking IO的處理,盡量使用InterruptibleChannel來代替blocking