ZT文萃

本博不原创,转帖自己感兴趣那些事人物,什么入眼贴什么,随心所欲。
posts - 93, comments - 5, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

CPU
CPU好比一个人的大脑,CPU的运算能力就像平时心算,心算速度越快CPU的性能就越好。AMD目前不给力,3A平台也只能在低端系列拼一拼,高端还是Intel的天下。
Intel CPU推荐
赛扬系列:G1610、G1620、G1820
奔腾系列:G2020、G2030、G3220
酷睿  I  5:3470、3570、3570K、4670K
酷睿  I  7:3770、4770、3770K、4770K
至强系列:E3-1230V2、E3-1230V3
个人觉得Intel的奔腾和赛扬系列CPU足够满足平常办公、上网、看电影、玩玩小游戏等日常需求了。酷睿系列CPU足以应付目前大多数3D网游和单机游戏,I3目前性价比低,有种低不成高不就的感觉。游戏机还是咬咬牙上I5,不会超频就选I5-3470、I5-4570。想折腾的就选择带K的CPU,比如I5-3570K、I5-4670K。工作设计、高帅富土豪类直接上至强和I7系列不纠结,在土豪面前毫无性价比可言,玩得爽才是王道。
说明一下:CPU盒装和散片的差别在于是否是正规的质保,原盒是3年质保,而散片(无散热器,就一个CPU)大多是店铺质保一年。

散热
个人认为原装的散热基本上能够满足需求,当然如果你买的是散片CPU不妨多花点钱,无论从散热还是噪音方面都有不错的提升。
CPU散热推荐
九州风神玄冰400、九州风神霜塔、采融B81、利民HR-02M

主板
主板好比人体的骨架,能做多少活,能干多大事还需看主板。世界一线主板大厂已被华硕、技嘉、华擎三分天下,微星已被华硕的子公司华擎成功地小三上位。低端不会超频的用H81/B85主板最佳,高端不差钱又想折腾的直接Z87不纠结,至于具体到那个型号,看自己需求什么样的功能即可。个人建议直接上华擎各系列,这种BIOS做得NB到爆,价格便宜量又足的屌丝之友去哪找!

内存
内存好比人体的神经,把脑和脊髓的兴奋传给各个器官,或把各个器官的兴奋传给脑和脊髓,相当于说内存越大对事件处理的速度越快。个人觉得4G勉强够用,8G还算可以,12G以上看各人的需求。威刚、海盗船、金士顿、芝奇、宇瞻……品牌比较多就不一一推荐了,不超频直接网上商城买金士顿。实体店千万别买金士顿,现在的金士顿假条比以前NB多了,直接连原厂都难分辨,可以选宇瞻或者威刚的。

显卡
显卡好比人脸化妆,你可以选择不化妆,也可以去做韩国美女。目前比较出名的显卡厂商有技嘉、蓝宝石、华硕、微星、迪兰恒进、HIS、映众,游戏类显卡竞争最激烈,而且价位又互相错开,所以说A/N两大显卡芯片厂商简直狡猾到爆。
N卡低端买650,中低端买650TI,中端买660,中高端买760,高端买770。切记显卡型号第二位数少于5(不包括5),比如210、430、640等等绝对是垃圾!
A卡低端买7750,中端买7770或260X,中高端买R270X,高端买R280X。切记显卡型号第三位数少于5(包括5),比如5450、6450等等绝对是垃圾,另外新系列显卡R250性价比低也不建议购买。

硬盘
大水过后500G和1TB的差价很小了,最好直接上单碟1TB的。希捷西部数据都看脸,个人觉得希捷是慢慢死的,有时间给你转移数据;西部数据说挂就挂,根本没给你挽救的时间。SSD本人没用过,就不在这里吹牛逼了。

机箱
机箱好比人的衣服,除了外观好看外还能保护重要部位。这里就不多说了,说多了都是泪,秀才说不过倔的兵,我直接推荐算了。
酷冷至尊毁灭者经典U3版、酷冷至尊开拓者U3普及版、恩杰H230、恩杰小幻影、恩杰H2、银欣乌鸦、银欣FT02

电源
电源好比人体的血液,血液不正常对人体整体的功能都有危害,一台电脑最重要的是电源,电源功率小了,那么恭喜你,你可以提前给你的设备挖好坑买棺材了。目前市面上的电源都是贴牌货,没有好的电源牌子,只有好的电源型号。有条件尽量不要用电脑城4大坑爹之王:航嘉、长城、金河田、大水牛之流的电源,低端电源已被黑出翔,请自行刘东一下“红星炸弹”,个人建议首选台系或台系代工的电源。
安钛克VP350P、安钛克ECO400、安钛克ECO520、安钛克TPN550、安钛克HCP1200,注意安钛克VP450P是坑爹货
海韵S12II-330、海韵S12II-430、海韵S12II-520、海韵S12II-620
在确定各硬件后,可以去各个官网查看硬件的参数,然后把功耗加起来基本上就是要买电源功率的大小了,至于电源功率余量留多少看各人需求。

显示器
有人喜欢屏幕大,有人喜欢16:10,众口难调很难作推荐,反正认定三年质保的大品牌显示器就没错。为了大家的视力,请不要选择18.5、20、21.5这几个尺寸的显示器,可以刘东一下“显示器分辨率”。需要注意的是显示器尺寸越大标准的分辨率越高,对机器的配置的需求也越高。

