Linux的文件权限及用户组

今天在查看自己电脑上工作目录下项目时,发现有一个项目的目录权限与其他不同,颜色也就在所有目录里显得格外显眼。对于我这种有点轻微强迫症的人来说,总感觉很别扭。可一直对Unix系的系统权限理解不是那么清晰,总是模糊的记得有chmodchown两个命令。因此索性就系统的看了下关于Unix系系统文件的权限内容。

Read More

JavaScript数组中删除指定的元素

有这么一个需求,给一个数组中的某一个元素,不知道这个元素的索引,需要根据给定的这个元素把它从数组中删除。JavaScript中没有这样的方法,因此需要自己去实现。思路是先根据这个元素返回它在数组中的索引,然后就可以利用这个索引位置使用JavaScript的自己删除元素的函数。

这里先为数组对象定义一个方法,用于返回给定的元素在 数组中的索引,代码如下:

Read More

JAVA进阶之JVM浅析GC

GC是JVM的垃圾收集器,它就像房间清洁工人一样。堆内存是对象主要的活动区域,JAVA中的对象分配与销毁便发生在这里,因此这里就是GC的活动区域。GC的主要工作是判断对象是否存活和回收对象,这两个工作必然有对应的方法。

判断对象存活

这个是GC要做的第一步事儿,只有死掉的对象才可以被回收。GC所采用判断对象是否存活的方法,是以Root节点为起始开始向下扫描,如果对象到这个Root没有可达的路径,便认为这个对象没用的。其中在扫描过程中,GC走过的路径叫做引用链。 使用这种方法时,必须在这一刻对象的引用固定不变的。因为在GC通过可达性来去判断对象是否存活时,如果对象的引用还在一直变化,这样最终结果的准确性就没法保证。因此通常GC在工作的时候,引用线程需要暂停一下,这也是会出现”Stop The World”这样一句话其中的一个原因。

Read More

JAVA进阶之JVM浅析内存模型

JAVA与C++之间有一堵由内存动态分配和垃圾收集技术所围城的高墙,墙外的人想进去,墙里的人却想出来。
这是出自《深入理解JAVA虚拟机》中的一句话,实际上说的确实没错。对于做C++开发来说,内存何时分配、何时收回这些都是开发人员需要自己关心的,而这些确实是非常头痛的事情,开发人员多么希望摆脱这些。对于JAVA开发来说,GC承担了内存的分配和回收,开发人员不在需要去关心。Google一下JVM会发现相关的信息大约又4,430,000条, 市面上相关的书也非常的多,这说明开发人员想了解JAVA的内存分配和回收机制

Read More

SSH命令的简单使用

SSH(Secure Shell)是建立在应用层和传输层基础上的一种安全协议,主要用于远程登录会话和为其他网络服务提供安全性的协议。它的有点主要是对所有传输的数据加密,且传输的数据可以是压缩的。SSH的功能即可以替代Telnet,也可以为FTP、POP等提供安全通道。

由于自己有VPS,以前公司的服务器也有过维护,所以对SSH还算了解一些。主要用做远程登录,另外也有用过SSH提供的安全通道实现科学上网。在UNIX/Linux系的系统中,通常都有内置SSH的实现。Windows下自己用过比较简单的putty,在做服务器的维护时主要是用Xshell

Read More

修改路由方便VPN使用

对于码农来说,科学上网是必不可少。一直使用的是Goagent,但这种方式还是不稳定,也比较折腾。毕竟效率为先,对于上述方式知道其原理和使用方式就好。

一个好的VPN速度相对不错且稳定,也省去了很多麻烦。但其也有一缺点,连接VPN之后,所有流量都要走VPN,访问国内网站速度又会慢一些。尤其我自己用的付费VPN,有流量限制,若p2p下载还会遭遇被封的后果,来回切换就比较麻烦了。

Read More

对iTerm输出的一些设置

第一次经过推荐知道了iTerm2,是用过之后发现确实比OS X的Terminal好用一些,当然也不排除自己对Terminal了解不够。默认情况下无论Terminal还是iTerm输出都是黑白的,看久了就会感觉很单调,输出若变为彩色则会丰富很多。

通过改变配置文件就可以实现这个。找到用户目录下的.bash_profile文件:

Read More

贝叶斯定理引申

前几天看到池建强的一篇文章,科普了一下贝叶斯定理。之前看《黑客与画家》,里面有讲到了邮件过滤器,虽然并没有说明应用了贝叶斯定理,但现在一想这就是贝叶斯的定理的应用。《黑客与画家》刚好是阮一峰翻译的,找到他的博客关于贝叶斯定理的文章。

对这个数学定理研究过后,发现如果能对它有一个更深的理解,对于程序员来说是一份宝贵的知识。因为处在高速发展的互联网环境下,搜索、邮件过滤等应用都可以用贝叶斯定理来更好的实现。

Read More

我理想的工作

一年一度的黄金跳槽季刚刚过,而我刚好搭上了末班车,寻找着一份和我理想匹配度较高的工作。之所以说匹配度较高,是因为完全理想的工作现实中几乎是不可能有的,当然有工作清闲薪水颇高的理想就没匹配度可言了。

对于IT行业来说,只要是有过经验的人是很容易找到工作的,然而想要找到与理想匹配度较高的工作却不是那么容易。自己最近也陆陆续续面试了几家公司,其中不乏与自己理想匹配度很高的公司,只可惜自己的能力并未达到他们的要求,因此与之失之交臂。我理想的工作看似简单,事实上这样的公司要求就很高。

Read More

为什么HashMap是线程不安全的

这是前天淘宝面试被问道的一个问题,当时回答的并不好,确切的说并没有回答到点子上。要明白HashMap为什么是线程不安全的,就需要理解它是怎样去实现的,对于源码和实现我还是了解一些,只是突然之间发现回答的莫名其妙。事后想想,可能对于HashMap自己还是理解的不够透彻。

JAVA的doc中有对HashMap的描述:

Read More