更改hosts访问谷歌显示“连接已重置”

更改hosts去访问谷歌,显示“连接已重置”,但是小伙伴们却可以…

查过之后,才发现原来要使用https访问,域名使用“www.google.com.hk”,输入“https://www.google.com.hk”后发现打开了谷歌!

那么要怎么设置才能默认使用https访问呢?

下面就说下Chrome的设置:

设置谷歌为默认搜索引擎

设置谷歌为默认搜索引擎

1,打开设置,找到“搜索”,单击“管理搜索引擎”

继续阅读

360公用库就是一个坑,可以狗带了

日志

最近发现站点变慢,不知何故,但是猜测估计是什么资源加载问题,突然想到公用库,所以今天按F12打开前端控制台,发现有2个公用库的文件获取失败,一个是360公用库useso的jquery,另一个是googleapis的字体opensans…

之前还好好的,为什么无法使用了呢?上网查了才知道原来据说googleapis在北京设点了,然后360就把自己的库给关了…

但是我貌似还是打不开googleapis呢…

360啊,360,你真就是一个坑货,大坑货,深不见底的坑…

无奈,把那两个文件下载下来上传到站点上,重新给个新链接,于是网站加载速度恢复!

Junit测试中多线程的坑

昨晚用Junit测试多线程,代码如下:

private int i = 3;

@Test
public void test() {
	
	for (int i = 0; i < this.i; i ++) {
		new Thread(new Runner()).start();
	}
}

class Runner implements Runnable {
	
	@Override
	public void run() {
		System.out.printlun(123);
	}
}

发现运行后居然没有任何输出…我又运行了好几次,有时又有1~2句输出,但是始终不全…

当时还以为程序有错,clean了class继续,还是一样的,今天早上起来查了下百度,才明白,原来Junit只管自己的运行,就是说当Junit执行完毕后,就会关闭程序,不会关心是否还有自己启动的后台线程在运行。当Junit运行完毕后,如果后台线程还没有执行完毕,那么也是不会再执行了,所以就出现了昨天的情况…

继续阅读

Oracle转义字符

需要更新Oracle数据库中所有表的一个字段“flag”为“I”,语句为:

update table_name set flag = 'I'

“I”作为字符串,所以语句中I需要加上单引号。

由于数据库中有多张表,我不想一条一条的语句写,希望能够通过sql语句直接生成所有的语句,所以写了如下sql:

select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables

这个时候运行,“报错:ORA-00923: 未找到要求的 FROM 关键字”,报错位置就在’I”的第二个单引号位置,因为单引号配对关系,I不是字符串了,所以就报错了,那么如果要显示一个单引号该怎么做呢?

试了语句:

select ''' from dual

同样也会报错,原来“’”作为一个关键字,如果需要显示“’”,需要使用转义字符,就像java的“\”一样。

而Oracle的转义字符就是单引号“’”,所以sql应该这么写:

select '''' from dual

怎么理解呢?把第二个单引号“’”看成“\”就好了,所以我需要的sql就是:

select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables

这样就OK啦!

说个Java三目运算坑

前几日,写代码,用到三目运算,判断一个double,如果大于1则返回int,小于1则返回double,可是依照下面的代码,本应该返回int,即1,但是返回的始终是1.0。

Double d = 1.01;
System.out.println(d > 1 ? d.intValue() : d); // 1.0

当时还在想 d.intValue()返回难道不是 int吗,于是试了下面的代码,结果的确返回的int,即1。

Integer i = d.intValue();
System.out.println(i); // 1

想了好久,突然想到,三目运算的数据类型是相同的,也就是说后面返回的结果和第一个数的类型是一致的!!!第一个数是double,所以返回的结果也会是double,即1.0。

是我自己忘记了…