javac
用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath <路徑> 指定查找用戶類文件的位置
-cp <路徑> 指定查找用戶類文件的位置
-sourcepath <路徑> 指定查找輸入源文件的位置
-bootclasspath <路徑> 覆蓋引導類文件的位置
-extdirs <目錄> 覆蓋安裝的擴展目錄的位置
-endorseddirs <目錄> 覆蓋簽名的標准路徑的位置
-d <目錄> 指定存放生成的類文件的位置
使用-d參數,如類中定義了包,則編譯時會自動生成包, 如:javac -d . helloworld.java
表示在當前目錄下編譯Helloworld 類。.表示當前目錄,如helloword中定義有包,則在當前目錄下生成包:
-encoding <編碼> 指定源文件使用的字元編碼
-source <版本> 提供與指定版本的源兼容性
-target <版本> 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標准選項的提要
-X 輸出非標准選項的提要
-J<標志> 直接將 <標志> 傳遞給運行時系統
java
用法: java [-選項] 類 [參數...]
(執行一個類)
或者 java [-選項] -jar jar文件 [參數...]
(執行一個jar文件)
其中,可能的選項包括:
-client 選擇 "client" VM(ginger547:應該是指Virtual Machine)
-server 選擇 "server" VM
-hotspot 與 "client" VM同義 [不贊成]
默認情況的VM是client.
-cp <一個文件夾和zip/jar文件組成的類搜索路徑>
-classpath <一個文件夾和zip/jar文件組成的類搜索路徑>
一個由文件夾,JAR壓縮文件,或者ZIP壓縮文件組成的用來搜索類的列表
-D<名字>=<值>
設置一個系統屬性
-verbose[:class|gc|jni]
使詳細輸出變的可用
-version 列印產品版本然後退出
-version:<值>
只運行指定版本
-showversion 列印產品版本後繼續
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的時候,包含/排除用戶私人的JRE
-? -help 列印幫助信息
-X 列印非標准選項幫助
-ea[:<包名>...|:<類名>]
-enableassertions[:<包名>...|:<類名>]
使斷言可用
-da[:<包名>...|:<類名>]
-disableassertions[:<包名>...|:<類名>]
是斷言不可用
-esa | -enablesystemassertions
使系統級斷言可用
-dsa | -disablesystemassertions
使系統級斷言不可用
-agentlib:<庫名>[=<選項>]
載入本地代理庫<庫名>,例如. -agentlib:hprof
同時可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路徑名>[=<選項>]
通過全路徑名來載入本地代理庫
-javaagent:<jar路徑>[=<選項>]
載入Java編程語言代理,可查看 java.lang.instrument
❷ java中怎麼讓系統識別boolean
先上代碼:
public class TestBoolean {undefined
public staTIc void main(String[] args) {undefined
boolean isB = true;
boolean isA = false;
for(int i = 0 ; i 《 10 ;i++){undefined
if(!isBisA){undefined
System.out.println(「!BA」);
isB = !isB;
}else if(!isB !isA){undefined
System.out.println(「!B!A」);
isA = !isA;
}else if(isB isA){undefined
isB = !isB;
System.out.println(「BA」);
isA = !isA;
}else if(isB !isA){undefined
System.out.println(「B!A」);
isA = !isA;
isB = !isB;
}else{undefined
System.out.println(「nono」);
1、當看到if條件語句種有進行判斷的時候,先不管條件中初始化的賦值是true 或 false,
2、將if(isA) 、if(isB)看做true、將if(!isA)、if(!isB)看做false,
3、最後將初始化isA、isB的值對著true,false進行判斷。
❸ java中如何實現字元的識別
給你一段代碼,看是否看得懂。我自己寫得,可能不好。
/** *
* @param num
* @return<ul>
* 判斷結果:
* <li>true:整數
* <li>false:非整數
*/
public static boolean isInt(String num)
{
try {
Integer.parseInt(num);
} catch (NumberFormatException e) {
e.getMessage();
return false;
}
return true;
}
}
然後在需要的地方調用這個isInt方法就好了。這個是判斷是否可以轉換成數字。
我是這樣調用的
/* 總行數為空的時候*/
if (classTotalLineString == null || classTotalLineString.equals("")
|| !Utils.isInt(classTotalLineString)){
totalLineErrorFlag = true;
2:還可以用正則表達式
判斷是否是整數的正則表達式是:"^-?\\d+$"//整數
正整數是這個:"^[0-9]*[1-9][0-9]*$"//正整數
在需要的地方if判斷下這個字元就好。
❹ 如何識別Java中的內存泄漏
一般來說內存泄漏有兩種情況。一種情況,在堆中的分配的內存,在沒有將其釋放掉的時候,就將所有能訪問這塊內存的方式都刪掉(如指針重新賦值);另一種情況則是在內存對象明明已經不需要的時候,還仍然保留著這塊內存和它的訪問方式(引用)。第一種情況,在Java中已經由於垃圾回收機制的引入,得到了很好的解決。所以,Java中的內存泄漏,主要指的是第二種情況。
可能光說概念太抽象了,大家可以看一下這樣的例子:
1
Vector
v=new
Vector(10);
2
for
(int
i=1;i<100;
i++){
3
Object
o=new
Object();
4
v.add(o);
5
o=null;
6
}
在這個例子中,代碼棧中存在Vector對象的引用v和Object對象的引用o。在For循環中,我們不斷的生成新的對象,然後將其添加到Vector對象中,之後將o引用置空。問題是當o引用被置空後,如果發生GC,我們創建的Object對象是否能夠被GC回收呢?答案是否定的。因為,GC在跟蹤代碼棧中的引用時,會發現v引用,而繼續往下跟蹤,就會發現v引用指向的內存空間中又存在指向Object對象的引用。也就是說盡管o引用已經被置空,但是Object對象仍然存在其他的引用,是可以被訪問到的,所以GC無法將其釋放掉。如果在此循環之後,Object對象對程序已經沒有任何作用,那麼我們就認為此Java程序發生了內存泄漏。
盡管對於C/C++中的內存泄露情況來說,Java內存泄露導致的破壞性小,除了少數情況會出現程序崩潰的情況外,大多數情況下程序仍然能正常運行。但是,在移動設備對於內存和CPU都有較嚴格的限制的情況下,Java的內存溢出會導致程序效率低下、佔用大量不需要的內存等問題。這將導致整個機器性能變差,嚴重的也會引起拋出OutOfMemoryError,導致程序崩潰。
❺ java如何識別漢字字元
可以用正則表達式識別的, 用正則表達式"[\u4e00-\u9fa5]"匹配
字元串,可以找到是否有中文,如果只匹配一個字元,
就可以看到是不是中文
範例:
public static boolean isChinese(char c) {
String regEx = "[\u4e00-\u9fa5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(c + "");
if (m.find())
return true;
return false;
}
❻ java如何識別文字元號混雜的字元串字元串
補充一下:我覺得你是不是聽錯作業的了,這個題目明顯是讓你練習使用Map集合的讀取方式的!
用正則進行字元串過濾太繁瑣了,下面就是,如果使用Map集合就要方便很多!
java.util.Scanner;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassDay03_A{
staticScannersc=newScanner(System.in);
staticStringregexCn="[\u4e00-\u9fa5]",regexNum="[\d]",regexUp="{2}";
publicstaticvoidmain(String[]args){
Stringstr="小紅10,小剛11";
String[]arrName=getString(str,regexCn+regexUp),arrNum=getString(str,regexNum+regexUp);
while(true){
addMethod(arrName,arrNum);
}
}
privatestaticString[]getString(Stringstr,Stringregex){
str=str.replaceAll("\s\.","");
Stringsrc="";
Matcherm=Pattern.compile(regex).matcher(str);
while(m.find()){
src+=m.group()+",";
}
returnsrc.split(",");
}
privatestaticvoidaddMethod(String[]arrName,String[]arrNum){
System.out.println("輸入:");
Stringsrc=sc.nextLine();
Stringoper=src.replaceAll("[\u4e00-\u9fa5\d]","");
Stringnum=src.replaceAll("[^\d]","");
Stringname=src.replaceAll("[^\u4e00-\u9fa5]","");
for(inti=0;i<arrName.length;i++){
if(arrName[i].contains(name)){
show(arrNum[i]+","+num,oper);
break;
}
}
}
privatestaticvoidshow(Stringstr,Stringoper){
Stringstrs[]=str.split(","),src="";
int[]arr=newint[strs.length];
for(inti=0;i<arr.length;i++){
arr[i]=Integer.parseInt(strs[i]);
}
switch(oper){
case"+":
src=arr[0]+arr[1]+"";
break;
case"-":
src=arr[0]-arr[1]+"";
break;
case"*":
src=arr[0]*arr[1]+"";
break;
case"/":
src=arr[0]/arr[1]+"";
break;
case"%":
src=arr[0]%arr[1]+"";
break;
}
System.out.println("結果:"+src+" ");
}
}
❼ java如何判斷是外掛軟體
java根據操作指令和數據編程來判斷外掛軟體。外掛從游戲類型來說,可以分為兩種,一種是用於本地數據修改的。相信地球上的程序員都玩過《暗黑破壞神》也都用過修改器。其實修改器就可以叫做外掛。因為它修改了本地的數據。另一種是用於網路數據修改的,最常見的手段就是截獲、修改數據包以欺騙伺服器。java可以通過這幾個方面來識別外掛。
❽ java怎麼實現驗證碼識別
圖片驗證碼是什麼
圖片驗證碼,這個大家應該都見過。最普遍的圖片驗證碼就是一張圖片上面有4-6個歪歪扭扭的數字字母,圖片還有點看不清楚,但是基本可以肉眼識別出上面的數字字母。那為什麼要有這個東東呢?
其實驗證碼的出現為了區分人與機器。對於歪歪妞妞還有點看不清的數字字母圖片,由於人腦的特殊構造,是可以完全無障礙識別的,但是想讓奇跡識別出這些字母數字,就會出現識別錯誤。那為什麼要區別人與機器呢?假如一個一個系統沒有驗證碼,我知道了你的用戶名,並且知道你的登錄密碼是8位的數字,那我完全可以寫個腳本程序窮舉出所有的8位數組合,挨個去嘗試登錄,這個過程對於人來說可能耗時耗力,但是對於程序來說,so easy。所以驗證碼的出現就會阻止程序進行這樣的窮舉登錄。
隨著技術的發展,現在很多的驗證碼系統都可以通過圖像處理、機器學習深度學習等方式進行攻破,圖片驗證碼已經不再安全,即使是非常有名的12306驗證碼,也已經被利用深度學習達到了很高的識別精度。所以也出現了手機驗證碼、拖動滑塊圖片到指定位置的驗證碼等各種驗證碼。