锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
UDP
鏄竴縐嶇敤浜庢棤榪炴帴閫氫俊鐨勬爣鍑嗗寲鍗忚錛屽叾寤虹珛鍦↖P鍗忚涔嬩笂錛岃孖P鍗忚鏄痠nternet浣跨敤鐨勫熀鏈暟鎹紶杈撳崗璁俇DP鍗忚鐨勪富瑕佷綔鐢ㄦ槸灝嗙綉緇滄暟鎹祦閲忓帇緙╂垚鏁版嵁鎶ユ枃鐨勫艦寮忋備竴涓吀鍨嬬殑鏁版嵁鎶ユ枃灝辨槸涓涓簩榪涘埗鏁版嵁鐨勪紶杈撳崟浣嶃傛瘡涓涓暟鎹姤鐨勫墠8涓瓧鑺傜敤鏉ュ寘鍚姤澶翠俊鎭紝鍓╀綑瀛楄妭鍒欑敤鏉ュ寘鍚叿浣撶殑浼犺緭鏁版嵁銆俇DP鍗忚騫朵笉鎻愪緵鏁版嵁浼犻佺殑淇濊瘉鏈哄埗銆傚鏋滃湪浠庡彂閫佹柟鍒版帴鏀舵柟鐨勪紶閫掕繃紼嬩腑鍑虹幇鏁版嵁鎶ョ殑涓㈠け錛屽崗璁湰韜茍涓嶈兘鍋氬嚭浠諱綍媯(gè)嫻嬫垨鎻愮ず銆傚洜姝わ紝閫氬父浜轟滑鎶奤DP鍗忚縐頒負(fù)涓嶅彲闈犵殑浼犺緭鍗忚銆備竴鑸敤鏉ヤ紶杈撳皯閲忔暟鎹紝瀹冭祫婧愭秷鑰楀皬錛屽鐞嗛熷害蹇?/span>
TCP
錛坱ransport control protocol錛変紶杈撴帶鍒跺崗璁紝鏍囧噯鍖栫殑闈㈠悜榪炴帴鐨勯氫俊鍗忚銆傚湪浣跨敤TCP鍗忚涓彂閫佽呭拰鎺ユ敹鑰呭繀欏誨湪閫氫俊涔嬪墠寤虹珛榪炴帴錛岃繛鎺ュ緩绔嬩箣鍚庤鐪嬫垚鏄竴涓暟鎹祦錛屽彂閫佽呭皢鏁版嵁鍙戝埌璇ユ暟鎹祦涓婏紝鎺ユ敹鑰呬粠璇ユ暟鎹祦涓婅鍙栨暟鎹傚鏋滄帴鏀惰呬篃鍚屾椂鏄彂閫佽呭垯榪炴帴鏄弻鍚戠殑銆傞氫俊瀹屾垚鍚庝換浣曚竴鏂歸兘鍙互鍏抽棴榪炴帴錛屼箣鍚庣殑璇誨啓鎿嶄綔閮戒細(xì)澶辮觸銆俆CP鍗忚鎻愪緵浜?jiǎn)鍙潬鐨勯潰鍚戝璞$殑鏁版嵁娴佷紶杈撴湇鍔$殑瑙勫垯鍜尵U﹀畾銆傜畝鍗曠殑璇村湪TCP妯″紡涓紝瀵規(guī)柟鍙戜竴涓暟鎹寘緇欎綘錛屼綘瑕佸彂涓涓‘璁ゆ暟鎹寘緇欏鏂廣侸ava鎻愪緵鐨勭被搴撻兘灝員CP/IP鍗忚鐨勪嬌鐢ㄥ熷姪濂楁帴瀛楋紙Socket錛夎繘琛屼簡(jiǎn)鎶借薄銆傚鎺ュ瓧鍖呭惈浜?jiǎn)寰忕珛涓帢q滅▼涓繪満鐨勮繛鎺ワ紝涓庝富鏈鴻繘琛岄氫俊浠ュ強(qiáng)鍏抽棴榪炴帴鎵闇瑕佺殑鎵鏈夋搷浣滐紝鑰岃繖浜涙搷浣滃疄闄呬笂榪樻槸鐢盩CP/IP鏉ユ墽琛岀殑銆?/span>
浠g悊
浠g悊鍙互浠h〃鍏朵粬鐨勫簱鎴栬呮煇縐嶇被浼肩殑鍙互浠f浛瀹冩墽琛岀綉緇滈氫俊鐨勪笢瑗褲傝繖灝辨槸RMI宸ヤ綔鐨勫師鐞嗭紝浠g悊鍦≧MI涔熷嵆瀛樻牴錛圫tub錛夈?/span>
瀹㈡埛濡備綍璇鋒眰浠g悊
涓.String瀵硅薄鐨勬瘮杈冿紝+鎿嶄綔鍜宨ntern鏂規(guī)硶
榪欓噷浠庝竴涓棶棰樺叆鎵嬫潵鐪嬬湅銆?br />
package testPackage;
public class Test {
public static void main(String[] args) {
String hello = "Hello", lo = "lo";
System.out.print((hello == "Hello") + " ");
System.out.print((Other.hello == hello) + " ");
System.out.print((other.Other.hello == hello) + " ");
System.out.print((hello == ("Hel" + "lo")) + " ");
System.out.print((hello == ("Hel" + lo)) + " ");
System.out.println(hello == ("Hel" + lo).intern());
}
}
class Other {
static String hello = "Hello";
}
package other;
public class Other {
static String hello = "Hello";
}
姝g‘絳旀錛歵rue true true true false true
涓昏瑕佺偣鏈夛細(xì)
1.鎵鏈夊唴瀹圭浉鍚岀殑String鎸囧悜鍚屼竴涓唴瀛樺潡銆備絾String瀵硅薄涓嶈兘鏄氳繃new鎿嶄綔鍒涘緩鍑烘潵銆備富瑕佸師鍥犳槸JVM瀵筍tring鍋氫簡(jiǎn)浼樺寲錛孲tring鍔犺澆涔嬪悗浼?xì)鎸佹湁涓涓父閲忔睜錛?br /> 鍙鍦ㄥ父閲忔睜涓壘鍒板唴瀹圭浉鍚岀殑String灝變細(xì)鎶婂叾寮曠敤榪斿洖銆傝宯ew鎿嶄綔鏄洿鎺ュ湪鍐呭瓨?shù)腑鍒嗛厤鏂敖I洪棿銆?br />
2.Java涓湁涓ょ緇戝畾錛岄潤(rùn)鎬佸拰鍔ㄦ併傚鏋?鎿嶄綔鐨勪袱杈規(guī)槸甯擱噺琛ㄨ揪寮忛偅涔堜細(xì)鍦ㄩ噰鐢ㄩ潤(rùn)鎬佺粦瀹氾紝涔熷氨鏄緙栬瘧涔嬪悗鍊煎凡緇忓畾涓嬫潵浜?jiǎn)銆傝屽鏋滄湁涓杈規(guī)槸閫氳繃new鎿嶄綔鍒涘緩鍑?br /> 鏉ョ殑閭d箞浼?xì)閲囩敤鍔ㄦ佺粦瀹氾紝鍙湁鍦ㄨ繍琛岀殑鏃跺欐墠鐭ラ亾鍏跺叿浣撶殑鍊箋?br /> 3.String鐨刬ntern鏂規(guī)硶浼?xì)鍒板笖R噺姹犻噷闈㈡壘鏄惁鏈夌浉鍚屽唴瀹圭殑String錛屽鏋滄湁鍒欒繑鍥炲叾寮曠敤銆傚鏋滄病鏈夊垯鎶婅繖涓猄tring瀵硅薄娣誨姞鍒板父閲忔睜涔嬩腑騫舵斁鍥炲叾寮曠敤銆傞澶栬
涓嬶紝intern鍦ㄨ嫳鏂囦腑鏈変繚鐣欏尯鐨勬剰鎬濓紝榪欐牱濂界悊瑙e叾浣滅敤銆俰ntern鏂規(guī)硶榪樻槸native鐨勩?/pre>浜?String涓殑姝e垯琛ㄨ揪寮忎嬌鐢?/pre>
String涓湁浜涙柟娉曟槸闇瑕佹鍒欒〃杈懼紡浣滀負(fù)鍙傛暟鐨勩傝繖涓椂鍊欏氨瑕佷富瑕佷笉瑕佷紶閿欏弬鏁般傛渶鍏稿瀷鐨勪緥瀛愬氨鏄痳eplaceAll(String regex, String replacement)銆傜涓涓?br /> 鍙傛暟鏄渶瑕佹鍒欒〃杈懼紡鐨勶紝鑰岀浜屽弬鏁版槸鏅氱殑瀛楃涓層?/pre>String ss = "???";
ss = ss.replaceAll("?", "=");//榪愯鍒拌繖閲屼細(xì)鎶涘嚭PatternSyntaxException錛屽洜涓?#8220;?”鍦ㄦ鍒欒〃杈懼紡閲岄潰鏄壒孌婄鍙鳳紝闇瑕佽漿涔夈?/span>
ss = ss.replaceAll("[?]", "=");//姝g‘錛屾垜涓漢姣旇緝鍊懼悜浜庤繖縐嶅啓娉曘?/span>
ss = ss.replaceAll("\\?", "=");//姝g‘錛屽“?”鍋氳漿涔夈?/span>
鍥犳鍦ㄤ嬌鐢╯plit錛宺eplaceAll錛宺eplaceFirst絳夋柟娉曟椂瑕佺壒鍒敞鎰忔槸涓嶆槸闇瑕佽漿涔?
]]>
2. ThreadLocal鍙橀噺錛屽彧鏄笉鍏變韓銆傚彲鐢?/span>set鍘昏幏鍙栧彉閲忋傚彉閲忕被鍨嬩笉闄愬埗銆?/span>
3. Eclipse plug in鎺ュ彛銆?/span>鍘昏幏寰?/span>unresolved銆傚紑鍙戜漢鍛樺彲浠ュ湪resolveClasspath銆傚疄鐜扮被闇瑕佹敞鍐屽湪extension point /**
*Computesandreturnsanunresolvedclasspathforthegivenlaunchconfiguration.
*Variableandcontainerentriesarenotresolved.
*
*@paramconfigurationlaunchconfiguration
*@returnunresolvedpath
*@exceptionCoreExceptionifunabletocomputeapath
*/
public IRuntimeClasspathEntry[] computeUnresolvedClasspath(ILaunchConfiguration configuration) throws CoreException;
/**
*Returnstheresolvedpathcorrespondingtothegivenpath,inthecontextofthe
*givenlaunchconfiguration.Variableandcontainerentriesareresolved.Thereturned
*(resolved)pathneednothavethesamenumberofentriesasthegiven(unresolved)
*path.
*
*@paramentriesentriestoresolve
*@paramconfigurationlaunchconfigurationcontexttoresolvein
*@returnresolvedpath
*@exceptionCoreExceptionifunabletoresolveapath
*/
public IRuntimeClasspathEntry[] resolveClasspath(IRuntimeClasspathEntry[] entries, ILaunchConfiguration configuration) throws CoreException;
A provider extension is defined in plugin.xml
. Following is an example definition of a runtime classpath provider extension.
<extension point="org.eclipse.jdt.launching.classpathProviders">
<classpathProvider
id="com.example.ExampleClasspathProvider"
class="com.example.ExampleClasspathProviderImpl"
</classpathProvider>
</extension>
4. plug in 鍘誨緱鍒拌繍琛岀幆澧冪殑淇℃伅銆?/span>
IRuntimeClasspathProvider provider = JavaRuntime.getClasspathProvider(configuration);
configurationILaunchConfiguration4. Eclipse plug in1.plug inURLFileLocatorURL2.FileLocatorfind鏂規(guī)硶1
//filepath String filepath = "/bin/resources/test.jar";
//instance plug in URL url = instance.getBundle().getEntry(filepath);
String path = null;
try {
path = FileLocator.resolve(url).getPath();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
returnnew Path(path);
}
2
String filepath = "/bin/resources/test.jar";
URL url = FileLocator.find(instance.getBundle(),new Path(filepath),null);
try {
path = FileLocator.resolve(url).getPath();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
5. 鏉ュ啓jar瀹炰緥鍒涘緩鑷沖皯涓涓?/span>EntryputNextEntry Manifest mf = new Manifest();
JarOutputStream jar = new JarOutputStream(new FileOutputStream("MainTest.jar")mf);
Properties properties = new Properties();
jar.putNextEntry(new ZipEntry("MainTest.property"));
properties.store(jar, "this is a test");
jar.close();
6. IJavaModle
IJavaModel model = JavaCore.create(ResourcesPlugin.getWorkspace()
.getRoot());
IJavaProject[] projects = model.getJavaProjects();
IPackageFragmentRoot[] roots = projects[i] .getPackageFragmentRoots();
elements
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO]
----------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-style)
[INFO]
----------------------------------------------------------------------------
銆傘傘傘傘傘傘?br />
[INFO] Velocimacro : initialization complete.
[INFO] Velocity successfully started.
[INFO] [archetype:create]
[INFO] Defaulting package to group ID: com.mycompany.app
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: org.apache.maven.archetypes
ArtifactId: maven-archetype-quickstart
Version: RELEASE
Reason: Unable to determine the release version
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=org.apache.maven.archetypes
-DartifactId=maven-arch
etype-quickstart \
-Dversion=RELEASE -Dpackaging=jar -Dfile=/path/to/file
org.apache.maven.archetypes:maven-archetype-quickstart:jar:RELEASE
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Tue Apr 17 07:08:50 MDT 2007
[INFO] Final Memory: 4M/8M
[INFO]
------------------------------------------------------------------------