面对Properties的各种陷阱,这里有一些你需要了解的Java技巧

发布于:2024-10-24 编辑:匿名 来源:网络

鍢垮樋鍢匡紝浜茬埍鐨勬湅鍙嬩滑锛屾垜鏄綘浠殑濂芥湅鍙嬧?斺?攂ug bug銆備粖澶╂垜灏辨潵绉戞櫘涓?涓婮ava SE鐩稿叧鐭ヨ瘑鐐广?備笉瑕侀殣钘忋?傚鏋滀綘鍚簡鎴戞湁瓒g殑婕旇锛岃鐐硅禐銆傜偣璧炶秺澶氾紝鎴戝氨瓒婃湁鍔ㄥ姏璇村緱鏇存湁瓒o紒鎵?浠ワ紝鍏绘垚鍏堝枩娆㈠悗闃呰鐨勫ソ涔犳儻锛屼笉瑕佽鏈夌敤鐨勪俊鎭饭娌′簡~馃弳鏈枃鏀跺綍鍦ㄣ?婃粴闆悆瀛︿範Java銆嬩笓鏍忥紝浼氳浣犵殑涓撲笟鎶?鑳芥寚鏁扮骇鎻愬崌銆傛垜甯屾湜瀹冭兘甯姪浣犲敖蹇揪鍒伴《宄般?傝储瀵岃嚜鐢别煔?锛涘悓鏃舵杩庡ぇ瀹跺叧娉?&鏀惰棌&&璁㈤槄****锛佹寔缁洿鏂帮紝椤讹紒鍚戜笂锛佸悜涓婏紒 锛佷唬鐮佽瑷?锛歫ava 澶嶅埗鐜鎻忚堪锛歐indows 10 + IntelliJ IDEA .3.2 + Jdk 1.8 鍓嶈█ 鍦ㄦ棩甯窲ava寮?鍙戜腑锛孭roperties鏄父鐢ㄧ殑閿?煎瀛樺偍鏂瑰紡锛岀敤浜庨厤缃枃浠躲?佺幆澧冨彉閲忕瓑甯歌鍦烘櫙銆傜劧鑰岋紝鍦ㄤ娇鐢≒roperties鏃讹紝缁忓父浼氶亣鍒板悇绉嶅潙锛屾瘮濡傝鍐欎贡鐮併?侀敭鍊煎鍑虹幇鐗规畩瀛楃绛夛紝鏈枃灏嗛?氳繃浠g爜绀轰緥鍜屽満鏅渚嬫潵浠嬬粛濡備綍閬垮厤杩欎簺闂锛岃鎮ㄥ湪浣跨敤鏃舵洿鍔犲緱蹇冨簲鎵嬨?備娇鐢ㄥ睘鎬с??SummaryProperties鏄疛ava涓父鐢ㄧ殑閿?煎瀛樺偍鏂瑰紡锛岀敤浜庨厤缃枃浠躲?佺幆澧冨彉閲忕瓑鍦烘櫙銆備娇鐢≒roperties鏃堕渶瑕佹敞鎰忚鍐欎贡鐮併?佸鐞嗛敭鍊煎涓壒娈婂瓧绗︾瓑闂銆傛湰鏂囬?氳繃浠g爜绀轰緥鍜屽満鏅渚嬶紝浠嬬粛濡備綍閬垮厤杩欎簺闂锛岃鎮ㄥ湪浣跨敤Properties鏃舵洿鍔犲緱蹇冨簲鎵嬨??Properties绠?浠?- Properties鏄疛ava涓父鐢ㄧ殑閿?煎瀛樺偍鏂瑰紡锛屽叾瀛樺偍鏂瑰紡涓嶮ap绫讳技銆?Properties鍙互閫氳繃load()鏂规硶浠庢枃浠朵腑璇诲彇鍐呭锛屾垨鑰呯洿鎺ラ?氳繃setProperty()鏂规硶娣诲姞閿?煎銆傚睘鎬т竴鑸敤浜庡瓨鍌ㄩ厤缃枃浠躲?佺幆澧冨彉閲忕瓑甯歌鍦烘櫙銆傚叾浼樼偣鏄牸寮忕畝鍗曪紝鏄撲簬闃呰鍜屼慨鏀广?備笅闈㈡槸涓?涓畝鍗曠殑 Properties 绀轰緥锛?浠g爜璇█锛歫ava Copy #閰嶇疆鏂囦欢绀轰緥 ip=..1.1port=username=adminpassword=56 璇诲彇閰嶇疆鏂囦欢鍐呭鐨勪唬鐮佸涓嬶細 浠g爜璇█锛歫ava Copy Properties props = new Properties() ;InputStream in = new BufferedInputStream(new FileInputStream("config.properties"));props.load(in);in.close();String ip = props.getProperty("ip");int port = Integer.parseInt( props.getProperty("绔彛"));瀛楃涓茬敤鎴峰悕 = props.getProperty("鐢ㄦ埛鍚?);瀛楃涓插瘑鐮?= props.getProperty("瀵嗙爜");婧愪唬鐮佽В鏋愬拰璇诲彇Properties涔辩爜闂鍦ㄨ鍙朠roperties鏂囦欢鏃讹紝鍙兘浼氬嚭鐜颁贡鐮併?傝繖鏄洜涓衡?滃睘鎬р?濋粯璁や娇鐢?ISO-1 缂栫爜銆傚鏋滄垜浠殑鏂囦欢閲囩敤鍏朵粬缂栫爜鏂瑰紡杩涜缂栫爜锛屽氨浼氬嚭鐜颁贡鐮併?傝繖閲屾彃鍏ュ浘鐗囨弿杩帮紝瑙e喅鏂规硶濡備笅锛?浠g爜璇█锛歫ava Copy Properties props = new Properties();InputStream in = new FileInputStream("config.properties");props.load(new InputStreamReader(in, "UTF-8") ") );in.close();String ip = props.getProperty("ip");int port = Integer.parseInt(props.getProperty("port"));String username = props.getProperty("鐢ㄦ埛鍚?) ;瀛楃涓插瘑鐮?= props.getProperty("瀵嗙爜");璇诲彇Properties鏂囦欢鏃讹紝浣跨敤InputStreamReader鎸囧畾鏂囦欢鐨勭紪鐮佹柟寮忎负UTF-8銆傛墿灞曪細鈥冧笂闈㈢殑浠g爜浣跨敤Java涓殑Properties绫绘潵璇诲彇鍚嶄负鈥渃onfig.properties鈥濈殑鏂囦欢銆傝鏂囦欢鍖呭惈鐢ㄤ簬杩炴帴鍒拌繙绋嬫湇鍔″櫒鐨?IP 鍦板潃銆佺鍙c?佺敤鎴峰悕鍜屽瘑鐮佺瓑淇℃伅銆傗?冮鍏堝垱寤轰竴涓?Properties 瀵硅薄骞跺姞杞?config.properties 鏂囦欢銆傞?氳繃FileInputStream绫诲拰InputStreamReader绫昏鍙栨枃浠讹紝骞朵娇鐢║TF-8缂栫爜瑙f瀽鏂囦欢鍐呭銆傛渶鍚庡叧闂緭鍏ユ祦銆傦豢锘跨劧鍚庯紝浠庤鍙栫殑Properties瀵硅薄涓幏鍙朓P鍦板潃銆佺鍙c?佺敤鎴峰悕銆佸瘑鐮佺瓑灞炴?у?硷紝鍒嗗埆瀛樺偍鍦ㄥ瓧绗︿覆鍜屾暣鏁扮被鍨嬬殑鍙橀噺涓?傗?冭繖鏍峰氨鍙互鏂逛究鐨勮鍙栧拰浣跨敤config.properties鏂囦欢涓殑閰嶇疆淇℃伅銆傚睘鎬т腑鐨勯敭鍊煎鍖呭惈鐗规畩瀛楃銆傚綋閿?煎鍖呭惈鐗规畩瀛楃锛屽绌烘牸銆佸啋鍙风瓑鏃讹紝闇?瑕佽繘琛岀壒娈婂鐞嗐?傝繖閲屾湁涓や釜鏂规硶锛?浠g爜璇█锛?java Copy Properties props = new Properties();InputStream in = new FileInputStream("config.properties");props.load(in);in.close();String ip = props. getProperty("ip");String port = props.getProperty("port");String username = props.getProperty("username");String password = props.getProperty("password");//鏂规硶1 ip = ip .replaceAll("\\s+", "");绔彛 = port.replaceAll(":","");鐢ㄦ埛鍚?= 鐢ㄦ埛鍚?replaceAll("\"","");瀵嗙爜 = 瀵嗙爜.replaceAll("\ '","");//鏂规硶2 ip = ip.replace(" ", "");port = port.replace(":", "");username = username.replace("\"", " ");瀵嗙爜 = 瀵嗙爜.replace("\'", "");鏂规硶涓?浣跨敤姝e垯琛ㄨ揪寮弐eplaceAll()鏂规硶灏嗙壒娈婂瓧绗︽浛鎹负绌哄瓧绗︿覆锛涙柟娉?浣跨敤replace()鏂规硶灏嗙壒娈婂瓧绗︽浛鎹负鏅?氬瓧绗︺?傛墿灞曪細鈥冩浠g爜璇诲彇閰嶇疆鏂囦欢锛坈onfig.properties锛夊苟鑾峰彇IP鍦板潃銆佺鍙e彿銆佺敤鎴峰悕鍜屽瘑鐮併?傜劧鍚庝娇鐢ㄤ袱绉嶆柟娉曞鐞嗚幏鍙栧埌鐨勫?笺?傦豢鏂规硶涓?浣跨敤姝e垯琛ㄨ揪寮忓幓闄P鍦板潃涓殑绌烘牸銆佺鍙e彿涓殑鍐掑彿浠ュ強鐢ㄦ埛鍚嶅拰瀵嗙爜涓殑寮曞彿銆傗?冩柟娉曚簩鐩存帴浣跨敤瀛楃涓茬殑replace()鏂规硶锛屽皢绌烘牸銆佸啋鍙枫?佸紩鍙锋浛鎹负鈥溾?濓紙绌哄瓧绗︿覆锛夈?傦豢锘胯繖浜涜繃绋嬬殑鐩殑鏄负浜嗗緱鍒颁竴涓共鍑?瑙勮寖鐨勫瓧绗︿覆锛屼互渚涘悗缁搷浣滀娇鐢ㄣ?傜紪鍐橮roperties鏂囦欢 缂栧啓Properties鏂囦欢鏈変袱绉嶆柟娉曪紝涓?绉嶆槸浣跨敤OutputStream鏉ュ啓鍏ワ紝鍙︿竴绉嶆槸浣跨敤Properties.store()鏂规硶鏉ュ啓鍏ャ?備唬鐮佽瑷?锛歫ava copy //鏂规硶1 OutputStream out = new FileOutputStream("config.properties");props.store(out, "update");out.close();//鏂规硶2 FileOutputStream output = new FileOutputStream(" config.properties");props.store(new OutputStreamWriter(output, "utf-8"), "update");output.close();鍦ㄧ紪鍐橮roperties鏂囦欢鏃讹紝闇?瑕佹敞鎰忔枃浠剁殑缂栫爜鏂瑰紡銆?UTF涓?鑸敤-8銆傛墿灞曪細涓婇潰鐨勪唬鐮佹槸Java涓搷浣減roperties鏂囦欢鐨勭ず渚嬩唬鐮侊紝鍏朵腑props浠h〃涓?涓狿roperties瀵硅薄锛岄噷闈㈠寘鍚簡涓?浜涢厤缃俊鎭?傚湪姝や唬鐮佷腑锛孭roperties 瀵硅薄閫氳繃鍐欏叆 OutputStream 鎴?OutputStreamWriter 鏉ヤ繚瀛樺埌 config.properties 鏂囦欢涓?傛柟娉?1 浣跨敤 FileOutputStream锛岀洿鎺ュ皢 Properties 瀵硅薄鍐欏叆杈撳嚭娴侊紝骞朵娇鐢?store() 鏂规硶淇濆瓨瀹冦?傝鏂规硶浣跨敤榛樿鐨処SO-1缂栫爜鏍煎紡锛屽洜姝ゅ鏋滄枃浠朵腑鍖呭惈涓枃绛夌壒娈婂瓧绗︼紝鍙兘浼氬嚭鐜颁贡鐮併?傛渶鍚庯紝浣跨敤 close() 鏂规硶鍏抽棴杈撳嚭娴併?傛柟娉曚簩閲囩敤鏇寸伒娲荤殑鏂规硶?紝閫氳繃鏋勯?燨utputStreamWriter鎸囧畾缂栫爜鏍煎紡鏉ヨВ鍐充贡鐮侀棶棰樸?傚悓鏍蜂娇鐢╯tore()鏂规硶淇濆瓨Properties瀵硅薄锛屾渶鍚庝娇鐢╟lose()鏂规硶鍏抽棴杈撳嚭娴併?傗?冣?冩?荤殑鏉ヨ锛岃繖涓や釜鏂规硶鐨勬牳蹇冨氨鏄埄鐢≒roperties绫绘彁渚涚殑store()鏂规硶灏哖roperties瀵硅薄淇濆瓨鍒版枃浠朵腑銆備笉杩囷紝鏂规硶浜屾瘮鏂规硶涓?鏇寸伒娲伙紝鍙互瑙e喅缂栫爜闂銆傚簲鐢ㄥ満鏅渚?璇诲彇web.xml鏂囦欢 鍦ㄤ竴涓獁eb椤圭洰涓紝鎴戜滑闇?瑕佽鍙杦eb.xml鏂囦欢涓殑閰嶇疆淇℃伅锛屾瘮濡俿ervlet銆乴istener绛夐厤缃俊鎭?備笅闈㈡槸璇诲彇 web.xml 鏂囦欢涓?servlet 閰嶇疆淇℃伅鐨勭ず渚嬩唬鐮侊細 浠g爜璇█锛歫ava copy public class ReadWebXml { public static void main(String[] args) throws Exception { Properties props = new Properties(); }杈撳叆娴?= new FileInputStream("web.xml"); props.loadFromXML(in);闄勫瘎锛堬級;鏋氫妇 en = props.propertyNames(); while (en.hasMoreElements()) { String key = (String ) en.nextElement(); if (key.contains("servlet-name")) { String servletName = props.getProperty(key); String servletClass = props.getProperty(key.replace("name", "class") ); System.out.println(servletName + " " + servletClass); } } }}鈥冧唬鐮佷腑璇诲彇web.xml鏂囦欢鏃讹紝浣跨敤loadFromXML()鏂规硶璇诲彇XML鏍煎紡鐨勯厤缃枃浠躲?傚叿浣撹鍙栨柟娉曚笌Properties鐩稿悓銆傚皢Properties鍐欏叆鏁版嵁搴撳湪Java涓紝鎴戜滑缁忓父灏嗛厤缃俊鎭瓨鍌ㄥ湪鏁版嵁搴撲腑銆備笅闈㈡槸鍚?MySQL 鏁版嵁搴撳啓鍏?Properties 鐨勭ず渚嬩唬鐮侊細 浠g爜璇█锛歫ava copy public class WritePropertiesToDB { public static void main(String[] args ) throws SQLException, ClassNotFoundException { Properties props = new Properties(); } props.setProperty("ip", ".0.0.1"); props.setProperty("绔彛", ""); props.setProperty("鐢ㄦ埛鍚?, "root"); props.setProperty("瀵嗙爜", "56"); Class.forName("com.mysql.jdbc.Driver");杩炴帴 conn = DriverManager.getConnection("jdbc:", "root", "56"); ReadyStatement ps = conn.prepareStatement("鎻掑叆閰嶇疆鍊??,?,?,?)");鏋氫妇 en = props.propertyNames();鏁存暟 i = 1; while (en.hasMoreElements()) { String key = (String) en.nextElement();ps.setInt(1, i++); ps.setString(2, 閿?; ps.setString(3, props.getProperty(key)); ps.setDate(4, new Date(System.currentTimeMillis())); ps .executeUpdate(); ps.close(); conn.close();浠g爜涓紝棣栧厛鍒涘缓涓?涓狿roperties瀵硅薄锛屽苟鍦ㄨ瀵硅薄涓瓨鍌ㄩ厤缃俊鎭?傜劧鍚庯紝浣跨敤JDBC杩炴帴MySQL鏁版嵁搴擄紝骞跺皢閿?煎瓨鍌ㄥ湪Properties涓?傚啓鍏ユ暟鎹簱銆備紭缂虹偣鍒嗘瀽 浼樼偣锛?绠?鍗曟槗鐢細灞炴?у瓨鍌ㄦ柟寮忕畝鍗曪紝鏄撲簬璇诲彇鍜屼慨鏀广?傚父瑙佸満鏅細灞炴?у父鐢ㄤ簬瀛樺偍閰嶇疆鏂囦欢銆佺幆澧冨彉閲忕瓑甯歌鍦烘櫙銆傝鍐欐柟渚匡細Properties鍙互閫氳繃load()鏂规硶浠庢枃浠朵腑璇诲彇鍐呭锛屼篃鍙互閫氳繃setProperty()鏂规硶鐩存帴娣诲姞閿?煎銆傜己鐐癸細瀛樺偍鏂瑰紡鏈夐檺锛氬睘鎬у彧鑳藉瓨鍌ㄥ瓧绗︿覆绫诲瀷鐨勯敭鍊煎锛屼笉鑳藉瓨鍌ㄥ叾浠栫被鍨嬬殑鏁版嵁銆備笉鏀寔澶氱嚎绋嬶細灞炴?т笉鏄嚎绋嬪畨鍏ㄧ殑锛屼笉鏀寔澶氱嚎绋嬫搷浣滐紝闇?瑕佸姞閿佷繚璇佸畨鍏ㄣ?傜被浠g爜鏂规硶浠嬬粛 Properties 绫绘柟娉曚粙缁?load(InputStream in)锛氫粠杈撳叆娴佷腑璇诲彇灞炴?у垪琛紙閿拰鍏冪礌瀵癸級銆?loadFromXML(InputStream in)锛氫粠杈撳叆娴佽鍙?XML 鏍煎紡鐨勫睘鎬у垪琛紙閿拰鍏冪礌瀵癸級銆?getProperty(String key)锛氫娇鐢ㄦ寚瀹氱殑閿湪姝ゅ睘鎬у垪琛ㄤ腑鎼滅储灞炴?с??setProperty(String key, String value)锛氬皢鎸囧畾鐨勯敭鍊煎鍐欏叆Properties銆?store(OutputStream out, String comments)锛氬皢灞炴?у啓鍏ヨ緭鍑烘祦锛涜瘎璁烘槸璇勮淇℃伅銆?storeToXML(OutputStream os, String comment)锛氫互XML鏍煎紡灏哖roperties鍐欏叆杈撳嚭娴侊紱 comment鏄瘎璁轰俊鎭?侷nputStream绫绘柟娉曚粙缁?FileInputStream(String name)锛氬垱寤烘枃浠惰緭鍏ユ祦銆?BufferedInputStream(InputStream in)锛氬垱寤轰竴涓柊鐨勭紦鍐茶緭鍏ユ祦鏉ョ紦鍐叉寚瀹氱殑杈撳叆娴併??close()锛氬叧闂杈撳叆娴佸苟閲婃斁涓庤娴佸叧鑱旂殑鎵?鏈夌郴缁熻祫婧愩??OutputStream绫绘柟娉曚粙缁?FileOutputStream(String name)锛氬垱寤烘枃浠惰緭鍑烘祦銆?close()锛氬叧闂鏂囦欢杈撳嚭娴併?傝娴佸皢鍦ㄥ叧闂箣鍓嶈鍒锋柊銆?PreparedStatement绫绘柟娉曚粙缁峞xecuteUpdate()锛氭墽琛岀粰瀹氱殑SQL璇彞锛岃璇彞鍙兘鏄疘NSERT銆乁PDATE鎴朌ELETE璇彞锛涙垨涓嶈繑鍥炰?讳綍鍐呭鐨? SQL 璇彞锛屼緥濡?SQL DDL 璇彞銆傛祴璇曠敤渚嬧?冨湪缂栧啓浠g爜鏃讹紝涓轰簡閬垮厤閿欒锛屾垜浠渶瑕佺紪鍐欑浉搴旂殑娴嬭瘯鐢ㄤ緥銆備笅闈㈡槸娴嬭瘯鏂囦欢璇诲啓鐨勭ず渚嬩唬鐮侊細 娴嬭瘯浠g爜 婕旂ず浠g爜璇█锛歫ava鎷疯礉鍖?com.demo.javase.day65_5;import java.io.*;import java.nio.charset.StandardCharsets;import java.util .Properties ;/** * 灞炴?хず渚嬫紨绀?* * @Author bug* @Date 11-06 16:53 */public class PropertiesTest { public static void main(String[] args) throws IOException { testReadProperties(); }娴嬭瘯鍐欏叆灞炴?э紙锛夛紱 } // 娴嬭瘯璇诲彇灞炴?ф枃浠?public static void testReadProperties() throws IOException { Properties props = new Properties(); InputStream in = new FileInputStream("config/config.properties"); props.load(new InputStreamReader(in, StandardCharsets .UTF_8));闄勫瘎锛堬級; String ip = props.getProperty("ip"); int port = Integer.parseInt(props.getProperty("port")); String username = props.getProperty("鐢ㄦ埛鍚? );瀛楃涓插瘑鐮?= props.getProperty("瀵嗙爜"); System.out.println("ip: " + ip); System.out.println("绔彛: " + 绔彛); System.out.println("鐢ㄦ埛鍚? " + 鐢ㄦ埛鍚?; System.out.println("瀵嗙爜: " + 瀵嗙爜) ; } // 娴嬭瘯鍐欏叆灞炴?ф枃浠?public static void testWriteProperties() throws IOException { Properties props = new Properties(); props.setProperty("ip", ".0.0.1"); , ""); props.setProperty("鐢ㄦ埛鍚?, "admin"); OutputStream out = new FileOutputStream("config/newConfig.properties"); new OutputStreamWriter(out, StandardCharsets.UTF_8), "New Config"); out.close(); }}娴嬭瘯缁撴灉鍩轰簬涓婅堪娴嬭瘯鐢ㄤ緥锛屾湰鍦版祴璇曠粨鏋滃涓嬶紝浠呬緵鍙傝?冦?傝嚜宸辨祴璇曠敤渚嬫垨鑰呮坊鍔犳洿澶氱殑娴嬭瘯鏁版嵁鎴栬?呮祴璇曟柟娉曪紝鐔熺粌瀛︿範鍔犳繁鐞嗚В銆傛祴璇曠粨鏋滃涓嬶細 浠g爜璇█锛歫ava 澶嶅埗 ip: ..1.1port: username: adminpassword: 56鈥?鍙互鐪嬪埌锛岃鍙朠roperties鏂囦欢鏃舵病鏈夊嚭鐜颁贡鐮侀棶棰橈紱鍚屾椂锛屽啓鍏roperties鏂囦欢涔熸垚鍔熴?傚疄闄呰繍琛屾埅鍥惧涓嬶細 姝ゅ鎻掑叆鍥剧墖鎻忚堪鈥冣?冪劧鍚庢垜浠煡鐪媙ewConfig.properties鏂囦欢锛屾寚瀹氬唴瀹瑰?欏叆鎴愬姛銆傛祴璇曚唬鐮佸垎鏋愬熀浜庝笂闈㈢殑娴嬭瘯鐢ㄤ緥锛屾垜浼氬娴嬭瘯浠g爜杩涜娣卞叆璇︾粏鐨勮瑙o紝浠ヤ究鏇村鐨勫悓瀛﹁兘澶熺悊瑙e苟鍔犳繁鍗拌薄銆傦豢鏈唬鐮佷富瑕佹紨绀轰簡濡備綍浣跨敤Java涓殑Properties绫绘潵瀹炵幇璇诲啓Properties鏂囦欢銆傦豢鍦╰estReadProperties鏂规硶涓紝棣栧厛鍒涘缓涓?涓狿roperties瀹炰緥骞朵娇鐢‵ileInputStream鎵撳紑閰嶇疆鏂囦欢銆傜劧鍚庨?氳繃Properties.load鏂规硶浠嶪nputStream涓鍙栧睘鎬у?硷紝骞堕?氳繃getProperty鏂规硶鑾峰彇灞炴?у?笺?傛渶鍚庯紝鎵撳嵃鍑鸿幏鍙栧埌鐨勫睘鎬у?笺?傚湪testWriteProperties鏂规硶涓紝鍚屾牱鍒涘缓涓?涓狿roperties瀹炰緥锛屽苟浣跨敤setProperty鏂规硶璁剧疆灞炴?у?笺?傜劧鍚庯紝浣跨敤FileOutputStream鎵撳紑涓?涓柊鏂囦欢锛岄?氳繃Properties.store鏂规硶灏嗗睘鎬у?煎啓鍏utputStream锛屽苟鎸囧畾鏂囦欢缂栫爜鍜屾枃浠舵敞閲娿?傛渶鍚庡叧闂枃浠惰緭鍑烘祦銆傛?荤粨鏈枃浠嬬粛浜嗕娇鐢≒roperties鏃堕渶瑕佹敞鎰忕殑闂锛屼緥濡傝鍐欎贡鐮併?侀敭鍊煎鍖呭惈鐗规畩瀛楃绛夛紝鎴戜滑鍙互閫氳繃浠g爜绀轰緥鍜屽満鏅洿濂藉湴鐞嗚В鍜屾帉鎻roperties鐨勪娇鐢ㄦ渚嬨?備娇鐢≒roperties鍙互鏂逛究鍦板瓨鍌ㄥ拰璇诲彇閰嶇疆淇℃伅锛屼絾涔熼渶瑕佹敞鎰忕嚎绋嬪畨鍏ㄣ?佸瓨鍌ㄧ被鍨嬮檺鍒剁瓑闂銆傛?荤粨鈥冣?冩湰鏂囦粙缁嶄簡Java涓父鐢ㄧ殑閿?煎瀛樺偍鏂瑰紡鈥斺?擯roperties锛屼富瑕佸寘鎷鍙朠roperties鏃剁殑涔辩爜闂銆佸寘鍚壒娈婂瓧绗︾殑閿?煎鐨勫鐞嗘柟娉曘?佸皢Properties鏂囦欢鍐欏叆鏁版嵁搴撶殑绀轰緥浠g爜绛夈?備娇鐢≒roperties鏃讹紝闇?瑕佹敞鎰忓瓨鍌ㄧ被鍨嬮檺鍒跺拰绾跨▼瀹夊叏闂銆傛湰鏂囪繕鎻愪緵浜嗘祴璇曠敤渚嬪拰绫绘柟娉曠殑浠嬬粛锛屽府鍔╄鑰呮洿濂藉湴鐞嗚В鍜屾帉鎻roperties鐨勪娇鐢ㄣ?傗?︹?︼豢 濂戒簡锛屾湰鏈熷唴瀹瑰熀鏈氨缁撴潫浜嗐?傚鏋滄兂浜嗚В鏇村鍙互闃呰銆娿?屾粴闆悆瀛ava銆嶆暀绋嬪鑸笘銆嬩笓鏍忕殑浠嬬粛绔犺妭銆傛湰涓撴爮鑷村姏浜庢墦閫犳渶纭牳鐨凧ava闆跺熀纭?瀛︿範绯诲垪銆傚唴瀹癸紝馃殌鎵撻?犲叏缃戜紭璐ㄧ‖鏍告爮鐩紝鍔╀綘鐩寸嚎瓒呰溅锛涙杩庡ぇ瀹惰闃呭苟缁х画瀛︿範銆備笉瑕佹崘缁欏埆浜猴紝浣嗗畠浼氭寔缁緢闀挎椂闂达紒 鈥滆禒浜虹帿鐟帮紝鎵嬬暀浣欓鈥濄?備笅娆″啀瑙亊~鈽?锔忕粰浣犵殑寤鸿/鎺ㄨ崘 鏃犺浣犳槸璁$畻鏈轰笓涓氱殑瀛︾敓锛屸?嬧?嬭繕鏄缂栫▼鎰熷叴瓒g殑鏈嬪弸锛岄兘寤鸿鐩存帴瀛︿範鏈笓鏍忥紝姣棤椤惧繉銆婇洩鐞冦?婂Java銆嬶紝Bugbug閮戦噸鎵胯锛屾墍鏈夊涔犳湰涓撴爮鐨勫鐢熷皢鑳藉鑾峰緱鎵?闇?鐨勭煡璇嗗拰鎶?鑳斤紝杩欏皢鏄暣涓簰鑱旂綉涓奐ava缂栫▼鏈?蹇殑鏂规硶锛屽氨鍍忔粴闆悆涓?鏍凤紝瓒婃粴瓒婂ぇ锛屽憟鎸囨暟绾ф彁楂樸?傗??缂栫爜骞朵笉瀹规槗銆傚鏋滆繖绡囨枃绔犲鎮ㄦ湁甯姪锛岃缁檅ug bug涓?閿笁閿摼鎺ワ紙鍏虫敞銆佺偣璧炪?佹敹钘忥級銆傚悓鏃朵篃鎺ㄨ崘澶у鍏虫敞鎴戠殑纭牳鍏紬鍙凤細銆婄尶鍦堢殑濂囧涔嬪銆嬶紱鐢ㄧ涓?鎵嬬殑鐭ヨ瘑浜嗚Вbug缁嗚弻鐨勭涓?鎵嬭祫鏂欙紝涓嶄粎鍙互瀛﹀埌鏇村鐨勬妧鏈?傜‖淇℃伅锛屼絾浣犱篃鍙互鍏嶈垂鑾峰緱BAT鍏徃鏈?鏂扮殑鐪熷疄闈㈣瘯棰樸??銆丟 PDF鎶?鏈功绫嶃?佷笂鍗冧唤绠?鍘?PPT妯℃澘銆佹妧鏈枃绔燤arkdown鏂囨。

