旧版的setuptools已经不能用于Python3上了,国外有大神fork出了另一分支distribute,它可以支持Python3:
#下载
wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.24.tar.gz
#解压缩 && 安装
tar -xzvf ./distribute-0.6.24.tar.gz
cd distribute-0.6.24/
python3[......]
旧版的setuptools已经不能用于Python3上了,国外有大神fork出了另一分支distribute,它可以支持Python3:
#下载
wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.24.tar.gz
#解压缩 && 安装
tar -xzvf ./distribute-0.6.24.tar.gz
cd distribute-0.6.24/
python3[......]
需求是这样的,我们都知道,在信息检索中,经常要取top-k(一共k,而不是第k)个得分最大的文档,并且从大到小排序。
而且文档规模很大,最少也要上千万。
话说这是一道很可以拿来面试的题啊。
我们不考虑Hadoop神马的,就说说单机怎么搞。
最傻的做法就是把1000万个都存储下来,然后sort,然后取min(k, vec.size())。
这样有两个缺点:
1、内存占用非常大,其实我们只要保留最大的1000个,但这样就要保存N个。在1000万的测试中,它要占用68M[......]
今天看到一个问题,两个线程,轮流交替输出1,2,1,2。。。
看似很简单是吧,就是条件控制么,果断最简单的wait和notify,但是一致报IllegalMonitorStateException,各种囧啊,各种试。最后发现是obj.wait()和obj.notify()必须放在synchronized块内。。之前真的真的从来没注意过这个细节。。。
public class TestPrint {
public static void main(String[] args) th[......]
本章主要记录Java操作数据库
1、JDBC是Java操作数据库的接口,现在的版本已经是JDBC 4了。
2、JDBC的设计理念就是提供一套基本统一,纯Java的API数据库访问接口。JDBC实际是驱动管理器,各个厂家提供JDBC规范的驱动,注册到管理器中。这样,开发者使用JDBC API,而数据库厂商使用JDBC驱动API。
3、JDBC驱动的分类:
(1)JDBC/ODBC桥:将JDBC翻译成ODBC,然后实际调用ODBC来完成数据库操作。
(2)JDBC+本地代码:用[......]
本章是重头戏:网络编程!
1、首先测试一下daytime服务:
telnet time.nist.gov 13
Trying 192.43.244.18...
Connected to ntp.glb.nist.gov.
Escape character is '^]'.
55965 12-02-08 12:34:39 00 0 0 612.3 UTC(NIST) *
Connection closed by foreign host.
这个过程中[......]