
首先让我们来看下着4个语句,
String s1="Hello";//先在字符串池中查找是否有值为"Hello"的字符串,没有找到则新建一个 此时 s1指向字符串池中"Hello"
String s2="Hello";//在字符串池中查找字符串,发现存在"Hello"字符串,s2指向字符串池中"Hello" s1和s2指向的内存相同
String s3=new String("Hello");//对于new String() 则是在java的堆中新建一个字符串,他的内存地址不是指向字符串池
String s4=new String("Hello");//同上
对于字符串 == *** 作符来说 比较的内存地址值 可以得出
s1==s2true
s3==s4false
s1==s3false
equals()方法则是比较内容值 可以得出 s1 s2 s3 s4的值都是Hello
s1 equals s2true
s3 equals s4true
s1 equals s3true
对于这个则是
Systemoutprintln("s1==s2"+s1==s2);
先进行+ *** 作 然后再比较 上面实际上是 "s1==s2Hello"==s2的比较自然是false
public class AvoidFile_old {
public static void main(String[] args) {
//定义一个字符串filepath为一个文件地址的绝对路径
String filepath = "d:/Test/myFiletxt";
/
args 这个字符串数组是保存运行main函数时输入的参数,也就是说你编译好了文件是这样运行的java AvoidFile_old xx yy
这表示你有两个参数:xx和yy args[0]为xx args[1]为yy
如果args的长度大于0,也就是说args数组中有字符串
那么就把args数组中的第一个字符串赋值给filepath
如果你没有在运行时输入参数,就是简单的运行的话此数组为空if下的语句不执行
我认为这段程序有点无厘头,就整个程序而言没有什么意义,可以不考虑,可能整个程序作为模块还有其他作用
/
if(argslength>0) {
filepath = args[0];
}
//通过将给定路径名字符串转换为抽象路径名aFile(aFile的值为d:/Test/myFiletxt)
//来创建一个新 File 实例。抽象路径名可以理解为输入的d:/Test/myFiletxt
File aFile = new File(filepath);
//FileOutputStream用于写入诸如图像数据之类的原始字节的流
FileOutputStream outputFile = null;
//判断此抽象路径名表示的文件是否是一个标准文件
if (aFileisFile()) {
//如果是,创建一个newFile就为此标准文件 此时抽象路径名newFile为d:/Test/myFiletxt
File newFile = aFile;
do {
//返回由此抽象路径名表示的文件名称给name。此时得到的name的值为myFiletxt
String name = newFilegetName();
//返回name中""第一次出现处的索引给period,即myFiletxt根据索引到的位置period为6(从0开始数)
int period = nameindexOf('');
if(period == -1) {
//period == -1表示给定的文件名不存在(表示你定义的String filepath = "d:/Test/txt";是这样的或更不全)
/ newFile = new File(newFilegetParent(), extendName(name));表示
extendName(name)请看程序下段private static String extendName(String name)的方法
newFilegetParent()得到的是父目录,如果你输入的filepath = "d:/Test/txt"
那么父目录为d:/Test
根据 parent(即newFilegetParent())路径名字符串和 child(extendName)路径名字符串创建一个新 File 实例
此时创建的实例文件所在路径为d:/Test/extendName(name)txt
/
newFile = new File(newFilegetParent(), extendName(name));
} else {
/ 如果文件名不为空的话,
根据 parent(newFilegetParent())路径名字符串和 child(extendName) 路径名字符串创建一个新 File 实例
newFilegetParent()返回newFile父目录的路径名字符串即d:/Test
extendName()得到的是文件名+点,"d:/Test/myFiletxt"就是"myFile"
namesubstring(0, period))+ namesubstring(period))表示
返回字符串name=myFiletxt的一个子字符串。该子字符串从指定的0处开始,直到索引最后位 - 1 处的字符第一次创建时
为myFile,第二次源目录创建时为myFile000
再+namesubstring(period)得到一个
/
newFile = new File(newFilegetParent(),
extendName(namesubstring(0, period))
+ namesubstring(period));
}
//如果aFile没有重新命名为newFile抽象路径名表示的文件,则循环上面的 *** 作
} while(!aFilerenameTo(newFile));
}
try {
//文件已经创建则输出文件名
outputFile = new FileOutputStream(aFile);
Systemoutprintln(aFilegetName()+" output stream created");
} catch (FileNotFoundException e) {
eprintStackTrace(Systemerr);
}
Systemexit(0);
}
//定义方法extendName
private static String extendName(String name) {
//把newName定义为动态可变字符串,这样newName可以随时改变,比如下面的newNamedelete()方法
StringBuffer newName = new StringBuffer(name);
//获得digits是newName中除点之外的后三位字符串(因为name是文件名加点在上面已经讲了)
//substring方法返回的是 从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符
//所以点 就不包在digits中,获得的是纯文件名
String digits = newNamesubstring(newNamelength()-3,newNamelength());
int number = 0;
try {
/此段程序为整个程序的最精彩之处,把digits转化为整型number,
如果在原路径中创建了一个同名时,会自动在文件明后加上000
然后通过下面这段程序在000上进行递增即++number
/
number = IntegerparseInt(digits);
++number;
newNamedelete(newNamelength()-3,newNamelength());
} catch(NumberFormatException nfe) {
}
//吧number转化为字符串型
digits = StringvalueOf(number);
//做声明
assert digitslength() < 4;
/
/
return newNameappend("000")replace(newNamelength()-digitslength(),newNamelength(), digits)toString();
}
}
//注:你必须在c盘中有Test文件夹存在才能运行,如果多次运行改程序那么在你的d:\Test文件夹下有myFile00txt文件
public class Test {
public static void main(String args[]) {
Systemoutprintln("Please enter one sentence:");
javautilScanner scanner = new javautilScanner(Systemin);
String sentence = scannernextLine();// 这里是要求从屏幕上输入一段话,放在sentence这个字符串里
Systemoutprintln("Please enter the key:");
String pattern = scannernext();// 这里是要求从屏幕上输入一段话,作为查找的字符串放在pattern这个字符串里
int index = -1;
while ((index = sentenceindexOf(pattern, index + 1)) >= 0) {//indexOf是字符串的一个方法,在sentence里面查找pattern,找到了返回pattern在sentence出现的开始位置,从index+1开始查找,因为index初始化的值是-1,然后加1就等于,从第一个位置开始查找,在这里sentenceindexOf(pattern, index + 1)=sentenceindexOf(pattern)
Systemoutprint(index + " ");
}
}
}
代码不完整,解释下当前有的代码,主要是根据选项展示不同的功能。
这里关系到两个类,Ks和RDLink,在
public Ks(){
rdl=new RDLink();
}
中可以看出,在构造方法Ks()中,实例化Ks时,也会产生RDLink对象。
这段代码主要的代码是这里,doOption=sysdoMenu();
doMenu()此方法应该是产生一个菜单,让用户选择,但是代码中并没有给出这个方法的方法体是如何写的,所以不做解释,功能肯定是产生菜单,该方法返回一个整数,对应的结果如下:
case 1:
sysdoAddRecord();
break;
case 2:break;
case 3:
sysbrowseAllRecord();
break;
case 4:break;
case 5:return;
如果是1,添加一条记录
如果是3,浏览所有记录
2,4,5没有响应。
添加记录和浏览所有记录只是我根据编程的人方法名猜测的,具体功能看不到方法体不好说。
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我想问 什么是什么是JAVA程序
我只是听说 没见过 或许是见过,不知道
希望大家指点一下
谢谢!!!
解析:
java程序就是可以跨平台运行的网页小程序或独立的桌面应用程序前者叫applet,后者叫application
当你在网页上遇到applet时,系统会提示你安装java虚拟机(JVM)(下载网址是:javasun或sun)如果你的计算机环境支持java,那么在你桌面的右下角,小图标区域里就会多一个类似咖啡杯子一样的小图标,说明java小程序起动了,你可以试一试(请访问这个网址,一个用java做的地图程序:mapbar/thememap/tianjin/)
以上就是关于java程序问题:求程序运行结果解释!全部的内容,包括:java程序问题:求程序运行结果解释!、帮我解释下一个java程序 谢谢(高手进).、请帮我解释一下JAVA的简单程序...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)