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验证码,也已经被利用深度学习达到了很高的识别精度。所以也出现了手机验证码、拖动滑块图片到指定位置的验证码等各种验证码。