﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-午后星期午-随笔分类-Java</title><link>http://www.blogjava.net/wshao/category/54090.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 26 Mar 2014 20:35:07 GMT</lastBuildDate><pubDate>Wed, 26 Mar 2014 20:35:07 GMT</pubDate><ttl>60</ttl><item><title>Java 单例模式详解</title><link>http://www.blogjava.net/wshao/archive/2014/03/27/411542.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Wed, 26 Mar 2014 17:20:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2014/03/27/411542.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/411542.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2014/03/27/411542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/411542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/411542.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 概念：　　java中单例模式是一种常见的设计模式，单例模式分三种：懒汉式单例、饿汉式单例、登记式单例三种。　　单例模式有一下特点：　　1、单例类只能有一个实例。　　2、单例类必须自己自己创建自己的唯一实例。　　3、单例类必须给所有其他对象提供这一实例。　　单例模式确保某个类只有一个实例，而且自行实例化并向整个系统提供这个实例。在计算机系统中，线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对...&nbsp;&nbsp;<a href='http://www.blogjava.net/wshao/archive/2014/03/27/411542.html'>阅读全文</a><img src ="http://www.blogjava.net/wshao/aggbug/411542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2014-03-27 01:20 <a href="http://www.blogjava.net/wshao/archive/2014/03/27/411542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>值传递、引用传递的区别</title><link>http://www.blogjava.net/wshao/archive/2014/03/26/411537.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Wed, 26 Mar 2014 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2014/03/26/411537.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/411537.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2014/03/26/411537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/411537.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/411537.html</trackback:ping><description><![CDATA[<div clearfix"="" style="zoom: 1; position: relative; color: #454545; font-family: tahoma, helvetica, arial; font-size: 12px; line-height: normal; background-color: #fcf8e9;"><h2></h2></div><div>所谓值传递，就是说仅将对象的值传递给目标对象，就相当于copy；系统将为目标对象重新开辟一个完全相同的内存空间。</div><div>所谓引用，就是说将对象在内存中的地址传递给目标对象，就相当于使目标对象和原始对象对应同一个内存存储空间。此时，如果对目标对象进行修改，内存中的数据也会改变。</div><div>值传递，例如：</div><div>class TestT1&nbsp;</div><div>{&nbsp;</div><div>public static void main(String[] args)&nbsp;</div><div>{&nbsp;</div><div>int i = 5;&nbsp;</div><div>int j = 6;&nbsp;</div><div>System.out.println("before exchange i = "+i);//交换前</div><div>exchange(i, j);&nbsp;</div><div>System.out.println("after exchange i = "+i);//交换后</div><div>}</div><div>public static void exchange(int a,int b)&nbsp;</div><div>{&nbsp;</div><div>int k;</div><div>k = a;a = b; b = k;&nbsp;</div><div>}&nbsp;</div><div>}&nbsp;</div><div></div><div>程序的结果是5！！！&nbsp;</div><div>这说明，原始数据类型是按值传递的，这个按值传递也是指的是进行赋值时的行为。&nbsp;</div><div>Java语言明确说明取消了指针，因为指针往往是在带来方便的同时也是导致代码不安全的根源，同时也会使程序的变得非常复杂难以理解，但这只是在Java语言中没有明确的指针定义，实质上每一个new语句返回的都是一个指针的引用。</div><div>引用传递，例如：</div><div>class TestT2</div><div>{&nbsp;</div><div>public static void main(String[] args)&nbsp;</div><div>{&nbsp;</div><div>StringBuffer s= new StringBuffer("good");&nbsp;</div><div>StringBuffer s2=s;&nbsp;</div><div>s2.append(" afternoon.");&nbsp;</div><div>System.out.println(s);&nbsp;</div><div>}&nbsp;</div><div>}&nbsp;</div><div></div><div>对象s和s2指向的是内存中的同一个地址因此指向的是同一个对象。&nbsp;</div><div>这里的意思是进行对象赋值操作是传递的是对象的引用，因此对象是按引用传递的。&nbsp;</div><div>程序运行的输出是：&nbsp;</div><div>good afternoon.&nbsp;</div><div>这说明s2和s是同一个对象。</div><div>总结：&nbsp;</div><div>大家都知道，在JAVA中变量有以下两种：</div><div>基本类型变量，包括boolean、byte、char、short、int、long、float、double。</div><div>引用类型变量，包括类、接口、数组（基本类型数组和对象数组）。</div><div>对于基本类型和基本类型变量被当作参数传递给方法时，是值传递。在方法实体中，无法给原变量重新赋值，也无法改变它的值。</div><div>而对象作为参数，如果在方法中把对象作为参数，方法调用时，参数传递的是对象的引用，即在方法调用时，实际参数把对对象的引用传递给形式参数。这是实际参数与形式参数指向同一个地址，即同一个对象，方法执行时，对形式参数的改变实际上就是对实际参数的改变，这个结果在调用结束后被保留了下来。<br /><br /><div>形参和实参有以下显著的区别:</div><div>&nbsp; &nbsp; 1、形参不能离开方法。形参只有在方法内才会发生作用，也只有在方法中使用，不会在方法外可见。而实参可以再程序的任何地方都使用。</div><div>&nbsp; &nbsp; 2、形参代表一个合集，具有不确定性，而形参代表一个独立事物，具有确定性（即使是为null）。也就是说，形参不能代表具体的对象，只能代表这些对象共同的属性（比如超类、各种其他自定义属性等等），而实参则是具体的对象（比如超类的实例）。</div><div>&nbsp; &nbsp; 3、形参的值在调用时根据调用者更改，实参则用自身的值更改形参的值（指针、引用皆在此列）</div></div><div id="content" mod-cs-content="" text-content=""  clearfix"="" style="zoom: 1; width: 722px; overflow: hidden; font-size: 12px; line-height: 24px; margin: 7px 0px 10px; color: #454545; font-family: tahoma, helvetica, arial; background-color: #fcf8e9;"></div><img src ="http://www.blogjava.net/wshao/aggbug/411537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2014-03-26 22:29 <a href="http://www.blogjava.net/wshao/archive/2014/03/26/411537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java枚举</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408283.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408283.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408283.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408283.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408283.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408283.html</trackback:ping><description><![CDATA[1.枚举是jdk5.0以后的全新类，跟class,interface,annotation的级别一样；关键字enum。<br /><br />2.第一个实例　<br />&nbsp;&nbsp;&nbsp;&nbsp;public enum Color{ //定义<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red,White,Blue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void&nbsp;main(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color xx = Color.Red;//使用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />3.enum　提供的常用方法<br />&nbsp;&nbsp;&nbsp;&nbsp;//两个常用的静态方法 values(),valueOf()<br />&nbsp;&nbsp;&nbsp;&nbsp;for(Color c : c.values()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(c);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />4.enum 的<span style="color: red">构造方法</span><br />&nbsp;&nbsp;&nbsp;&nbsp;publc enum Coin{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;penney(1),nickel(3),dime(10),quarter(25);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private int value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public Coin(int value){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.value=value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String args[]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coin c = Coin.quarter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(c.getValue());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}　<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />5.enum的使用场所<br />&nbsp;&nbsp;&nbsp;&nbsp;权限控制、游戏方向、需要固定产生类对象的数量<img src ="http://www.blogjava.net/wshao/aggbug/408283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 14:21 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java动态代理设计模式</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408273.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408273.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408273.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408273.html</trackback:ping><description><![CDATA[<p>&nbsp;所谓动态代理类是在运行时生成的class，在生成它时，你必须提供一组interface给它，则动态代理类就宣称它实现了这些 interface。当然，动态代理类就充当一个代理，你不要企图它会帮你干实质性的工作，在生成它的实例时你必须提供一个handler，由它接管实际的工作。<br />　　下面通过实例来说明：<br />　　Subject.java 抽象借口：声明代理对象和真实对象的共同接口<br />　　[java]<br />　　public interface Subject {<br />　　public void doSomething();<br />　　}<br />　　public interface Subject {<br />　　public void doSomething();<br />　　}<br />　　RealSubject.java 真实被<a style="color: #000000" href="http://www.tbwshc.com/"><strong>tb</strong></a>代理对象<br />　　[java]<br />　　public class RealSubject implements Subject {<br />　　@Override<br />　　public void doSomething() {<br />　　System.out.println("RealSubject.doSomething");<br />　　}<br />　　}<br />　　public class RealSubject implements Subject {<br />　　@Override<br />　　public void doSomething() {<br />　　System.out.println("RealSubject.doSomething");<br />　　}<br />　　}</p>
<p>　　DynamicProxy.java 代理对象<br />　　[java]<br />　　import java.lang.reflect.InvocationHandler;<br />　　import java.lang.reflect.Method;<br />　　public class DynamicProxy implements InvocationHandler {<br />　　private Object object;<br />　　public DynamicProxy(Object object) {<br />　　this.object = object;<br />　　}<br />　　@Override<br />　　public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {<br />　　System.out.println("Before Invoke ! method : " + method);<br />　　//我们可以再代理方法调用前后添加功能<br />　　Object result = method.invoke(object, args);<br />　　System.out.println("object : " + object + " result : " + result + " args : " + args);<br />　　System.out.println("After Invoke !");<br />　　return result;<br />　　}<br />　　}<br />　　import java.lang.reflect.InvocationHandler;<br />　　import java.lang.reflect.Method;<br />　　public class DynamicProxy implements InvocationHandler {<br />　　private Object object;<br />　　public DynamicProxy(Object object) {<br />　　this.object = object;<br />　　}<br />　　@Override<br />　　public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {<br />　　System.out.println("Before Invoke ! method : " + method);<br />　　//我们可以再代理方法调用前后添加功能<br />　　Object result = method.invoke(object, args);<br />　　System.out.println("object : " + object + " result : " + result + " args : " + args);<br />　　System.out.println("After Invoke !");<br />　　return result;<br />　　}<br />　　}<br />　　Client.java 测试<br />　　[java]<br />　　import java.lang.reflect.InvocationHandler;<br />　　import java.lang.reflect.Proxy;<br />　　public class Client {<br />　　public static void main(String[] args) throws Exception {<br />　　//创建目标对象，也就是被代理对象<br />　　RealSubject realSubject = new RealSubject();<br />　　//将目标对象交给代理<br />　　InvocationHandler handler = new DynamicProxy(realSubject);<br />　　// Class proxyClass = Proxy.getProxyClass(Subject.class.getClassLoader()<br />　　// , new Class[]{Subject.class});<br />　　// Subject subject = (Subject)proxyClass.getConstructor(new Class[]{InvocationHandler.class})<br />　　// .newInstance(new Object[]{handler});<br />　　//返回代理对象，相当于上面两句<br />　　Subject subject = (Subject) Proxy.newProxyInstance(handler.getClass().getClassLoader(),<br />　　realSubject.getClass().getInterfaces(),<br />　　handler);<br />　　//叫代理对象去doSomething()，其实在代理对象中的doSomething()中还是会<br />　　//用handler来调用invoke(proxy, method, args) 参数proxy为调用者subject(this)，<br />　　//method为doSomething()，<strong><a style="color: #000000" href="http://www.tbwshc.com/"><strong>tb</strong></a></strong>参数为方法要传入的参数，这里没有<br />　　subject.doSomething();<br />　　}<br />　　}<br />　　import java.lang.reflect.InvocationHandler;<br />　　import java.lang.reflect.Proxy;<br />　　public class Client {<br />　　public static void main(String[] args) throws Exception {<br />　　//创建目标对象，也就是被代理对象<br />　　RealSubject realSubject = new RealSubject();<br />　　//将目标对象交给代理<br />　　InvocationHandler handler = new DynamicProxy(realSubject);<br />　　// Class proxyClass = Proxy.getProxyClass(Subject.class.getClassLoader()<br />　　// , new Class[]{Subject.class});<br />　　// Subject subject = (Subject)proxyClass.getConstructor(new Class[]{InvocationHandler.class})<br />　　// .newInstance(new Object[]{handler});<br />　　//返回代理对象，相当于上面两句<br />　　Subject subject = (Subject) Proxy.newProxyInstance(handler.getClass().getClassLoader(),<br />　　realSubject.getClass().getInterfaces(),<br />　　handler);<br />　　//叫代理对象去doSomething()，其实在代理对象中的doSomething()中还是会<br />　　//用handler来调用invoke(proxy, method, args) 参数proxy为调用者subject(this)，<br />　　//method为doSomething()，参数为方法要传入的参数，这里没有<br />　　subject.doSomething();<br />　　}<br />　　}<br />　　打印结果：<br />　　Before Invoke ! method : public abstract void Subject.doSomething()<br />　　RealSubject.doSomething<br />　　object : RealSubject@ec6b00 result : null args : null<br />　　After Invoke !<br />　　注意：<br />　　Java动态代理涉及到的两个类：<br />　　InvocationHandler：该接口中仅定义了一个Object : invoke(Object proxy, Method method, Object[] args);参数proxy指代理类，method表示被代理的方法，args为method中的参数数组，返回值Object为代理实例的方法调用返回的值。这个抽象方法在代理类中动态实现。<br />　　Proxy：所有动态代理类的父类，提供用于创建动态代理类和实例的静态方法。</p><img src ="http://www.blogjava.net/wshao/aggbug/408273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 14:07 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java数组使用实用的技巧</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408274.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408274.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408274.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408274.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408274.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408274.html</trackback:ping><description><![CDATA[<p>本文分享了关于Java数组最顶级的11大方法，帮助你解决工作流程问题，无论是运用在团队环境或是在私人项目中，你都可以直接拿来用！ </p>
<p>0.&nbsp; 声明一个数组（Declare an array） <br />&nbsp;<br />String[] aArray = new String[5];<br />String[] bArray = {"a","b","c", "d", "e"};<br />String[] cArray = new String[]{"a","b","c","d","e"};</p>
<p>1.&nbsp; 在Java中输出一个数组（Print an array in Java）<br />&nbsp;<br />int[] intArray = { 1, 2, 3, 4, 5 };<br />String intArrayString = Arrays.toString(intArray);<br />&nbsp; <br />// print directly will print reference value<br />System.out.println(intArray);<br />// [I@7150bd4d<br />&nbsp; <br />System.out.println(intArrayString);<br />// [1, 2, 3, 4, 5]</p>
<p>2. 从数组中创建数组列表（Create an ArrayList from an array）<br />&nbsp;<br />String[] stringArray = { "a", "b", "c", "d", "e" };<br />ArrayList&lt;String&gt; arrayList = new ArrayList&lt;String&gt;(Arrays.asList(stringArray));<br />System.out.println(arrayList);<br />// [a, b, c, d, e]</p>
<p>3. 检查<strong><a style="color: #000000" href="http://www.itbshc.com/"><strong>爱淘宝</strong></a></strong>数组中是否包含特定值（Check if an array contains a certain value）<br />&nbsp;<br />String[] stringArray = { "a", "b", "c", "d", "e" };<br />boolean b = Arrays.asList(stringArray).contains("a");<br />System.out.println(b);<br />// true<br />&nbsp;<br />4. 连接两个数组（ Concatenate two arrays）<br />&nbsp;<br />int[] intArray = { 1, 2, 3, 4, 5 };<br />int[] intArray2 = { 6, 7, 8, 9, 10 };<br />// Apache Commons Lang library<br />int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);<br />5. 声明一个数组内链（Declare an array inline ）<br />&nbsp;<br />method(new String[]{"a", "b", "c", "d", "e"});<br />&nbsp;<br />6. 将数组元素加入到一个独立的字符串中（Joins the elements of the provided array into a single String）</p>
<p>// containing the provided list of elements<br />// Apache common lang<br />String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");<br />System.out.println(j);<br />// a, b, c<br />&nbsp; <br />7. 将数组列表转换成一个数组 （Covnert an ArrayList to an array） <br />&nbsp; <br />String[] stringArray = { "a", "b", "c", "d", "e" };<br />ArrayList&lt;String&gt; arrayList = new ArrayList&lt;String&gt;(Arrays.asList(stringArray));<br />String[] stringArr = new String[arrayList.size()];<br />arrayList.toArray(stringArr);<br />for (String s : stringArr)<br />&nbsp;&nbsp;&nbsp; System.out.println(s);<br />&nbsp;<br />8. 将数组转换成一个集合（Convert an array to a set） <br />&nbsp;<br />Set&lt;String&gt; set = new HashSet&lt;String&gt;(Arrays.asList(stringArray));<br />System.out.println(set);<br />//[d, e, b, c, a]<br />&nbsp;<br />9. 反向数组（Reverse an array）<br />&nbsp;<br />int[] intArray = { 1, 2, 3, 4, 5 };<br />ArrayUtils.reverse(intArray);<br />System.out.println(Arrays.toString(intArray));<br />//[5, 4, 3, 2, 1]<br />&nbsp;<br />10. 删除数组元素（Remove element of an array）<br />&nbsp;<br />int[] intArray = { 1, 2, 3, 4, 5 };<br />int[] removed = ArrayUtils.removeElement(intArray, 3);<br />//create a new array<br />System.out.println(Arrays.toString(removed));<br />&nbsp;<br />One more &#8211; convert int to byte array <br />&nbsp;<br />byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();<br />&nbsp; <br />for (byte t : bytes) {<br />&nbsp;&nbsp; System.out.format("0x%x ", t);<br />}</p><img src ="http://www.blogjava.net/wshao/aggbug/408274.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 14:07 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408274.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过java获取mac地址</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408267.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408267.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408267.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408267.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408267.html</trackback:ping><description><![CDATA[<span style="color: #0000ff">package</span>&nbsp;<span style="color: #000000">&nbsp;cc.wshao.util;<br /><br /></span><span style="color: #0000ff">import</span> <span style="color: #000000">&nbsp;java.io.BufferedReader;<br /></span><span style="color: #0000ff">import</span> <span style="color: #000000">&nbsp;java.io.InputStreamReader;<br /></span><span style="color: #0000ff">import</span> <span style="color: #000000">&nbsp;java.util.regex.Matcher;<br /></span><span style="color: #0000ff">import</span> <span style="color: #000000">&nbsp;java.util.regex.Pattern;<br /></span><span style="color: #000000"><br /></span><span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">class</span> <span style="color: #000000">&nbsp;GetMacAddress&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;callCmd(String[]&nbsp;cmd)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">try</span> <span style="color: #000000">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;proc&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;Runtime.getRuntime().exec(cmd);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStreamReader&nbsp;is&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">new</span> <span style="color: #000000">&nbsp;InputStreamReader(proc.getInputStream());&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">new</span> <span style="color: #000000">&nbsp;BufferedReader&nbsp;(is);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">while</span> <span style="color: #000000">&nbsp;((line&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;br.readLine&nbsp;())&nbsp;</span> <span style="color: #000000">!=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">null</span> <span style="color: #000000">)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span> <span style="color: #000000">+=</span> <span style="color: #000000">&nbsp;line;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">catch</span> <span style="color: #000000">(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;result;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;cmd&nbsp;&nbsp;第一个命令&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;another&nbsp;第二个命令&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@return</span> <span style="color: #008000">&nbsp;&nbsp;&nbsp;第二个命令的执行结果&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;callCmd(String[]&nbsp;cmd,String[]&nbsp;another)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">try</span> <span style="color: #000000">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime&nbsp;rt&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;Runtime.getRuntime();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;proc&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;rt.exec(cmd);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc.waitFor();&nbsp;&nbsp;</span> <span style="color: #008000">//</span> <span style="color: #008000">已经执行完第一个命令，准备执行第二个命令&nbsp;&nbsp;</span> <span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;rt.exec(another);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStreamReader&nbsp;is&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">new</span> <span style="color: #000000">&nbsp;InputStreamReader(proc.getInputStream());&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">new</span> <span style="color: #000000">&nbsp;BufferedReader&nbsp;(is);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">while</span> <span style="color: #000000">&nbsp;((line&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;br.readLine&nbsp;())&nbsp;</span> <span style="color: #000000">!=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">null</span> <span style="color: #000000">)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span> <span style="color: #000000">+=</span> <span style="color: #000000">&nbsp;line;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">catch</span> <span style="color: #000000">(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;result;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;ip&nbsp;&nbsp;目标ip,一般在局域网内&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;sourceString&nbsp;命令处理的结果字符串&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;macSeparator&nbsp;mac分隔符号&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@return</span> <span style="color: #008000">&nbsp;&nbsp;mac地址，用上面的分隔符号表示&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;filterMacAddress(</span> <span style="color: #0000ff">final</span> <span style="color: #000000">&nbsp;String&nbsp;ip,&nbsp;</span> <span style="color: #0000ff">final</span> <span style="color: #000000">&nbsp;String&nbsp;sourceString,</span> <span style="color: #0000ff">final</span> <span style="color: #000000">&nbsp;String&nbsp;macSeparator)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;regExp&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">((([0-9,A-F,a-f]{1,2}</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">+</span> <span style="color: #000000">&nbsp;macSeparator&nbsp;</span> <span style="color: #000000">+</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">){1,5})[0-9,A-F,a-f]{1,2})</span> <span style="color: #000000">"</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;pattern&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;Pattern.compile(regExp);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matcher&nbsp;matcher&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;pattern.matcher(sourceString);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">while</span> <span style="color: #000000">(matcher.find()){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;matcher.group(</span> <span style="color: #000000">1</span> <span style="color: #000000">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">if</span> <span style="color: #000000">(sourceString.indexOf(ip)&nbsp;</span> <span style="color: #000000">&lt;=</span> <span style="color: #000000">&nbsp;sourceString.lastIndexOf(matcher.group(</span> <span style="color: #000000">1</span> <span style="color: #000000">)))&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">break</span> <span style="color: #000000">;&nbsp;&nbsp;</span> <span style="color: #008000">//</span> <span style="color: #008000">如果有多个IP,只匹配本IP对应的Mac.&nbsp;&nbsp;</span> <span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;result;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;ip&nbsp;目标ip&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@return</span> <span style="color: #008000">&nbsp;&nbsp;&nbsp;Mac&nbsp;Address&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;getMacInWindows(</span> <span style="color: #0000ff">final</span> <span style="color: #000000">&nbsp;String&nbsp;ip){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;cmd&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">cmd</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">/c</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">ping&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">+</span> <span style="color: #000000">&nbsp;&nbsp;ip&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;another&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">cmd</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">/c</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">arp&nbsp;-a</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmdResult&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;callCmd(cmd,another);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;filterMacAddress(ip,cmdResult,</span> <span style="color: #000000">"</span> <span style="color: #000000">-</span> <span style="color: #000000">"</span> <span style="color: #000000">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;result;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@param</span> <span style="color: #008000">&nbsp;ip&nbsp;目标ip&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@return</span> <span style="color: #008000">&nbsp;&nbsp;&nbsp;Mac&nbsp;Address&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;getMacInLinux(</span> <span style="color: #0000ff">final</span> <span style="color: #000000">&nbsp;String&nbsp;ip){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;cmd&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">/bin/sh</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">-c</span> <span style="color: #000000">"</span> <span style="color: #000000">,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">ping&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">+</span> <span style="color: #000000">&nbsp;&nbsp;ip&nbsp;</span> <span style="color: #000000">+</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;-c&nbsp;2&nbsp;&amp;&amp;&nbsp;arp&nbsp;-a</span> <span style="color: #000000">"</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmdResult&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;callCmd(cmd);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;filterMacAddress(ip,cmdResult,</span> <span style="color: #000000">"</span> <span style="color: #000000">:</span> <span style="color: #000000">"</span> <span style="color: #000000">);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;result;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;获取MAC地址&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span> <span style="color: #808080">@return</span> <span style="color: #008000">&nbsp;返回MAC地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;String&nbsp;getMacAddress(String&nbsp;ip){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;macAddress&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;</span> <span style="color: #000000">""</span> <span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;macAddress&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;getMacInWindows(ip).trim();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">if</span> <span style="color: #000000">(macAddress</span> <span style="color: #000000">==</span> <span style="color: #0000ff">null</span> <span style="color: #000000">||</span> <span style="color: #000000">""</span> <span style="color: #000000">.equals(macAddress)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;macAddress&nbsp;</span> <span style="color: #000000">=</span> <span style="color: #000000">&nbsp;getMacInLinux(ip).trim();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">return</span> <span style="color: #000000">&nbsp;macAddress;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">/**</span> <span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;测试&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #008000">*/</span> <span style="color: #000000">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="color: #0000ff">public</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">static</span> <span style="color: #000000">&nbsp;</span> <span style="color: #0000ff">void</span> <span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(getMacAddress(</span> <span style="color: #000000">"</span> <span style="color: #000000">192.168.10.203</span> <span style="color: #000000">"</span> <span style="color: #000000">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}</span> <img src ="http://www.blogjava.net/wshao/aggbug/408267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 13:58 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 插入排序</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408259.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 05:49:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408259.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408259.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408259.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408259.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 不扯太多概念性的东西，简单点来说，插入排序 将数组所有元素划分成了有序区和无序区，假设当前数组有 N 个元素，开始默认第一个元素（下标为0）所处的位置是有序区，这是局部有序，从第二个元素（i=1）至数组最后一个元素（i=N-1）属于无序区；假设数组元素是按从左至右存放的，如果用 i 来标记无序区中的第一个元素下标，也就是无序区中最左边或者说是无序区中下标值最小的下标，则每趟排序是将下标 i 所指向...&nbsp;&nbsp;<a href='http://www.blogjava.net/wshao/archive/2013/12/31/408259.html'>阅读全文</a><img src ="http://www.blogjava.net/wshao/aggbug/408259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 13:49 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408259.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 双向冒泡排序</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408258.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408258.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408258.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408258.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 与单向冒泡相似的，双向冒泡排序就是在一趟排序完成之后，同时向两端有序的将元素冒出，使得两端总是保持有序状态，中间无序。假设有 N 个待排序元素，则最多只需要 N /2 趟排序，就能使得所有元素变成有序的了。由于最近在搞排序算法，当然，在写这篇随笔之前也有在网上搜索过与双向冒泡排序相关的资料，我找到的都是通过嵌套了 while 循环语句来实现双向冒泡排序的，而我接下来的，并没有这样做，而是直接在单向...&nbsp;&nbsp;<a href='http://www.blogjava.net/wshao/archive/2013/12/31/408258.html'>阅读全文</a><img src ="http://www.blogjava.net/wshao/aggbug/408258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 13:48 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 泛型深入 </title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408254.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408254.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408254.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408254.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 泛型的好处：&nbsp;&nbsp;&nbsp;&nbsp;泛型的主要好处就是让编译器保留参数的类型信息，执行类型检查，执行类型转换（casting）操作，编译器保证了这些类型转换（casting）的绝对无误。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.co...&nbsp;&nbsp;<a href='http://www.blogjava.net/wshao/archive/2013/12/31/408254.html'>阅读全文</a><img src ="http://www.blogjava.net/wshao/aggbug/408254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 13:45 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java生成随机字符串</title><link>http://www.blogjava.net/wshao/archive/2013/12/31/408245.html</link><dc:creator>午后星期午</dc:creator><author>午后星期午</author><pubDate>Tue, 31 Dec 2013 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/wshao/archive/2013/12/31/408245.html</guid><wfw:comment>http://www.blogjava.net/wshao/comments/408245.html</wfw:comment><comments>http://www.blogjava.net/wshao/archive/2013/12/31/408245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wshao/comments/commentRss/408245.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wshao/services/trackbacks/408245.html</trackback:ping><description><![CDATA[<p>package cc.wshao.steer.util;<br /></p>
<p>import java.util.Random;<br /></p>
<p>public class StrUtils {</p>
<p>&nbsp;<wbr>public static final String str = "0123456789abcdefghijklmn<wbr>opqrstuvwxyzABCDEFGHIJKL<wbr>MNOPQRSTUVWXYZ";</p>
<p>&nbsp;<wbr>public static void main(String[] args) {<br />&nbsp;<wbr>&nbsp;<wbr>System.out.print(getString(6));<br />&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>public static String getString(int length)&nbsp;<wbr>{<br />&nbsp;<wbr>&nbsp;<wbr>StringBuffer sb = new StringBuffer();<br />&nbsp;<wbr>&nbsp;<wbr>Random random = new Random();<br />&nbsp;<wbr>&nbsp;<wbr>for (int i = 0; i &lt; length; i++) {<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>sb.append(str.charAt(random.nextInt(str.length())));<br />&nbsp;<wbr>&nbsp;<wbr>}<br />&nbsp;<wbr>&nbsp;<wbr>return sb.toString();<br />&nbsp;<wbr>}</p>
<p>}<br /></p><img src ="http://www.blogjava.net/wshao/aggbug/408245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wshao/" target="_blank">午后星期午</a> 2013-12-31 13:22 <a href="http://www.blogjava.net/wshao/archive/2013/12/31/408245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>