posted @ 2014-03-06 05:32 ZT文萃 阅读(179) | 评论 (0)编辑 收藏

http://laohuang.iteye.com/blog/55613

1.拳头之Get/Post
拳头是最基本的一重武器,也是最重要的,好比练武之人必须先扎稳马步。

java 代码
 
  1. HttpClient httpclient=new HttpClient();//创建一个客户端,类似打开一个浏览器  
  2. GetMethod getMethod=new GetMethod("http://www.blablabla.com");//创建一个get方法,类似在浏览器地址栏中输入一个地址  
  3. int statusCode=httpclient.executeMethod(getMethod);//回车——出拳!  
  4. System.out.println("response=" + getMethod.getResponseBodyAsString());//察看拳头命中情况,可以获得的东西还有很多,比如head, cookies等等  
  5. getMethod.releaseConnection();//释放,记得收拳哦  


2.孔雀翎之支持https

如何支持https?
java 代码
 
  1. static{  
  2.     Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);  
  3.     Protocol.registerProtocol("https", easyhttps);  
  4. }  

在执行具体的http method之前,暗中将https协议注册一把,如孔雀翎暗藏玄机,毙敌于无形。记住,官方的binary发行版本没有ssl的contribute包,方法一是下载源代码版本来打造你的孔雀翎。

3.多情环之cookies
常道人老多情,其实是记忆太多,所以情之所至,正如cookies甜心,无论你走到那,总把你牵挂:
java 代码
 
  1. HttpClient httpclient=new HttpClient();  
  2. httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议  
  3. HttpState initialState = new HttpState();  
  4. Cookie cookie=new Cookie();  
  5. cookie.setDomain("www.balblabla.com");  
  6. cookie.setPath("/");  
  7. cookie.setName("多情环");  
  8. cookie.setValue("多情即无情");  
  9. initialState.addCookie(cookie);  
  10. httpclient.setState(initialState);  
  11. ...  


4.离别钩之解构cookies

多情环的反面即离别钩,钩出,敌之身体某个部件即要与身体别离,端的是无情:
java 代码
 
  1. ...//执行了某些get/post方法后  
  2. Cookie[] cookies = httpclient.getState().getCookies();  
  3. System.out.println("Present cookies: ");  
  4. for (int i = 0; i < cookies.length; i++) {//循环结构零部件  
  5.     System.out.println(" - " + cookies[i].toExternalForm());  
  6.     System.out.println(" - domain=" + cookies[i].getDomain());  
  7.     System.out.println(" - path=" + cookies[i].getPath());  
  8.     ...            
  9. }  


5.霸王抢之post参数
枪,长兵器之王,诸多名将均使一杆或金或银命名的名枪,比如岳飞。post方法在提交参数对时,犹如灵蛇出洞:
java 代码
 
  1. PostMethod postMethod = new PostMethod("http://www.saybot.com/postme");  
  2. NameValuePair[] postData = new NameValuePair[2];  
  3. postData[0] = new NameValuePair("武器", "枪");  
  4. postData[1] = new NameValuePair("什么枪", "神枪");  
  5. postMethod.addParameters(postData);  
  6. ...//出枪吧  


6.七星碧玉刀之支持代理(proxy)

代理,非常重要,尤其在局域网横行的年头,没有代理,你在公司上不了QQ,没有代理,google不了网页快照,代理之威,可比七星碧玉刀,无刀,在局域网和开发当中,一切白搭:
java 代码
 
  1. HttpClient httpclient=new HttpClient();  
  2. httpClient.getHostConfiguration().setProxy("192.168.0.1", 9527);  
  3. httpClient.getParams().setAuthenticationPreemptive(true);//重要!!!告诉httpclient,使用抢先认证,否则你会收到“你没有资格”的恶果  
  4. /* 
  5.   这一步也至关重要,MyProxyCredentialsProvider实现了org.apache.commons.httpclient.auth.CredentialsProvider接口, 
  6.   返回代理的credential(username/password)*/  
  7. httpClient.getParams().setParameter(CredentialsProvider.PROVIDER, new MyProxyCredentialsProvider());  
  8. httpClient.getState().setProxyCredentials(  
  9.     new AuthScope("192.168.0.1",  
  10.         AuthScope.ANY_PORT, //任意端口哦,可要小心  
  11.         AuthScope.ANY_REALM),//任意域哦,可要小心  
  12. new UsernamePasswordCredentials("username",//proxy的用户名  
  13.                         "password"));//proxy的密码  

...

7.长生剑之天下第一
看httpclient的官方文档:jakarta.apache.org/commons/httpclient/userguide.html
看Hilton网友写的小葵花宝典笔记:www.cnjm.net/tech/article1155.html
通读后,你会有种拔剑四顾心茫然的高手感觉。

七种武器,打完收工!

posted @ 2014-02-26 18:10 ZT文萃 阅读(283) | 评论 (0)编辑 收藏

转载自:
http://wallimn.iteye.com/blog/540566

最近忙于一个项目,了解下httpclient,在这里总结出来,和大家一起学习分享,希望各位朋友提出宝贵的意见。