面对Properties的各种陷阱,这里有一些你需要了解的Java技巧

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 投资界新闻 -松禾资本正式推出三支新基金,计划募资总额近30亿元

    投资界新闻 -松禾资本正式推出三支新基金,计划募资总额近30亿元

    投资圈(ID:pedaily)据6月1日消息,松禾资本宣布正式推出松禾创新基金和松禾资本嘉实创新基金。 、松鹤美元基金等三只新基金计划募资总额分别为20亿元人民币和1亿美元。 据悉,这三支基金将重点关注高科技和前沿技术领域相关的创业项目。    具体而言,松鹤资本将依托松鹤

    06-18

  • 今年,VC-PE开始来县里找钱

    今年,VC-PE开始来县里找钱

    这是今年难得一见的场景。 投资界获悉,昆山产业发展投资母基金近日正式成立,总规模1亿元,期限10年。 其中,一期规模20亿元,昆山国科创业投资有限公司担任母基金管理人。 作为一个县级市,昆山一举设立百亿基金中的基金,让创投圈感到惊讶。 事实上,不仅是昆山市,今年越

    06-18

  • LV早春6w棒球衣? 59元就能买到!

    LV早春6w棒球衣? 59元就能买到!

    时尚界偶尔出现衬衫搭配事件还可以理解,但这一次Louis Vuitton万众期待的早春登场,其中一件早春棒球衣居然和我国的小学生校服“碰撞”了! 6.9万元的售价与59元的设定价的对比,让忠于Louis Vuitton的国人感到不安。 这款早春男士棒球夹克采用湖绿色和黑色配色,LV Fanzine

    06-21

  • 模拟芯片公司“阳晓电子”完成近亿元A轮融资,亿达资本领投

    模拟芯片公司“阳晓电子”完成近亿元A轮融资,亿达资本领投

    投资圈(ID:pedaily)10月25日消息,模拟芯片公司西安阳晓电子阳晓电子科技有限公司(简称“阳晓电子”)近日完成近亿元A轮融资,由亿达资本领投,明善资本、纳川资本、石溪资本跟投。 本轮融资将帮助阳晓电子进一步打造和完善动力链芯片在工业领域的布局。 阳晓电子成立于2

    06-18

  • 驹马物流获远洋集团数亿元B+轮融资,深耕城市配送

    驹马物流获远洋集团数亿元B+轮融资,深耕城市配送

    巨马物流获得远洋集团数亿元B+轮融资,深耕城市配送。 据投资界2月11日消息,据亿欧网报道,创始人与钜马物流CEO白如冰在年会上宣布,钜马物流获得远洋集团数亿元B+轮融资。 据悉,2020年,巨马物流将继续深耕城市配送。   巨马物流成立于2007年,主要从事城市配送服务。 最

    06-17

  • 美妆产业链新物种朱迪先生获微影资本1500万元Pre-A轮融资

    美妆产业链新物种朱迪先生获微影资本1500万元Pre-A轮融资

    投资界11月6日报道称,美妆产业链新物种朱迪先生,获得微影资本1500万元Pre-A轮融资。 朱迪先生拟将本轮融资用于城市门店拓展、IT信息化建设、产品研发迭代、教育培训体系、投资及加盟招募等。 朱迪先生的主营业务包括美发、护发、头皮管理及其他服务。 主要提供方便、快捷、

    06-18

  • Mr.Judy获维盈资本1500万元Pre-A轮融资

    Mr.Judy获维盈资本1500万元Pre-A轮融资

    据投资界11月6日消息,护发头皮管理服务商Mr.Judy完成Pre-A轮融资融资1万元,由维盈资本投资,据悉,本轮募集资金将主要用于城市门店扩张、IT信息化建设、产品研发迭代、教育培训体系、招商推广等。 Judy成立于2007年,隶属于北京小悦科技有限公司,是一家护发、头皮管理服务

    06-18

  • “运去哪”宣布完成1亿美元D1轮融资,加强海外物流网络建设

    “运去哪”宣布完成1亿美元D1轮融资,加强海外物流网络建设

    智慧物流在线服务平台“运去哪”正式宣布完成美国D1轮融资1亿美元。 本次融资完成后,云去哪儿成为国际物流数字化领域首家完成D轮融资的中国公司,估值达到独角兽级别(10亿美元)。 本轮融资完成后,云船纳将进一步加强海外网络建设以及数字新技术在国际物流中的应用。

    06-17

  • 芯片提供商“沐创”完成A1轮融资

    芯片提供商“沐创”完成A1轮融资

    近日,可重构安全芯片和智能网络控制器芯片提供商“沐创”完成A1轮融资。 本轮融资由中国电子科研投资基金领投,德开元太极老股东清空银杏、力石创投也参与投资。 本轮融资将主要用于沐创可重构安全芯片和智能网络控制芯片的大规模交付。

    06-17

  • 东车日报 -新福克斯亮相,三缸终于成为历史-特斯拉Semi最新谍照曝光-丰田赛那将迎来姐妹车型

    东车日报 -新福克斯亮相,三缸终于成为历史-特斯拉Semi最新谍照曝光-丰田赛那将迎来姐妹车型

    介绍智能精灵#1完成空气动力学和极寒测试特斯拉Semi最新谍照曝光林肯计划年前推出5款纯电动SUV。 丰田赛那姊妹车试驾版曝光,或于9月上市。 三缸终于成为历史。 新款福特福克斯应用图已发布。 宁德时代发表声明驳斥诸多传闻。 有消息称,特斯拉可能在北京设立中国设计中心。

    06-21

  • 微信刚刚全面放出了需要你喊出来的“隐藏功能”

    微信刚刚全面放出了需要你喊出来的“隐藏功能”

    微信的功能基本上都摆在你面前,彩蛋很少,缺乏一些用户自行探索的空间。 不过,我们今天发现的“隐藏功能”却是一个例外。 该功能需要您执行一定的操作后才会出现。 该功能是公众号底部“相关阅读”的升级版。 用户通过“点赞、观看、分享”等互动动作表达对文章的喜欢后,将

    06-21

  • 飞通生物科技完成数千万元Pre-A轮融资

    飞通生物科技完成数千万元Pre-A轮融资

    据投资界9月29日消息,据36氪报道,飞通生物科技近日完成数千万元Pre-A轮融资。 本轮融资由景诚资本独家投资,将用于推进公司在研项目进入IND阶段,以及其他产品管线的临床前研发。 飞通生物是肿瘤免疫治疗领域生物大分子靶向药物的研发机构。 李庆博士师的诺贝尔化学奖奖获得

    06-17