亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IO流的問題

IO流的問題

qiqiqiqi010629 2015-12-14 23:54:59
用File f=new File("D:\\text");直接打印f和直接打印f.getPath()結果一樣。他們有什么本質的區別嗎?
查看完整描述

1 回答

已采納
?
是王小二呀

TA貢獻88條經驗 獲得超19個贊

package?testProgramming;
import?java.io.File;
public?class?TestMethod?{
	public?static?void?main(String[]?args){
	String?f1=new?String("F:\\javaTest\\Paint.txt");
	String?f2="F:\\javaTest\\Paint.txt";
	File?file1=new?File(f1);
	File?file2=new?File(f2);

	System.out.println("F:\\javaTest\\Paint.txt"==file1.getPath());//false
	System.out.println("F:\\javaTest\\Paint.txt".hashCode()==file1.getPath().hashCode());//true
	
	System.out.println(f1.toString()==file1.getPath());//true
	System.out.println(f1.toString().hashCode()==file1.getPath().hashCode());//true
	
	System.out.println("F:\\javaTest\\Paint.txt"==file2.getPath());//true
	System.out.println("F:\\javaTest\\Paint.txt".hashCode()==file2.getPath().hashCode());//true
	
	System.out.println(f2.toString()==file2.getPath());//true
	System.out.println(f2.toString().hashCode()==file2.getPath().hashCode());//true
	
	System.out.println(file2.equals(file1));//true
	System.out.println(file2.hashCode()==file1.hashCode());//true
	}
}

第一:存變量是按照其hashcode值存的,f.getPath本質是一個字符串,打印出來的也是一個字符串;因此相等

第二:file1.equals(file2)為true的原因是其路徑f1和f2表示的是同一個字符串,因此hashcode值相等,

第三:第一行打印為false的原因:file1.getPath()表示的是一個String類對象f1;因此調用==比較的時候其代表自己的地址而不是值,因此為false

查看完整回答
反對 回復 2015-12-15
  • 1 回答
  • 1 關注
  • 1213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號