首先介绍一下项目的背景:
  目标:把国内一家保险公司的“WEB一账通”改成“WAP一账通”。
  资源:客户不提供任何的webservice接口。
 
本项目中用到的第三方组件是apache的httpclient,一个非常强大的网页抓取工具(抓这个字用得可能不太好), 这里和大家
一起讨论下httpclient的一些常用用法和要注意的地方。

本文引用的资源列表:

  httpclient入门:  http://www.ibm.com/developerworks/cn/opensource/os-httpclient/
  httpclient证书导入:http://www.blogjava.net/happytian/archive/2006/12/22/89447.html
  httpclient高级认识:http://laohuang.iteye.com/blog/55613
  httpclient官方文档:http://hc.apache.org/httpcomponents-client/index.html
  httpclient资源关闭:http://www.iteye.com/topic/234759
 
 
上面的文章写得很好,看完之后也就知道怎么用httpclient这个很好的工具了,但是在这里还是补充一些比较重要的东西,也是项目中经
常碰到的问题。

首先要注意的有以下几点:
1、httpclient连接后资源释放问题很重要,就跟我们用database connection要释放资源一样。
2、https网站采用ssl加密传输,证书导入要注意。
3、做这样的项目最好先了解下http协义,比如302,301,200,404返回代码的含义(这是最基本的),cookie,session的机制。
4、httpclient的redirect状态默认是自动的,这在很大程度上给开发者很大的方便(如一些授权获得cookie),但是有时要手动管理下,比如
  有时会遇到CircularRedirectException异常,出现这样的情况是因为返回的头文件中location值指向之前重复(端口号可以不同)地址,导致可能会出现死
  循环递归重定向,这时可以手动关闭:method.setFollowRedirects(false)
5、有的网站会先判别用户的请求是否是来自浏览器,如不是,则返回不正确的文本,所以用httpclient抓取信息时在头部加入如下信息:
  header.put("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)");
