Java JNI編譯小記

  一直都做Android開發,而且編譯JNI代碼都是用Google提供的NDK,今天做個J2SE平台的JNI,發現離開Android平台還多少不習慣了,編譯so庫都弄了半天,記下編譯命令,以備後用。編譯前提安裝JDK和gcc/g++環境,我用的是gcc。步驟如下:1.編譯Java原始碼javac FifoTest.java2. 產生*.H標頭檔javah FifoTest.java3.實現*.C檔案,如FifoTest.c# coding...4. 編譯*.c檔案產生

23種設計模式-Java

常見的Java設計模式有以下23種:建立型模式  1、Factory 方法(FactoryMethod):  定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化。Factory Method 使一個類的執行個體化延遲到其子類。  2、抽象原廠模式(Abstract Factory):提供一個建立一系列相關或相互依賴對象的介面,而無需指定它們具體的類。  3、建造模式(Builder):  將一個複雜物件的構建與它的表示分離,使同樣的構建過程可以建立不同的表示。 

設計模式之—簡單Factory 方法(StaticFactory )-Java實現

原廠模式一共分為三種,分別是:簡單原廠模式,Factory 方法模式和抽象原廠模式。先來說說簡單原廠模式,簡單原廠模式一般不在實際中是用,因為它的擴充性不好,例如我們添加一個新的類,而需要去更改現有的類,為了一個新需求去更改原有類的代碼,那麼就有可能引入新的bug,如果是新加一個類,而不改變原有類這就可以非常有效地降低引入新bug的風險,因此,擴充性是非常重要的。下面是一個簡單原廠模式的例子:public interface Person{        }  public class

管好你的資料—java多線程加鎖

在並發環境下,如果同步不適當,後果是很嚴重的:會造成資料混亂和爭用情況,導致程式崩潰,產生不正確的結果,或者是不可預計的運行。另一方面,不當或過度地使用同步會導致其它問題,比如效能很差和死結。當然,效能差雖然不如資料混亂那麼嚴重,但也是一個嚴重的問題,因此同樣不可忽視。解決共用資源衝突問題時,可以考慮使用鎖機制。Java鎖Java為我們提供了synchronized 關鍵字,它包括兩種用法:synchronized 方法和 synchronized 塊。        synchronized

計算大數階乘–Java版

    本文給出Java語言版的計算大數階乘的程式,本文使用動態數組的儲存計算過程的中間結果和最終結果。每個short型數組元素表示4位10進位數。順便說一下,這是我的第一個Java程式。import java.util.Scanner;/** * * @author liangbch@263.net */public class Fac { public Fac() { } public static void Calc(int n) {

java開發,我自己的FAQ之001

FAQ001.------------------------------------------------------------------------Q:JBuilderX中的WebModule自動打包成WAR檔案,不能把*.swf、*.doc、*.css檔案打包進   去?-------------------------------------------------------------------------------A:可以手工在相應目錄下執行“ jar cvf 

Java Web Start 執行個體講解

 1 建立一個java project,命名為:webstart(名字可能隨便取),加入程式:package jws;import javax.swing.*;public class HelloWorld {private JFrame jFrame;private JPanel jPanel;private JLabel label;public HelloWorld() {jFrame = new JFrame("HelloWorld Test Frame");label = new

使用java從認證中讀取私密金鑰

import java.io.FileInputStream;   import java.io.IOException;   import java.io.InputStream;   import java.security.InvalidKeyException;   import java.security.KeyStore;   import java.security.KeyStoreException;   import

java設計模式學習系列之一:單例模式(Singleton)

單例模式(Singleton)    1.介紹:也叫單子模式,是一種常用的軟體設計模式。在應用這個模式時,單例對象的類必須保證只有一個執行個體存在。許多時候整個系統只需要擁有一個的全域對象,這樣有利於我們協調系統整體的行為。比如在某個伺服器程式中,該伺服器的配置資訊存放在一個檔案中,這些配置資料由一個單例對象統一讀取,然後服務進程中的其他對象再通過這個單例對象擷取這些配置資訊。這種方式簡化了在複雜環境下的組態管理。   

準備轉向ubuntu下做Java開發

一直都是Windows下做Java開發,沒辦法,很多東西離不開它。把以前掌握的一點linux知道都給忘沒了。恰巧有同事下載並燒錄了一ubuntu10.04的光碟片,於是乎,把公司辦公用電腦的win7格掉,安上ubuntu,花了一點時間把Java開發環境配置好。感覺ubuntu相當好用啊。上張: 以後就用它了。 不知道Thinkpad T60

《Java程式設計標準教程》原創書籍出版了。請大家支援!!!

本人編著的《Java程式設計標準教程》已由人民郵電出版社出版發行了。封面(無法上傳圖片,只好找個連結): 購買連結: china-pub:http://www.china-pub.com/49806人郵官網:http://www.ptpress.com.cn/Book.aspx?id=18091 說明:本書是Sun公司SCJP認證考試的指定用書。全書共13章。第1章全面系統地介紹了Java語言的發展史、特性、Java開發環境的搭建、Java程式的編寫編譯和運行過程以及Java開發常用IDE工具的

Java語言學習筆記

Java 語言筆記Java SE:Java標準版,用於案頭級應用和資料庫開發;Java EE:Java企業版,用於企業級開發;Java ME:Java手持版,用於嵌入式和移動式開發。 Chapt 11)      Java區分大小寫;2)      Java編譯器時有副檔名,運行程式時沒有副檔名;3)      來源程式裡的類名要和檔案名稱相同。 Chapt 21)      Java裡面沒有sizeof()操作符;2)      Java標識符要以英文字母開頭,由英文字母和數字組成;3)   

