java壓
① java中怎樣做算是壓制異常呢
try{
所有代碼
}catch(Exceptione){
//所有的異常都不管,就算壓制。
}
最好還是寫出細節異常的處理方案。
② 怎麼將JAVA程序壓成JAR文件
首先當然是寫好自己的文件(e.g: MyJava.java),然後當然是要成功編譯了生成(MyJava.class)文件了。
假設生成的文件放在file目錄下(可能包含其他很多相關的.class或者圖片等等):
准備工作:
打開文本文件 其內容為:Main-Class:MyJava
如果你的java文件有包含在某個package內,那麼就應該是:Main-Class:packetName.MyJava
保存為mainfest.mf文件
接著:
「cmd」進入到當前file目錄:
執行: file>jar cvfm MyJava.jar manifest.mf .
其中MyJava.jar中的MyJava是你要的jar的名字。mainfest.mf後面的點代表當前文件
這樣就完成了打包任務了。
但是java文件裡面要包含main函數才可以雙擊執行(java -jar MyJava.jar)。!
③ java 如何壓縮文件
樓主是說解壓了的文件大小隻有33.1MB,但是卻佔了51.2MB的空間嗎?
如果是這個意思的話,那我要專告訴樓屬主,首先這個問題和JAVA沒有關系,根據你的截圖,可以斷定你用的是FAT32文件系統。這只是文件存儲的形式,很正常。
簡單的說,磁碟存儲數據的最小單位是簇,比方說你的簇大小為128K,一個簇只能存放一個文件,然後你的一個文件只有16K,它佔了這個簇,然後還有112K沒有用,是吧。但是那112K就不能再存放其它文件了。如果要存放其它文件,就要佔另一個簇。
樓主,懂了吧,這跟簇的大小有關,但是也不是簇越小越好,簇越小,讀寫性能都有所下降。這是正常現象。如果你非覺得不舒服,那就用NTFS文件系統吧,把壓縮打開,就不會有這種情況了,希望對你有幫助
④ JAVA文件壓縮與解壓縮實踐
// 壓縮文件
public class ZipFileSample {
public static void main(String[] args ) {
try {
// Create an instance of ZipFile to read a zip file
// called sample.zip
ZipFile zip = new ZipFile(new File("sample.zip"));
// Here we start to iterate each entries inside
// sample.zip
for (Enumeration e = zip.entries(); e.hasMoreElements();) {
// Get ZipEntry which is a file or a directory
ZipEntry entry = (ZipEntry) e.nextElement();
// Get some information about the entry such as
// file name, its size.
System.out.println("File name: " + entry.getName() + "; size: " + entry.getSize() + "; compressed size: "
+ entry.getCompressedSize());
// Now we want to get the content of this entry.
// Get the InputStream, we read through the input
// stream until all the content is read.
InputStream is = zip.getInputStream(entry);
InputStreamReader isr = new InputStreamReader(is);
char[] buffer = new char[1024];
while (isr.read(buffer, 0, buffer.length) != -1) {
String s = new String(buffer);
// Here we just print out what is inside the
// buffer.
System.out.println(s.trim());
}
}
}
catch (ZipException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
⑤ java初學菜鳥求大神告知,何謂壓棧和彈棧,謝謝
其實,這不是一個java問題,這是一個數據結構的問題。請看下邊的博客,比我簡略的回答好上一萬倍。http://www.jb51.net/article/44645.htm
⑥ java中的壓縮原理是什麼
JRE就是一個壓縮文件,這跟WINRAR用來壓縮文件是一樣的,並不是文件變大了或變小了,只是所有的文件都壓在一個包下,看起來不會亂。壓縮包下的路徑一樣有用。 答案補充 由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟體就是把二進制信息中相同的字元串以特殊字元標記來達到壓縮的目的。對於成千上萬單調重復的0和1而言,與其一個一個定義000000…111…長長的一串,還不如告訴電腦:「從這個位置開始存儲1117個1」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須准確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟體(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。
⑦ 壓java協議的壓力怎麼分發客戶端
32位的抄WINDOWS應用程序,最大襲試用1.7G內存,更大的就沒轍了!
一個進程4Gb, 2Gb內核,2Gb數據區,換算成位元組的話,256MB核心內存,像SOCKET,句柄這些是不能進行頁面交換的,如果內存內存不足,就會發生系統假死等情況。
我估計是你的SGA區開的有點大了,改小一些會有改善,另外最好能用上應用伺服器的連接池,讓超過數量的請求排隊,保證系統可用性。
⑧ java 什麼演算法壓縮文件最小
有三種方式實現java壓縮:
1、jdk自帶的包java.util.zip.ZipOutputStream,不足之處,文件(夾)名稱帶中文時,出現亂碼問題,實現代碼如下:
/**
* 功能:把 sourceDir 目錄下的所有文件進行 zip 格式的壓縮,保存為指定 zip 文件
* @param sourceDir 如果是目錄,eg:D:\\MyEclipse\\first\\testFile,則壓縮目錄下所有文件;
* 如果是文件,eg:D:\\MyEclipse\\first\\testFile\\aa.zip,則只壓縮本文件
* @param zipFile 最後壓縮的文件路徑和名稱,eg:D:\\MyEclipse\\first\\testFile\\aa.zip
*/
public File doZip(String sourceDir, String zipFilePath) throws IOException {
File file = new File(sourceDir);
File zipFile = new File(zipFilePath);
ZipOutputStream zos = null;
try {
// 創建寫出流操作
OutputStream os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
zos = new ZipOutputStream(bos);
String basePath = null;
// 獲取目錄
if(file.isDirectory()) {
basePath = file.getPath();
}else {
basePath = file.getParent();
}
zipFile(file, basePath, zos);
}finally {
if(zos != null) {
zos.closeEntry();
zos.close();
}
}
return zipFile;
}
/**
* @param source 源文件
* @param basePath
* @param zos
*/
private void zipFile(File source, String basePath, ZipOutputStream zos)
throws IOException {
File[] files = null;
if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}
InputStream is = null;
String pathName;
byte[] buf = new byte[1024];
int length = 0;
try{
for(File file : files) {
if(file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1) + "/";
zos.putNextEntry(new ZipEntry(pathName));
zipFile(file, basePath, zos);
}else {
pathName = file.getPath().substring(basePath.length() + 1);
is = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry(new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
}
}
}finally {
if(is != null) {
is.close();
}
}
}
2、使用org.apache.tools.zip.ZipOutputStream,代碼如下,
package net.szh.zip;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.CRC32;
import java.util.zip.CheckedOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipCompressor {
static final int BUFFER = 8192;
private File zipFile;
public ZipCompressor(String pathName) {
zipFile = new File(pathName);
}
public void compress(String srcPathName) {
File file = new File(srcPathName);
if (!file.exists())
throw new RuntimeException(srcPathName + "不存在!");
try {
FileOutputStream fileOutputStream = new FileOutputStream(zipFile);
CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
new CRC32());
ZipOutputStream out = new ZipOutputStream(cos);
String basedir = "";
compress(file, out, basedir);
out.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private void compress(File file, ZipOutputStream out, String basedir) {
/* 判斷是目錄還是文件 */
if (file.isDirectory()) {
System.out.println("壓縮:" + basedir + file.getName());
this.compressDirectory(file, out, basedir);
} else {
System.out.println("壓縮:" + basedir + file.getName());
this.compressFile(file, out, basedir);
}
}
/** 壓縮一個目錄 */
private void compressDirectory(File dir, ZipOutputStream out, String basedir) {
if (!dir.exists())
return;
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
/* 遞歸 */
compress(files[i], out, basedir + dir.getName() + "/");
}
}
/** 壓縮一個文件 */
private void compressFile(File file, ZipOutputStream out, String basedir) {
if (!file.exists()) {
return;
}
try {
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(file));
ZipEntry entry = new ZipEntry(basedir + file.getName());
out.putNextEntry(entry);
int count;
byte data[] = new byte[BUFFER];
while ((count = bis.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
bis.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
3、可以用ant中的org.apache.tools.ant.taskdefs.Zip來實現,更加簡單。
package net.szh.zip;
import java.io.File;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;
public class ZipCompressorByAnt {
private File zipFile;
public ZipCompressorByAnt(String pathName) {
zipFile = new File(pathName);
}
public void compress(String srcPathName) {
File srcdir = new File(srcPathName);
if (!srcdir.exists())
throw new RuntimeException(srcPathName + "不存在!");
Project prj = new Project();
Zip zip = new Zip();
zip.setProject(prj);
zip.setDestFile(zipFile);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
fileSet.setDir(srcdir);
//fileSet.setIncludes("**/*.java"); 包括哪些文件或文件夾 eg:zip.setIncludes("*.java");
//fileSet.setExcludes(...); 排除哪些文件或文件夾
zip.addFileset(fileSet);
zip.execute();
}
}
測試一下
package net.szh.zip;
public class TestZip {
public static void main(String[] args) {
ZipCompressor zc = new ZipCompressor("E:\\szhzip.zip");
zc.compress("E:\\test");
ZipCompressorByAnt zca = new ZipCompressorByAnt("E:\\szhzipant.zip");
zca.compress("E:\\test");
}
}
⑨ JAVA如何寫一個純並發的壓力測試
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.net.HttpURLConnection;
importjava.net.URL;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;
importjava.util.concurrent.Semaphore;
publicclassConcurrentTest{
privatestaticintthread_num=200;
privatestaticintclient_num=460;
privatestaticMapkeywordMap=newHashMap();
static{
try{
InputStreamReaderisr=newInputStreamReader(newFileInputStream(
newFile("clicks.txt")),"GBK");
BufferedReaderbuffer=newBufferedReader(isr);
Stringline="";
while((line=buffer.readLine())!=null){
keywordMap.put(line.substring(0,line.lastIndexOf(":")),"");
}
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
intsize=keywordMap.size();
//TODOAuto-generatedmethodstub
ExecutorServiceexec=Executors.newCachedThreadPool();
//50個線程可以同時訪問
finalSemaphoresemp=newSemaphore(thread_num);
//模擬2000個客戶端訪問
for(intindex=0;index<client_num;index++){
finalintNO=index;
Runnablerun=newRunnable(){
publicvoidrun(){
try{
//獲取許可
semp.acquire();
System.out.println("Thread:"+NO);
Stringhost="http://10.99.23.42:7001/KMQueryCenter/query.do?";
Stringpara="method=getQueryResult&pageNum=1&pageSize=5&"
+"queryKeyWord="
+getRandomSearchKey(NO)
+"&questionID=-1&questionIdPath=-1&searchType=1"
+"&proLine=&proSeries=&proType="+NO;
System.out.println(host+para);
URLurl=newURL(host);//此處填寫供測試的url
HttpURLConnectionconnection=(HttpURLConnection)url
.openConnection();
//connection.setRequestMethod("POST");
//connection.setRequestProperty("Proxy-Connection",
//"Keep-Alive");
connection.setDoOutput(true);
connection.setDoInput(true);
PrintWriterout=newPrintWriter(connection
.getOutputStream());
out.print(para);
out.flush();
out.close();
BufferedReaderin=newBufferedReader(
newInputStreamReader(connection
.getInputStream()));
Stringline="";
Stringresult="";
while((line=in.readLine())!=null){
result+=line;
}
//System.out.println(result);
//Thread.sleep((long)(Math.random())*1000);
//釋放
System.out.println("第:"+NO+"個");
semp.release();
}catch(Exceptione){
e.printStackTrace();
}
}
};
exec.execute(run);
}
//退出線程池
exec.shutdown();
}
(finalintno){
Stringret="";
intsize=keywordMap.size();
//intwanna=(int)(Math.random())*(size-1);
ret=(keywordMap.entrySet().toArray())[no].toString();
ret=ret.substring(0,ret.lastIndexOf("="));
System.out.println(" "+ret);
returnret;
}
}