0%

阿里云是最近新出的一个镜像源。得益于阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/

CentOS系统更换软件安装源

第一步:备份你的原镜像文件,以免出错后可以恢复。

1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/

(如果无wget命令,底部有具体说明)

CentOS 5

1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6

1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存


ps:如果你跟我一样苦逼:

1
-bash: wget: command not found

然后:

1
yum -y install wget #失败

那么你可以直接选择上面对应系统的文件下载链接

下载好文件之后改名为CentOS-Base.repo

直接放到/etc/yum.repos.d/目录下即可

在Java 2以前,一般使用Hashtable来映射键值和元素。为了使用Java集合框架,Java对Hashtable进行了重新设计,但是,为了向后兼容保留了所有的方法。Hashtable实现了Map接口,除了Hashtable具有同步功能之外,它与HashMap的用法是一样的。·在使用时一般是用ArrayList代替Vector,LinkedList代替Stack,HashMap代替HashTable,即使在多线程中需要同步,也是用同步包装类。

另外在使用上还有一些小的差异,比如:

  1. HashTable的key和value都不允许为null值,而HashMap的key和value则都是允许null值的。这个其实没有好坏之分,只是Sun为了统一Collection的操作特性而改进的。
  2. HashTable有一个contains(Object value)方法,功能上与containsValue(Object value)一样,但是在实现上花销更大,现在已不推荐使用。而HashMap只有containsValue(Object value)方法。
  3. HashTable使用Enumeration,HashMap使用Iterator。Iterator其实与Enmeration功能上很相似,只是多了删除的功能。用Iterator不过是在名字上变得更为贴切一些。模式的另外一个很重要的功用,就是能够形成一种交流的语言(或者说文化)。有时候,你说Enumeration大家都不明白,说Iterator就都明白了。

在实现上两者已有一些差异,这里简单说明一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public Hashtable(int initialCapacity, float loadFactor) {
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
if (loadFactor <= 0 || Float.isNaN(loadFactor))
throw new IllegalArgumentException("Illegal Load: "+loadFactor);
if (initialCapacity==0)
initialCapacity = 1;
this.loadFactor = loadFactor;
table = new Entry[initialCapacity];
threshold = (int)Math.min(initialCapacity * loadFactor, MAX_ARRAY_SIZE + 1);
initHashSeedAsNeeded(initialCapacity);
}
public Hashtable(int initialCapacity) {
this(initialCapacity, 0.75f);
}
public Hashtable() {
this(11, 0.75f);
}


public HashMap(int initialCapacity, float loadFactor) {
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal initial capacity: " +
initialCapacity);
if (initialCapacity > MAXIMUM_CAPACITY)
initialCapacity = MAXIMUM_CAPACITY;
if (loadFactor <= 0 || Float.isNaN(loadFactor))
throw new IllegalArgumentException("Illegal load factor: " +
loadFactor);
this.loadFactor = loadFactor;
threshold = initialCapacity;
init();
}
public HashMap(int initialCapacity) {
this(initialCapacity, DEFAULT_LOAD_FACTOR);
}
public HashMap() {
this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);
}

HashTable中构造hash数组时initialCapacity默认大小是11,增加的方式是 old*2+1。HashMap中构造hash数组时initialCapacity默认大小是16,而且一定是2的指数。对于哈希值的使用也有所不同,HashTable直接使用对象的hashCode,代码是这样的:

1
2
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;

而HashMap重新计算hash值,而且用与代替求模:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int hash = hash(k);
int i = indexFor(hash, table.length);

static int hash(Object x) {
  int h = x.hashCode();

  h += ~(h << 9);
  h ^= (h >>> 14);
  h += (h << 4);
  h ^= (h >>> 10);
  return h;
}
static int indexFor(int h, int length) {
  return h & (length-1);
}

仅供参考,内容来源于互联网

之前用myeclipse开发的项目

今天导入到IDEA中去,发现编译出问题

ava编译错误:程序包Javax.servlet不存在Javax.servlet.*


原因大概是myeclipse中可以选择Java EE项目

而idea没有,缺少 servlet-api.jar 这个jar包


解决办法:

  1. 复制tomcat文件夹下lib—>servlet-api.jar 这个jar包
  2. 添加到IDEA项目中去:粘贴到External Library目录下

即可

上一篇帖子说明了一下百度抓取不到的原因是因为github把百度爬虫给屏蔽了

这里给出的解决办法是用hexo自动提交插件