Linux環境java中文亂碼解決方案

 在linux下java程式顯示中文亂碼是個不大不小的問題。最近正使用NetBeans進行RCP應用開發,中文顯示一直是方塊,於是找到了一種簡單的方法可以修複亂碼問題。以下方法在Ubuntu 6.06LTS下測試通過,假設使用者的jre路徑為 /opt/jdk1.5.0_09/jrecd /opt/jdk1.5.0_09/jre/lib/fonts/sudo mkdir fallback將C:/WINDOWS/Fonts/simsun.ttc拷貝到

設計模式之—Factory 方法模式(FactoryMethod)-Java實現

Factory 方法(FactoryMethod):定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化。Factory Method 使一個類的執行個體化延遲到其子類。Factory 方法模式,這個方法有效地解決了簡單原廠模式擴充性差的問題,想要進行擴充,只需要新加類就行,不需要更改原有類,下面是一個例子:public interface Person{        }  public class Student implements Person{  }  public class

java多線程之生產者消費者隊列

java多線程一般都會講消費者-生產者模型生產者與消費者模型中,要保證以下幾點:1 同一時間內只能有一個生產者生產2 同一時間內只能有一個消費者消費3 生產者生產的同時消費者不能消費4 訊息佇列滿時生產者不能繼續生產5 訊息佇列空時消費者不能繼續消費----------------------------------------------------Message類public class Message { public static int id;public String

插入排序————Java實現

插入排序(InsertSort)插入排序通過把序列中的值插入一個已經排序好的序列中,直到該序列的結束。插入排序是對冒泡排序的改進。它比冒泡排序快2倍。一般不用在資料大於1000的場合下使用插入排序,或者重複排序超過200資料項目的序列。1、思想每次選擇一個元素K插入到之前已排好序的部分A[1…i]中,插入過程中K依次由後向前與A[1…i]中的元素進行比較。若發現發現A[x]>=K,則將K插入到A[x]的後面,插入前需要移動元素2、演算法時間複雜度最好的情況下:正序有序(從小到大),這樣只需

SleepSort演算法——Java實現

最近在網上看到一則SleepSort演算法(用Shell指令碼寫的):代碼如下:---------------------------------------------------------------------------- #!/bin/bashfunction f() {    sleep "$1"    echo "$1"}while [ -n "$1" ]do    f "$1" &    shiftdonewait----------------------------

快速排序–Java實現

快速排序(QuickSort)1、思想快速排序是一個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。(1) 如果不多於1個資料,直接返回。(2) 一般選擇序列最左邊的值作為支點資料。(3) 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。(4) 對兩邊利用遞迴排序數列。快速排序比大部分排序演算法都要快。儘管我們可以在某些特殊的情況下寫出比快速排序快的演算法,但是就通常情況而言,沒有比它更快的了。快速排序是遞迴的,對於記憶

冒泡排序法—-Java實現

冒泡排序(BubbleSort)1、思想通過無序區中相鄰記錄關鍵字間的比較和位置的交換,使關鍵字最小的記錄如氣泡一般逐漸往上“漂浮”直至“水面”。  2、時間複雜度  最好情況下:正序有序,則只需要比較n次。故,為O(n)  最壞情況下:  逆序有序,則需要比較(n-1)+(n-2)+……+1,故,為O(N*N) 3、穩定性  排序過程中只交換相鄰兩個元素的位置。因此,當兩個數相等時,是沒必要交換兩個數的位置的。所以,它們的相對位置並沒有改變,冒泡排序演算法是穩定的! 4、實現 public

歸併排序————Java實現

歸併排序(MergeSort)1、思想:    多次將兩個或兩個以上的有序表合并成一個新的有序表。 2、演算法時間複雜度    最好的情況下:一趟歸併需要n次,總共需要logN次,因此為O(N*logN)    最壞的情況下,接近於平均情況下,為O(N*logN)    說明:對長度為n的檔案,需進行logN 趟二路歸併,每趟歸併的時間為O(n),故其時間複雜度無論是在最好情況下還是在最壞情況下均是O(nlgn)。3、穩定性  

總頁數: 4058 1 .... 684 685 686 687 688 .... 4058 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.