6、当post请求提交数据时要改变默认编码,不然的话提交上去的数据会出现乱码。重写postMethod的setContentCharSet()方法就可以了:





 
下面写一个通用类来处理request请求返回的文本:
Java代码  收藏代码
  1. /* 
  2.  * HttpRequestProxy.java 
  3.  * 
  4.  * Created on November 3, 2008, 9:53 AM 
  5.  */  
  6.   
  7. package cn.com.mozat.net;  
  8.   
  9. import java.io.BufferedReader;  
  10. import java.io.IOException;  
  11. import java.io.InputStream;  
  12. import java.io.InputStreamReader;  
  13. import java.util.HashMap;  
  14. import java.util.Iterator;  
  15. import java.util.Map;  
  16. import java.util.Set;  
  17.   
  18. import org.apache.commons.httpclient.Header;  
  19. import org.apache.commons.httpclient.HttpClient;  
  20. import org.apache.commons.httpclient.HttpException;  
  21. import org.apache.commons.httpclient.HttpMethod;  
  22. import org.apache.commons.httpclient.NameValuePair;  
  23. import org.apache.commons.httpclient.SimpleHttpConnectionManager;  
  24. import org.apache.commons.httpclient.methods.GetMethod;  
  25. import org.apache.commons.httpclient.methods.PostMethod;  
  26.   
  27. import cn.com.mozat.exception.CustomException;  
  28.   
  29. /** 
  30.  *  
  31.  * @author bird  email:lihongfu-84@163.com 
  32.  * 
  33.  * 2008-11-4  09:49:48 
  34.  */  
  35. public class HttpRequestProxy{  
  36.     //超时间隔  
  37.     private static int connectTimeOut = 60000;  
  38.  //让connectionmanager管理httpclientconnection时是否关闭连接  
  39.     private static boolean alwaysClose = false;  
  40.  //返回数据编码格式  
  41.     private String encoding = "UTF-8";  
  42.       
  43.     private final HttpClient client = new HttpClient(new SimpleHttpConnectionManager(alwaysClose));  
  44.    
  45.     public HttpClient getHttpClient(){  
  46.         return client;  
  47.     }  
  48.         
  49.     /** 
  50.      * 用法: 
  51.      * HttpRequestProxy hrp = new HttpRequestProxy(); 
  52.      * hrp.doRequest("http://www.163.com",null,null,"gbk"); 
  53.      *  
  54.      * @param url  请求的资源URL 
  55.      * @param postData  POST请求时form表单封装的数据 没有时传null 
  56.      * @param header   request请求时附带的头信息(header) 没有时传null 
  57.      * @param encoding response返回的信息编码格式 没有时传null 
  58.      * @return  response返回的文本数据 
  59.      * @throws CustomException  
  60.      */  
  61.     public String doRequest(String url,Map postData,Map header,String encoding) throws CustomException{  
  62.      String responseString = null;  
  63.      //头部请求信息  
  64.      Header[] headers = null;  
  65.      if(header != null){  
  66.       Set entrySet = header.entrySet();  
  67.          int dataLength = entrySet.size();  
  68.           headers= new Header[dataLength];  
  69.          int i = 0;  
  70.          for(Iterator itor = entrySet.iterator();itor.hasNext();){  
  71.           Map.Entry entry = (Map.Entry)itor.next();  
  72.           headers[i++] = new Header(entry.getKey().toString(),entry.getValue().toString());  
  73.          }  
  74.      }  
  75.      //post方式  
  76.         if(postData!=null){  
  77.          PostMethod postRequest = new PostMethod(url.trim());  
  78.          if(headers != null){  
  79.           for(int i = 0;i < headers.length;i++){  
  80.            postRequest.setRequestHeader(headers[i]);  
  81.           }  
  82.          }  
  83.          Set entrySet = postData.entrySet();  
  84.          int dataLength = entrySet.size();  
  85.          NameValuePair[] params = new NameValuePair[dataLength];  
  86.          int i = 0;  
  87.          for(Iterator itor = entrySet.iterator();itor.hasNext();){  
  88.           Map.Entry entry = (Map.Entry)itor.next();  
  89.           params[i++] = new NameValuePair(entry.getKey().toString(),entry.getValue().toString());  
  90.          }  
  91.          postRequest.setRequestBody(params);  
  92.          try {  
  93.     responseString = this.executeMethod(postRequest,encoding);  
  94.    } catch (CustomException e) {  
  95.     throw e;  
  96.    } finally{  
  97.     postRequest.releaseConnection();  
  98.    }  
  99.         }  
  100.       //get方式  
  101.         if(postData == null){  
  102.          GetMethod getRequest = new GetMethod(url.trim());  
  103.          if(headers != null){  
  104.           for(int i = 0;i < headers.length;i++){  
  105.            getRequest.setRequestHeader(headers[i]);  
  106.           }  
  107.          }  
  108.          try {  
  109.     responseString = this.executeMethod(getRequest,encoding);  
  110.    } catch (CustomException e) {  
  111.                 e.printStackTrace();  
  112.     throw e;  
  113.    }finally{  
  114.     getRequest.releaseConnection();  
  115.    }  
  116.         }  
  117.    
  118.         return responseString;  
  119.     }  
  120.   
  121.  private String executeMethod(HttpMethod request, String encoding) throws CustomException{  
  122.   String responseContent = null;  
  123.   InputStream responseStream = null;  
  124.   BufferedReader rd = null;  
  125.   try {  
  126.    this.getHttpClient().executeMethod(request);  
  127.    if(encoding != null){  
  128.     responseStream = request.getResponseBodyAsStream();  
  129.      rd = new BufferedReader(new InputStreamReader(responseStream,  
  130.                       encoding));  
  131.               String tempLine = rd.readLine();  
  132.               StringBuffer tempStr = new StringBuffer();  
  133.               String crlf=System.getProperty("line.separator");  
  134.               while (tempLine != null)  
  135.               {  
  136.                   tempStr.append(tempLine);  
  137.                   tempStr.append(crlf);  
  138.                   tempLine = rd.readLine();  
  139.               }  
  140.               responseContent = tempStr.toString();  
  141.    }else  
  142.     responseContent = request.getResponseBodyAsString();  
  143.              
  144.    Header locationHeader = request.getResponseHeader("location");  
  145.    //返回代码为302,301时,表示页面己经重定向,则重新请求location的url,这在  
  146.    //一些登录授权取cookie时很重要  
  147.    if (locationHeader != null) {  
  148.              String redirectUrl = locationHeader.getValue();  
  149.              this.doRequest(redirectUrl, null, null,null);  
  150.          }  
  151.   } catch (HttpException e) {  
  152.    throw new CustomException(e.getMessage());  
  153.   } catch (IOException e) {  
  154.    throw new CustomException(e.getMessage());  
  155.   
  156.   } finally{  
  157.    if(rd != null)  
  158.     try {  
  159.      rd.close();  
  160.     } catch (IOException e) {  
  161.      throw new CustomException(e.getMessage());  
  162.     }  
  163.     if(responseStream != null)  
  164.      try {  
  165.       responseStream.close();  
  166.      } catch (IOException e) {  
  167.       throw new CustomException(e.getMessage());  
  168.   
  169.      }  
  170.   }  
  171.   return responseContent;  
  172.  }  
  173.    
  174.      
  175.  /** 
  176.   * 特殊请求数据,这样的请求往往会出现redirect本身而出现递归死循环重定向 
  177.   * 所以单独写成一个请求方法 
  178.   * 比如现在请求的url为:http://localhost:8080/demo/index.jsp 
  179.   * 返回代码为302 头部信息中location值为:http://localhost:8083/demo/index.jsp 
  180.   * 这时httpclient认为进入递归死循环重定向,抛出CircularRedirectException异常 
  181.   * @param url 
  182.   * @return 
  183.   * @throws CustomException  
  184.   */  
  185.  public String doSpecialRequest(String url,int count,String encoding) throws CustomException{  
  186.   String str = null;  
  187.   InputStream responseStream = null;  
  188.   BufferedReader rd = null;  
  189.   GetMethod getRequest = new GetMethod(url);  
  190.   //关闭httpclient自动重定向动能  
  191.   getRequest.setFollowRedirects(false);  
  192.   try {  
  193.      
  194.    this.client.executeMethod(getRequest);  
  195.    Header header = getRequest.getResponseHeader("location");  
  196.    if(header!= null){  
  197.     //请求重定向后的URL,count同时加1  
  198.     this.doSpecialRequest(header.getValue(),count+1, encoding);  
  199.    }  
  200.    //这里用count作为标志位,当count为0时才返回请求的URL文本,  
  201.    //这样就可以忽略所有的递归重定向时返回文本流操作,提高性能  
  202.    if(count == 0){  
  203.     getRequest = new GetMethod(url);  
  204.     getRequest.setFollowRedirects(false);  
  205.     this.client.executeMethod(getRequest);  
  206.     responseStream = getRequest.getResponseBodyAsStream();  
  207.     rd = new BufferedReader(new InputStreamReader(responseStream,  
  208.                       encoding));  
  209.              String tempLine = rd.readLine();  
  210.              StringBuffer tempStr = new StringBuffer();  
  211.              String crlf=System.getProperty("line.separator");  
  212.              while (tempLine != null)  
  213.              {  
  214.                  tempStr.append(tempLine);  
  215.                  tempStr.append(crlf);  
  216.                  tempLine = rd.readLine();  
  217.              }  
  218.              str = tempStr.toString();  
  219.    }  
  220.      
  221.   } catch (HttpException e) {  
  222.    throw new CustomException(e.getMessage());  
  223.   } catch (IOException e) {  
  224.    throw new CustomException(e.getMessage());  
  225.   } finally{  
  226.    getRequest.releaseConnection();  
  227.    if(rd !=null)  
  228.     try {  
  229.      rd.close();  
  230.     } catch (IOException e) {  
  231.      throw new CustomException(e.getMessage());  
  232.     }  
  233.     if(responseStream !=null)  
  234.      try {  
  235.       responseStream.close();  
  236.      } catch (IOException e) {  
  237.       throw new CustomException(e.getMessage());  
  238.      }  
  239.   }  
  240.   return str;  
  241.  }  
  242.    
  243.    
  244.    
  245.    
  246.  public static void main(String[] args) throws Exception{  
  247.   HttpRequestProxy hrp = new HttpRequestProxy();  
  248.    Map header = new HashMap();  
  249.          header.put("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)");  
  250.   String str = hrp.doRequest(  
  251.     "http://www.cma-cgm.com/en/eBusiness/Tracking/Default.aspx?BolNumber=GZ2108827",  
  252.      null, header,null);  
  253.   System.out.println(str.contains("row_CRXU1587647"));  
  254. //  System.out.println(str);  
  255.  }  
  256.      

posted @ 2014-02-26 18:08 ZT文萃 阅读(346) | 评论 (0)编辑 收藏

转载自:
http://www.cnblogs.com/happyPawpaw/archive/2013/03/27/2984023.html

现提供两种方法: 
方法一: 
如果你用过Toolkit(java.awt.Toolkit)类,这将是一件很简单的事情: 
Toolkit tk=Toolkit.getDefaultToolkit() 
Image image=tk.createImage("image.gif"); /*image.gif是你的图标*/ 
this.setIconImage(image); 

注意:这个图标一定要是好用的图标。

就这么简单,看看,已经变成你自己的图标了。Toolkit是个很有用类的,提供很多对窗口默认行为的修改,下面随便提一下,怎么把默认的鼠标图标改成你自己的图标: 
Toolkit tk=Toolkit.getDefaultToolkit(); 
Image img=tk.getImage("mouse.gif"); /*mouse.gif是你的图标*/ 
Cursor cu=tk.createCustomCursor(img,new Point(10,10),"stick"); 
this.setCursor(cu); 

方法二: 
用到ImageIcon类和setIconImage方法。 
import javax.swing.*; 
public class A extends JFrame { 
    String image = new String("face.gif"); //建立一个字符串保存要用的图标的路径,关于java的路径请参考其它文档 
    ImageIcon test = new ImageIcon(image); //建立一个ImageIcon类,产生setIconImage()方法需要的Image数据 

    public A() { 
        super("演示自定义标题栏的图标的方法"); 
        this.setIconImage(test.getImage()); //设置标题栏的图标为face.gif 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
        this.show(); 
        //this.setTitle("sdfsdf"); 
        this.setSize(400,200); 
    } 
    public static void main(String[] args) { 
        A jIcon = new A();       
    } 


此法本人再次简化为两条语句: 
import javax.swing.*; 
public class A extends JFrame { 
    ImageIcon test = new ImageIcon(new String(face.gif));//第一句 
    public A() { 
        super("演示自定义标题栏的图标的方法"); 
        this.setIconImage(test.getImage()); //第二句 
         this.setSize(400,200); 
        this.show(); 

    public static void main(String[] args) { 
        A jIcon = new A();       
    } 
}

posted @ 2014-02-21 10:13 ZT文萃 阅读(244) | 评论 (0)编辑 收藏

转载自:
http://www.sbanzu.com/topicdisplay.asp?BoardID=8&Page=9&TopicID=4112790

照片中的柴静虽然身材明显发福,但仍可见昔日“女神”风采。据知情人透露,柴静私下从不主动谈及私生活,特别是在结婚消息曝光后,让她对隐私更加保护。至于其老公赵嘉,如今在央视下属一家公司担任首席财政官,同时继续从事摄影事业。


被坊间传闻为“央视最穷主持人”的柴静被爆在去年10月赴美国产下一女,升级当妈。此外,她为女儿取名叫柴知然,柴静曾私下表示希望女儿不仅“知然”,且能“知其所以然”。



不管公知还是五毛,都把后代往洋大人那里放。批评这个体制的,吹捧这个体制的,都选择把娃儿生在美国。这才是真正的普世价值啊,无关身份,无关制度,无关肤色,无关民族,只有对孩子绝对的爱,以及与孩子有关的自由向往。

@十年砍柴 :公知和五毛理应都为柴静在美国产女感到高兴。所谓公知当然贺其为孩子选择了含金量高的国籍。而爱国的五毛,应庆祝她的女儿将来没有强大的中国庇护,而且为自己的儿女腾出在中国的空间,替自己儿女省下社会抚养费。

@刘桂娟: 我认识的很多精英和条件优越的人都选择在美生孩子,将来孩子不用付出几百万的留学费用,18岁后有选票。我一移民澳洲的朋友,两个孩子免费上学,她经常回国看父母,每到选举时必回澳洲,骄傲的说:我去投票!我都没见过咱们的选票长什么样

@沁水一波:柴静在美国生孩子真是她个人的事,勿须责怪。让人不舒服的是以前高调深爱中国的她用脚表明她的爱并不深。记得知青下放时叫的最响要扎根农村的人往往是溜的最快的。不高调就不行吗?此事让人不适应的是语言和行动的反差,而不是在美国生孩子这事。

@木子老龙 :柴静把孩子生在美国,司马南把孩子送到美国,无论政见如何,在爱自己的孩子这一点上,方向是高度一致的。什么叫普世价值?这就是普世价值。

@奋壹:在推特上看到一个神评:看到柴静美国产女的新闻,不胜唏嘘,不管是民主派还是自由派,最后都是美国派。好不容易有个深深的爱着这片土地的国师张艺谋把孩子生在国内,还被计生委罚得稀里哗啦。

@王鹏律师 :以前觉得她很高尚,媒体届最具良心的代表之一,现发现她很务实,没有拿女儿的未来做赌博。作为父母,从子女幸福的角度出发本身没有什么错,也不能指责她的选择。该反思的问题是为什么这么多精英去国外生子,享有外国户籍? 中国到底哪里有问题?

奇葩国家啊,爱他和恨他的人都要做他敌人的爹妈。
基本上,就算未来中国富裕民主发达了,那些特权移民同样可以依靠特权设法回来。比如现在那些拿着美国绿卡乃至国籍却可以赖在中国搂钱的特权分子就是如此(无论他们嘴巴里喊的是普世价值还是共产主义,被人称作公知还是走狗,本质上都是一样的)。

后悔的最多不过是那些普通移民罢了。也不用等将来,现在就有。

中国尽出汉奸,这倒是没跑的

posted @ 2014-02-21 06:46 ZT文萃 阅读(219) | 评论 (0)编辑 收藏

 

http://wangguanxiong.baijia.baidu.com/article/4681

 

创办5年、50个人的小公司值160亿美元!

是FaceBook疯了还是你不够“疯”?

【巨头狂野搏命移动端】

今晨重磅消息,美国社交网络老大Facebook收购WhatsApp,一个员工50人、其中32名是工程师的 小公司。为此,Facebook付出了总金额160亿美元“现金+股票”的昂贵代价。此外,还承诺给创始人团队30亿美元的四年行权限制股,加上期权交易 规模将达190亿美元。

WhatsApp是一个跨平台通讯应用,创办于2009年。界面朴素简洁,没有任何花哨的功能,核心功能就是帮助用户收发消息。简单说,有点像简化版的微信。

目前其月活跃用户达4.5亿(其中70%每天登录),每天新增用户100万,每天发送消息达到全球电信的短信数量,每天有10亿张照片、2亿条音频消息、1亿条视频消息通过该软件传输。

因此,这对致力于“连结人与信息”的Facebook来说,是一个极大威胁。很简单,要么战胜你,要么买下你。这和脸谱2012年收购图片分享应用Instagram的逻辑一致,在社交网络这个核心领域,脸谱绝不会允许他人染指。

更重要的是,从WhatsApp、Instagram到最近风靡美国年轻人的snapshot,都是为移动而生的应用。实际上,移动互联网的发展速度远远超过桌面互联网,巨头们正疯狂地买公司、买人,否则一不小心就会被干掉。

【每个员工值20亿】

然而,在这笔轰动全球的交易中,真正让我激动的是人的价值。

即使不包含30亿美元的期权价值,仅按立即支付的160亿美金收购价计算,按最新汇率,WhatsApp一个员工值20亿人民币,20亿!

两年前,当FaceBook斥资10亿美金收购只有13个人的Instgram时,他们该处的价格是一个人大约一亿美金。现在,价格翻了3倍。

这对一直重视“看得见的资产”的中国人来说,几乎是不可想象的。许多传统老板会想,就这么几个小屁孩敢要几十亿美金,疯了?这种思维定势有时很难扭转,看走眼的还包括现在如日中天的腾讯CEO马化腾。

当年,Instagram估值还不到1亿美金时腾讯曾有机会投资。当时Instagram只有几个人,在一个靠 近海边的房子办公。就是一层玻璃,外面都看得见,扔个砖头就可以把里面的电脑全拿走了。腾讯某副总裁看着说,这个公司不太靠谱吧,才几个人。后来,腾讯不 得不估值8亿美金时跟投。

这就是人的价值,只要拥有创新能力的人做出一个创新产品,他们足以撬动整个地球。

【人是科技第一生产力】

NOP男装创始人刘爽认为管理分为两种:管人管事,选择哪种不取决于领导者意志,而取决于企业行业类型。管事型 企业的代表是制造业和零售业,比如富士康和沃尔玛,人人都是螺丝钉,不需要你创新,需要的是你的执行效率。而管人型企业的代表是高科技和互联网,比如微软 和谷歌,其产品和服务的研发改良依赖于员工个人的创造力创新力。

如果想做一个产品服务高度依托互联网经济和体验经济的软硬件一体式品牌公司,那就应该选择管人和众智。落到具体就是有边界的制度,无边界的沟通。

当年,邓小平同志以无畏的政治勇气和理论高度,说出了一句名言:“科技是第一生产力”。这句话,激励了整整几代中国人。它让人们看到了科技的价值、知识的价值,也是现在长盛不衰的知识经济的动力。

现在,我想说:人是科技的第一生产力。不重视人的价值,不尊重人的需求,不解放人的生产力,必将被互联网时代快速淘汰。

请扪心自问。

(更多深度,扫描下方二维码后看历史文章)

作者简介:一个IPO专业户、超级自媒体。我信仰互联网,因为它实现了人和一切的自由连接,这是3代人必经的命运。微博@互联网信徒王冠雄,微信wang-guanxiong。见人所之未见,每一条都对得起关注!

posted @ 2014-02-21 06:12 ZT文萃 阅读(194) | 评论 (0)编辑 收藏

转载自:
http://blog.csdn.net/haoren_e/article/details/6043645


     在linux上部署项目的时候,我们往往通过一段shell来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本:

 

  1. #!/bin/sh  
  2. # -----------------------------------------------------------------------------  
  3. # Start script for the CMGP BOSSCONTROL   
  4. #  
  5. # $Id: run_bosscontrol.sh,v 1.0 2007/11/06 Exp $  
  6. # -----------------------------------------------------------------------------  
  7. #指定字符集  
  8. LANG=zh_CN.GBK export LANG  
  9. RUN_HOME=.  
  10. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/checking.jar  
  11. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/ojdbc14.jar  
  12. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/commons-dbutils-1.1.jar  
  13. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/log4j-1.2.14.jar  
  14. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/dom4j-1.6.jar  
  15.   
  16. export CLASSPATH  
  17.   
  18. java  com.**.checking.Checking_Start >> log.out &   
 

 

手动命令行运行该脚本的时候,可以正常运行java程序,但是使用crontab定时任务,貌似就不起效果了,很是郁闷哪,查原因哪,分析可能原因:

 1)是否当前用户对此shell脚本没有可执行权限,通过ls -lrt /apps/service/mtk/checking/run.sh查看脚本是有可执行,但是有执行权限呀-rwxr-xr-x

 2)既然单独运行脚本没问题,那会不会是定时的问题呢?于是写了一个简单的输出的shell脚本通过定时也是没问题的。说明还是脚本的问题。

后来上网查了下,想到可能是脚本中环境变量的原因,因为通过crontab运行脚本,是以root用户,而不是当前用户,于是cat /etc/profile查看环境变量,然后修改脚本如下:

  1. #!/bin/sh  
  2. # -----------------------------------------------------------------------------  
  3. # Start script for the CMGP BOSSCONTROL   
  4. #  
  5. # $Id: run_bosscontrol.sh,v 1.0 2007/11/06 Exp $  
  6. # -----------------------------------------------------------------------------  
  7. export PATH=/apps/usr/java/jdk1.5/bin:$PATH  
  8. export JAVA_HOME=/apps/usr/java/jdk1.5  
  9. export JRE_HOME=/apps/usr/java/jdk1.5/jre  
  10. export CLASSPATH=/apps/usr/java/jdk1.5/lib:/apps/usr/java/jdk1.5/jre/lib:$CLASSPATH  
  11. RUN_HOME=/apps/service/checking  
  12. CLASSPATH=$CLASSPATH$RUN_HOME/lib/checking.jar  
  13. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/ojdbc14.jar  
  14. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/commons-dbutils-1.1.jar  
  15. CLASSPATH=$CLASSPATH:$RUN_HOME/lib/log4j-1.2.14.jar  
  16.  CLASSPATH=$CLASSPATH:$RUN_HOME/lib/dom4j-1.6.jar  
  17.   
  18. export CLASSPATH=$CLASSPATH  
  19.   
  20. java  com.**.checking.Checking_Start >> log.out &   

 

export显示导出为用户环境变量的环境变量
以上这种jar包是通过eclipse工具export导出,不包含MANIFEST.MF文件,如果使用打包工具Ant,我们可以在打包默认的build.xml文件中设置Class-Path
将第三方jar包加入manifest.mf文件中,且指定程序主类
在build.xml中添加如下内容:

 

  1. <!-- create a property containing all .jar files, prefix lib/, and seperated with a space -->  
  2. <pathconvert property="libs.project" pathsep=" ">  
  3.    <mapper>  
  4.       <chainedmapper>  
  5.         <!-- remove absolute path -->  
  6.         <flattenmapper />  
  7.        <!-- add lib/ prefix -->  
  8.        <globmapper from="*" to="lib/*" />  
  9.       </chainedmapper>  
  10.     </mapper>  
  11.      <path>  
  12.       <!-- lib.home contains all jar files, in several subdirectories -->  
  13.       <fileset dir="${lib.dir}">  
  14.        <include name="**/*.jar" />  
  15.       </fileset>  
  16.      </path>  
  17.   </pathconvert>  

 

另外,在create manifest文件时,加上:

  1. <!-- 这样就可以将第三方jar包加入 -->   
  2. <attribute name="Class-Path" value="${libs.project}" />  
  3. <!-- 程序运行的主类 -->  
  4. <attribute name="Main-Class" value="com.**.checking.Checking_Start " />  

 

这样运行ant,打成的jar包中MANIFEST.MF中内容如下:

  1. Manifest-Version: 1.0  
  2. Ant-Version: Apache Ant 1.7.0  
  3. Created-By: 1.5.0_09-b01 (Sun Microsystems Inc.)  
  4. Implementation-Title: fee task  
  5. Implementation-Version: 1.0  
  6. Implementation-Vendor: Aspire  
  7. Main-Class: com.aspire.cmgp.flowcontrol.server.FlowControlServer  
  8. Class-Path: lib/cmgp-util-1.0.1.jar lib/commons-codec-1.3.jar lib/comm  
  9.  ons-collections.jar lib/commons-dbcp-1.2.1.jar lib/commons-httpclient  
  10.  .jar lib/commons-logging.jar lib/commons-pool-1.2.jar lib/dom4j.jar l  
  11.  ib/log4j.jar lib/ojdbc14.jar  

 

这样在shell脚本中就不需要指定程序所需要的jar包了,也就不存在环境变量设置的恼人问题。比较正规的也是这么操作的。
这样在shell中就直接运行jar包就行了:java -jar 主程序.jar -Xmx1024m -Xms1024m -Xmn512m,多好多方便~

posted @ 2014-02-20 11:25 ZT文萃 阅读(641) | 评论 (0)编辑 收藏

http://blog.163.com/kevinlee_2010/blog/static/16982082020112710557998/

第一种是以毫秒为单位计算的。

  Java代码

  //伪代码

  long startTime=System.currentTimeMillis();   //获取开始时间

  doSomeThing();  //测试的代码段

  long endTime=System.currentTimeMillis(); //获取结束时间

  System.out.println("程序运行时间: "+(end-start)+"ms");

  //伪代码

  long startTime=System.currentTimeMillis();   //获取开始时间

  doSomeThing();  //测试的代码段

  long endTime=System.currentTimeMillis(); //获取结束时间

  System.out.println("程序运行时间: "+(end-start)+"ms");

  第二种是以纳秒为单位计算的。

  Java代码

  //伪代码

  long startTime=System.nanoTime();   //获取开始时间

  doSomeThing();  //测试的代码段

  long endTime=System.nanoTime(); //获取结束时间

  System.out.println("程序运行时间: "+(end-start)+"ns");

  //伪代码

  long startTime=System.nanoTime();   //获取开始时间

  doSomeThing();  //测试的代码段

  long endTime=System.nanoTime(); //获取结束时间

  System.out.println("程序运行时间: "+(end-start)+"ns");

posted @ 2014-02-14 09:51 ZT文萃 阅读(208) | 评论 (0)编辑 收藏

http://china.gmail.cn/html/38/63638-41467.html


javaz中对日期时间的处理比较多,代码中列出了3中日期时间计算差值的方法。

比如:现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

 

java计算时间差及比较时间大小
比如:现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try
{
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}

方法二: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2004-03-26 13:31:40");
java.util.Date date=df.parse("2004-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");

方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");


====================================================

java 比较时间大小

String s1="2008-01-25 09:12:09";
String s2="2008-01-29 09:12:11";
java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
try
{
c1.setTime(df.parse(s1));
c2.setTime(df.parse(s2));
}catch(java.text.ParseException e){
System.err.println("格式不正确");
}
int result=c1.compareTo(c2);
if(result==0)
System.out.println("c1相等c2");
else if(result<0)
System.out.println("c1小于c2");
else
System.out.println("c1大于c2");

posted @ 2014-02-14 09:49 ZT文萃 阅读(224) | 评论 (0)编辑 收藏

下文转载自:

http://www.cnblogs.com/qixin622/archive/2010/07/23/1784002.html

 


Java'中的几种Look and Feel
1、Metal风格 (默认)
String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
2、Windows风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
3、Windows Classic风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
4、Motif风格
String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
5、Mac风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
6、GTK风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
7、可跨平台的默认风格
String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);
8、当前系统的风格
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);

在Java中让用户能够动态地更改应用的外观,可以给用户更好地体验,具体的实现方式是:
1,先使用UIManager.setLookAndFeel(String s)方法设定对应的外观
2,再使用SwingUtilities.updateComponentTreeUI(Component c)方法立刻更新应用的外观
这两个类均在javax.swing包中

posted @ 2014-02-12 10:20 ZT文萃 阅读(211) | 评论 (0)编辑 收藏

仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页