需要获取一个自动提交的token

  1. 注册百度站长工具:http://zhanzhang.baidu.com
  2. 添加你的hexo域名
  3. 找到网页抓取 - 链接提交 - 下拉选择你的hexo站点
  4. 数据提交方式 - 自动提交 - 主动推送(实时)
  5. 推送接口
  6. 接口调用地址: http://data.zz.baidu.com/urls?site=hisen.me&token=XmxXyESxyz1hANxE
  7. 复制上面token=后面的内容,那就是你的token

安装自动提交插件:

Read more »

近期在折腾下hexo博客

发现百度搜索网址都搜索不到自己的站点

我只把hexo传到github上,然而去百度站长工具提交网址几条后也没有反应

我就测试了一下百度站长工具 - 抓取诊断

结果是抓取失败:Github把百度的爬虫给干掉了!所以。。。


具体内容如下:

1
2
3
4
5
6
7
提交网址:	http://hisen.me/20170214-maven%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/
抓取网址: http://hisen.me/20170214-maven%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/
抓取UA: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
抓取时间: 2017-02-16 09:48:55
网站IP: 151.***.***.133 已反馈,预计几分钟内完成更新
下载时长: 0.331秒
抓取异常信息: 拒绝访问 查看帮助

返回HTTP头:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
HTTP/1.1 403 Forbidden
Cache-Control: no-cache
Content-Type: text/html
Transfer-Encoding: chunked
Accept-Ranges: bytes
Date: Thu, 16 Feb 2017 01:48:55 GMT
Via: 1.1 varnish
Connection: close
X-Served-By: cache-itm7421-ITM
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1487209735.687949,VS0,VE187
Vary: Accept-Encoding
X-Fastly-Request-ID: 3e528056d3333113dfb5da5c92a2421fa71f3705

这几天在折腾maven项目

我发现居然每次新open一个项目就得配置下maven

因为默认的maven配置文件不行,我自定义的文件用的是阿里云的镜像

那样快一点,于是很郁闷,决定要搞定他!!!

结果这样设置就可以了,全局设置。

1
File--->Other Setting--->Default Setting

接下来的设置就是一样的了,各种设置都可以,只要你想全局生效

windows默认是在底部的

在底部任务栏空白处:

右键—设置—任务栏—在桌面模式下自动隐藏任务栏(开)—任务栏在屏幕上的位置(上 | 下 | 左 | 右)

这样就设置完毕了,毕竟笔记本太小
用idea的时候居然有些界面很难点击OK什么的!!!


知乎有专门讨论任务栏放置位置分析,有兴趣的可以看看:

Windows 任务栏放在窗口左边和下面哪一种更合理?各有什么利弊?

工程是从eclipse生成的,用idea开发。

重复了一遍以往正常的不能再正常了的导入配置,结果遇到了如下问题:

SEVERE [RMI TCP Connection(3)-127.0.0.1]

1
15-Feb-2017 11:05:25.993 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s)

删除导入项目中的web.xml文件

因为idea要用的东西自己会自动生成

然后就搞定了这个纠结我一天的问题

我是百度搜索这个错误:RMI TCP Connection(3)-127.0.0.1

得到的答案,感谢10100:查看原文

一、环境的配置

  1. 下载maven:http://maven.apache.org/download.cgi
  2. 解压到相关目录
  3. 配置环境变量:计算机—系统属性—高级系统设置—环境变量
  4. 系统变量新建:M2_HOME 变量值:C:\tool\JAVA\apache-maven-3.3.9
  5. path中添加:%M2_HOME%\bin; (注意看看前面有没有分号隔开,没有添上)
  6. 启动cmd,输入mvm -v可以查看版本
1
2
3
4
5
6
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: C:\tool\JAVA\apache-maven-3.3.9
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\hisenwork\Java\jdk1.7.0_51\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8", version: "6.2", arch: "amd64", family: "windows"

二、自定义设置(优化)

1.自定义下载目录,修改配置文件

1
C:\hisenwork\soft\maven-3.3.9\conf\settings.xml

C:\hisenwork\soft\maven-3.3.9为你解压的maven路径


**ps:**如果不想自己设置,我有现成的settings.xml,直接复制粘贴,覆盖原来的即可
现成的settings.xml内容我放在底部

Read more »

在线安装

  1. File—>Settings—>Plugin—>Browse repositories…
  2. 搜索框输入:jindent
  3. Jindent - Source Code Formatter 选中
  4. 右边 install
  5. 等待安装完成
  6. apply之后会让你重启idea