知识整理[二〇一二年八月三日 星期五]

  1. 云栖社区>
  2. 博客>
  3. 正文

知识整理[二〇一二年八月三日 星期五]

科技小先锋 2017-11-15 23:50:00 浏览1060
展开阅读全文

 好一段时间没写博客了。主要是我换了新环境,来到上海了,中间有段小插曲。。。具体不多说了,整理下最近的笔记。

如何卸载WINDOWS服务?

在查看“管理工具”→ “ 服务” 时会发现有一些被插件或者病毒安装的服务,首先想到的是禁用它,可是禁用后还是有些想法,比如删除文件、卸载服务。下面就简单地介绍一下如何卸载服务:

在“管理工具”→ “ 服务”里找到你要卸载的服务,双击打开它的属性,比如查看“卡巴斯基反病毒6.0个人版”的属性,可以看到如下描述:

服务名称:AVP
显示名称:卡巴斯基反病毒6.0个人版

然后打开注册表(运行regedit),依次打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,
在Services下找到你要卸载的服务的名称,上例中即为AVP,删除整个AVP项,重启计算机后就把该服务完全卸载了。

另外,在卸载服务前也可以把关联的文件删除,在服务的属性中“可执行文件的路径”下即为其关联的文件。

 

JAVA获取当前年份和月份?

 


  1. Calendar cal = Calendar.getInstance(); 
  2. int year = cal.get(Calendar.YEAR); 
  3. int month = cal.get(Calendar.MONTH )+1
  4.  
  5. System.out.println(year + " 年 " + month + " 月"); 

 

PHP开启GD扩展?

找到php.ini文件,在里面把extension=php_gd2.dll前面的;注释去掉
php_gd2.dll文件在php/ext下,检查它是否存在
下面一段代码用来检测你的机器是否安装了GD扩展:
<?php
if(extension_loaded('gd')) {
  echo '你可以使用gd<br>';
  foreach(gd_info() as $cate=>$value)
    echo "$cate: $value<br>";
}else
  echo '你没有安装gd扩展';
?>
 
 
php的Mysql扩展
 
 
本地配置wamp配置多个网站的方法

1. 首先将Windows/system32/drivers/etc/hosts文件打开(用记事本打开)

2. 将原来的127.0.0.1 localhost改为
127.0.0.1 localhost
127.0.0.1 nitnews      #(这个你可以自己顺便写)

3. 保存修改后的文件,如果有什么提示就允许即可

4. 启动wamp打开apache配置文件(我的wamp是在D盘装的),文件位置在wamp/bin/apache/apache2.2.8/conf/httpd.conf文件

5. 修改httpd.conf文件
找到ServerName localhost:80在前面加上#屏蔽了
找到DocumentRoot ”D:/wamp/www/”也在前面加上#屏蔽了
这个地方原来是什么样我忘了,就找下和这个相似的改成这个样,我前面配置过伪静态好像改过这里。
<Directory />
Options FollowSymLinks
#AllowOverride None
AllowOverride All

#Order deny,allow

#Deny from all

</Directory>
再找到Allow from 127.0.0.1这个改成Allow from all
再在文件最后填上
NameVirtualHost *:80

<VirtualHost *:80>

ServerName localhost

DocumentRoot ”D:/wamp/www/”

</VirtualHost>

<VirtualHost *:80>

ServerName nitnews

DocumentRoot ”D:/wamp/nitnews/”

</VirtualHost>

6. 然后重启wamp,dns client服务(在运行里输入services.msc然后找到对应服务重新启动下)

7. 测试在地址栏输入http:/nitnews/(对了,现在D:wamp下面建立一个nitnews文件夹)

8. 测试在地址栏输入http://localhost/

 

 HashMap与Hashtable的区别(这是我面试的时候遇到的问题,竟然没答上来

 

HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 
1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。

2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。

3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

4.HashTable使用Enumeration,HashMap使用Iterator。

以上只是表面的不同,它们的实现也有很大的不同。

5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

6.哈希值的使用不同,HashTable直接使用对象的hashCode,代码是这样的:
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
而HashMap重新计算hash值,而且用与代替求模:

  1. int hash = hash(k); 
  2. int i = indexFor(hash, table.length); 
  3.  
  4. static int hash(Object x) { 
  5.   int h = x.hashCode(); 
  6.  
  7.   h += ~(h << 9); 
  8.   h ^= (h >>> 14); 
  9.   h += (h << 4); 
  10.   h ^= (h >>> 10); 
  11.   return h; 
  12. static int indexFor(int h, int length) { 
  13.   return h & (length-1); 


以上只是一些比较突出的区别,当然他们的实现上还是有很多不同的,比如HashMap对null的操作。

 

HQL去重复查询

HQL去重复查询:DetachedCriteria

具体用法大家网上搜,一大把。

 

JAVA数组操作(工作中遇到的,一个数组给分成每5个一组)

第一种方法:


  1. String[] phNums={"01584" ,"0215456" ,"034898" ,"0456464" ,"0548844" ,"065445454" ,"078112311" ,"085481212" ,"09545484" ,"102557" ,"1145484515" }; 
  2. String[] newNo= new String[5]; 
  3.  int i=0
  4.  int j=0
  5.  while(i<phNums.length ){ 
  6.       newNo[j]=phNums[i]; 
  7.        if(i==4||j==4){ 
  8.              for(int k=0;k<5;k++){ 
  9.                    if(newNo.length ==5){ 
  10.                         System. out.print(newNo[k]+"," ); 
  11.                   } 
  12.             } 
  13.             System. out.println(); 
  14.             System. out.println("-----------------------------------" ); 
  15.             newNo= new String[5]; 
  16.             j=0
  17.       } else
  18.             newNo[j]=phNums[i]; 
  19.             j++; 
  20.       } 
  21.       i++; 
  22. System. out.println(newNo[0]); 

第二种方法:


  1. String a[] = {"1","5" ,"3" ,"4" ,"8" ,"y" ,"6" ,"h" ,"s" ,"45" ,"89545" ,"yuqy" ,"ert" ,"tyu" ,"sdvg" ,"545546" }; 
  2.             String b[] = new String[5]; 
  3.              for(int i=0 , j=0;i<a.length;i++,j++){ 
  4.                   b[j] = a[i]; 
  5.                    if(j==4){ 
  6.                         System. out.println("获取了数组:" ); 
  7.                          for(int k=0;k<b.length;k++){ 
  8.                               System. out.print(b[k]+"," ); 
  9.                         } 
  10.                         System. out.println(); 
  11.                         System. out.println("------------" ); 
  12.                         b = new String[5]; 
  13.                         j=-1
  14.                   } 
  15.             } 
  16.             System. out.println(b[0]); 

具体的数组总结可以看熔岩的这篇博文http://lavasoft.blog.51cto.com/62575/183878

 

 

java中的“System.out.println“和“System.err.println”的区别是什么?

(1)System.out.println 能重定向到别的输出流,这样的话你在屏幕上将看不到打印的东西了,如输出到 一个txt的log日志中.

(2)而System.err.println只能在屏幕上实现打印,即使你重定向了也一样。 要说 最直接的区别的话: 就是 如果 你使用err打印出的 字符串,再eclipse的console会显示成红色的哦。 :-)   



本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/952574,如需转载请自行联系原作者


网友评论

登录后评论
0/500
评论
科技小先锋
+ 关注