真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

cf實現(xiàn)java代碼 穿越火線編程代碼

如何用java編程實現(xiàn)生成csr

public java.security.cert.Certificate certToX509Cert(X509Certificate cert) {

為桓臺等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及桓臺網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、桓臺網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

try {

CertificateFactory cf = new CertificateFactory();

InputStream is = new ByteArrayInputStream(cert.getEncoded());

Collection coll = cf.engineGenerateCertificates(is);

java.security.cert.Certificate jcrt = null;

Iterator it = coll.iterator();

if (it.hasNext()) {

jcrt = (java.security.cert.Certificate) it.next();

return jcrt;

}

} catch (CertificateEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (CertificateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

public int storeP12(String caCertPath, String certPath, String pemPath, String pemPassword,

String p12Path, String p12Password) {

KeyPair kp;

try {

kp = getPrivateKey(pemPath, pemPassword);

X509Certificate caCert = getCertificate(caCertPath);

X509Certificate cert = getCertificate(certPath);

java.security.cert.Certificate[] chain = new java.security.cert.Certificate[2];

chain[0] = certToX509Cert(cert);

chain[1] = certToX509Cert(caCert);

KeyStore ks = KeyStore.getInstance("PKCS12", "BC");

ks.load(null, null);

ks.setKeyEntry(parseCertDN(cert.getSubjectDN().getName(), "CN"),

kp.getPrivate(), null, chain);

FileOutputStream fOut = new FileOutputStream(p12Path);

ks.store(fOut, p12Password.toCharArray());

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return 0;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

}

}

blog.csdn點虐 /jinhill/article/details/17612273

Java中的comparator 怎么使用Collection.max()求出最大值?

java泛型是1.5引進(jìn)的一個新概念.

本題對于"? super T"和"? extends T",我從書上摘個經(jīng)典的例子給你看看,如果不能理解,那么你就參考以下書籍慢慢體會,循序漸進(jìn)!

"? super T"和"? extends T",都是java泛型通配符,而用法又有區(qū)別,

還有super 和extends 不是java類關(guān)系數(shù)御中的超類和繼承的意思,他是通配符的下限和上限限制.

下面看一個通配符得高級用法:

在這一部分,我們來考慮一些通配符得高級用法。我們已經(jīng)看到了上限通配符在從一個數(shù)據(jù)結(jié)構(gòu)中進(jìn)行讀取的幾個例子。現(xiàn)在考慮相反的情況,一個只寫的數(shù)據(jù)結(jié)構(gòu)。

接口Sink是這種情況的一個簡單例子。

interface SinkT {

void flush(T t);

}

我們可以想象他被如下面的代碼一樣使用。方法writeAll() 被設(shè)計來把集合coll的所有元素flush到sink snk,并且返回最后一個flush的元素。

public static T T writeAll(CollectionT coll, SinkT snk) {

T last = null;

for (T t : coll) {

last = t;

snk.flush(last);

}

return last;

}

SinkObject s;

CollectionString cs;

String str = writeAll(cs, s); // 非法的調(diào)用!!

像上面所寫,writeAll() 的調(diào)用是非法的,因為沒有有效的類型參數(shù)可以被推斷出來。String 或 Object都不是T的合適的類型,因為Collection的元素和 Sink的元素必須是同樣的類型。

我們可以解決這個問題,通過使用通配符來修改writeAll()的方法簽名,如下:

T T writeAll(Collection? extends T coll, SinkT snk)

String str = writeAll(cs, s); //可以調(diào)用但是返回值類型錯誤

這個調(diào)用現(xiàn)在是合法的,但是賦值產(chǎn)生錯誤,因為推斷出的返回值類型是 Object因為T 匹配了Sink的類型,Object。

解決方案是使用一種我們還沒有見過的有限制的通配符:有下限的通配符。語法 ? super T 表示T的一個未知的父類(或者是T自己)。這跟我們用? extends T 表示T的一個未知的子類是對應(yīng)的。

T T writeAll(CollectionT coll, Sink? super T snk)

String str = writeAll(cs, s); // YES!!!

使用這個語法,這個調(diào)用是合法的,推斷出來的T是String,正是我們想要的。

現(xiàn)在讓我們看一個更現(xiàn)實的例子。一個 java.util.TreeSetE 代表一個有序的元素是E類型的樹。創(chuàng)建一個TreeSet的一個方法是傳遞一個 Comparator 對象給構(gòu)造函數(shù)。這個Comparator將會用來按照需要對TreeSet進(jìn)行排序。

TreeSet(ComparatorE c)

Comparator 接口是核心:

interface ComparatorT

假定我們要創(chuàng)建一個 TreeSetString 并傳遞一個合適的 Comparator,我們需要傳一個能比較String的Comparator。這可以是一個 ComparatorString,也可以是一個 ComparatorObject。然而我們不能用ComparatorObject來調(diào)用上面的構(gòu)造函數(shù)。我們可以使用一個有下限的通配符來得到我們需要的靈活性:

TreeSet(Comparator? super E c)

這允許任何可用的Comparator被傳遞進(jìn)去。

作為使用下限友此通配符最終的例子,讓我們來看看方法 Collections.max(),它返回一個集合中的最大的元素。

現(xiàn)在,為了讓max()能工作,傳進(jìn)來的集合中的所有元素必須實現(xiàn) Comparatable接口。而且,他們必須薯告巖都能夠被彼此比較(all be comparable to each other)。第一個嘗試是:

public static T extends ComparableT T max(CollectionT coll)

就是說,方法的參數(shù)是某一個能和自己進(jìn)行比較的T的集合。這限制太嚴(yán)格了。

為什么?考慮一個能和任何對象進(jìn)行比較的類型:

class Foo implements ComparableObject ...

CollectionFoo cf = ...;

Collections.max(cf); // 應(yīng)該能工作

cf 中的每個元素都可以和每個cf中的其他元素進(jìn)行比較,因為每個這樣的元素都是一個Foo,它可以和任意的對象進(jìn)行比較,也可以和另一個Foo進(jìn)行比較。

但是,使用上面的方法簽名,我們發(fā)現(xiàn)這個調(diào)用被拒絕。推斷出來的類型必須是Foo,但是Foo沒有實現(xiàn)接口 ComparableFoo。

T 精確的(exactly)和自己能比較是不需要的。所需要的是 T能夠和它的父類中的一個進(jìn)行比較,這導(dǎo)出:(注:Collections.max()的實際方法簽名更復(fù)雜,我們在第10部分再討論。)

public static T extends Comparable? super T T max(CollectionT coll)

這個推論對大多數(shù)想讓 Comparable 對任意類型生效的用法中都有效:你總是應(yīng)該使用 Comparable? super T。

總之,如果你有一個只使用類型參數(shù)T作為參數(shù)的API,它的使用應(yīng)該利用下限通配符( ? super T )的好處。相反的,如果API只返回T,你應(yīng)該使用上限通配符( ? extends T )來給你的客戶端更大的靈活性。

(原文:This reasoning applies to almost any usage of Comparable that is intended to work for arbitrary types: You always want to use Comparable? super T.

In general, if you have an API that only uses a type parameter T as an argument, its uses should take advantage of lower bounded wildcards (? super T). Conversely, if the API only returns T, you'll give your clients more flexibility by using upper bounded wildcards (? extends T). )。

如果你想比較深刻的了解java泛型那么

建議你看看Java1.5泛型指南

中文鏈接地址:

英文pdf格式地址:

如何用Java實現(xiàn)短信自動發(fā)送功能?

Java實現(xiàn)短信自動發(fā)送功能主要是用httpclient實現(xiàn)的,要有發(fā)短信的端口。

1、硬件設(shè)備是一個3G網(wǎng)卡;

2、軟件方面需要sun提過的java底層通信common包;

3、此外還需要第三方庫SMSLib,這個是開源項目,主要用于實現(xiàn)java發(fā)短信的功能;

主要代碼如下:

HttpClient?client?=?new?HttpClient();

PostMethod?post?=?new?PostMethod(

"");

post.addRequestHeader("Content-Type",

"application/x-www-form-urlencoded;charset=utf-8");//?在頭文件中設(shè)置轉(zhuǎn)碼

NameValuePair[]?data?=?{?new?NameValuePair("sname",?"*****"),

new?NameValuePair("spwd",?"*****"),

new?NameValuePair("scorpid",?"*****"),

new?NameValuePair("sprdid",?"*****"),

new?NameValuePair("sdst",?"*****"),

new?NameValuePair("smsg",?"*****")?};

post.setRequestBody(data);

client.executeMethod(post);

Header[]?headers?=?post.getResponseHeaders();

int?statusCode?=?post.getStatusCode();

System.out.println("statusCode:"?+?statusCode);

for?(Header?h?:?headers)?{

System.out.println(h.toString());

}

String?result?=?new?String(post.getResponseBodyAsString().getBytes("utf-8"));

System.out.println(result);

post.releaseConnection();

Java源程序(.java文件)——java字節(jié)碼文件(.class文件)——由解釋執(zhí)行器(java.exe)將字節(jié)碼文件加載到j(luò)ava虛擬機(jī)(jvm)——字節(jié)碼文件(.class)就會在java虛擬機(jī)中執(zhí)行。

Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z察碧簡言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程? ?。

Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨敗褲立與可移慧蘆植性、多線程、動態(tài)性等特點? 。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等


網(wǎng)頁題目:cf實現(xiàn)java代碼 穿越火線編程代碼
本文鏈接:http://weahome.cn/article/ddhdois.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部