- 博客(104)
- 收藏
- 关注
转载 编程技术的变化趋势,SO 新工具可查询
Stack Overflow 是全球知名的程序员技术问答网站,成立于 2008 年。截至目前为止,程序员平均每天在 SO 上提交 8000 个工作/学习中遇到的编程问题。大家都在讨论哪些技术的问题呢?这些技术历年的变化趋势又如何呢?基于 SO 从成立之初开始积累的众多技术标签/问题,SO 最近推出了一个工具:Trends:https://insights.stackoverfl
2017-05-18 15:52:32 473
转载 从头到尾彻底理解傅里叶变换算法(下)
前期回顾,在上一篇:《从头到尾彻底理解傅里叶变换算法(上)》里,我们讲了傅立叶变换的由来、和实数形式离散傅立叶变换(Real DFT)俩个问题,本文接上文,着重讲下复数、和复数形式离散傅立叶变换等俩个问题。第三章、复数复数扩展了我们一般所能理解的数的概念,复数包含了实数和虚数两部分,利用复数的形式可以把由两个变量表示的表达式变成由一个变量(复变量)来
2017-05-17 15:52:51 579
转载 从头到尾彻底理解傅里叶变换算法(上)
目录第一部分、DFT第一章、傅立叶变换的由来第二章、实数形式离散傅立叶变换(Real DFT)从头到尾彻底理解傅里叶变换算法(下)第三章、复数第四章、复数形式离散傅立叶变换前言:“关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列
2017-05-16 17:05:39 2220 1
转载 clone 方法是如何工作的
clone()是java.lang.Object类下面的一个很难处理的方法,clone()的作用很简单,提供一种克隆机制创建对象的副本,对于如何实现它已成为一个棘手的事,同时还长期被广受批评。不管怎样,我们不去争论历史,现在我们将尝试学习clone方法是怎样工作的。说实在的,想理解克隆机制并不简单,甚至有经验的java程序员也很难解释可变对象的克隆是如何运作的、深克隆(deep copy)与浅克隆
2017-05-15 15:03:29 309
转载 代码只是事业的 5%,程序员创业的注意事项
【导读】:代码只是程序员技术创业中的 5%,还要做长远考虑,要有耐心,产品设计要简单易用,勇于做减法,删除某些已经花了时间做了但不奏效的功能。下面来自技术创业者 Ian Landsman 的经验分享。▲▲▲许多参加过 BarCamp 的人都在致力于从程序员转型为创业者。尽管我从来不是一位真正意义上的核心程序员(这意味着把我关在地下室与山露(一种美国生产的饮品
2017-05-11 11:22:38 369
转载 程序员编程面试取胜的8个技巧
IT职位现在相当热门。程序员和软件开发人员在今年将有大量的就业机会。可是,面试成了招聘过程中的拦路虎,成为了很多程序员的噩梦。下面教你8个技巧,希望能有助于你成功取胜编程面试。1.知道如何写算法如果你申请的是软件工程师的工作,那么显然你需要知道如何编码。写代码脚本其实与写算法来解决软件问题略有不同。用人单位可能会提出这样的问题,“写一个算法,可以从链表中找到某个元素,并将此
2017-05-10 15:47:05 314
转载 商业数据库之死:Oracle 的困境
商业数据库市场份额到 2021 年将下降 20-30%。SaaS (cloud) 、NoSQL 和 SSD 大大降低了对商业数据库的需求。Oracle 不大可能通过云或其他替代品来抵消数据库收入增长的下降。根据图 1,我们看到商业数据库的市场份额在 2015 年是 296 亿美元,预计到 2021 年将缩水 20-30%,难以
2017-05-09 17:22:15 1040
转载 zookeeper 入门系列 : paxos 协议
paxos算法是由大牛lamport发明的,关于paxos算法有很多趣事。比如lamport论文最初由故事描述来引入算法,以至于那班习惯数学公式的评委将该论文打回,导致该论文延误了8年才公开发表。另外,google的chubby的作者Mike Burrows说过,世界上只有一种一致性算法,那就是paxos。两将军问题为了引入该算法,首先提出一种场景,即两将军
2017-05-08 16:20:50 403
转载 MySQL 8 中新的复制功能
MySQL 8 中新的复制功能使得操作更加方便,并帮助用户更好地观察复制过程中内部发生的情况。使用 MySQL 5.7.17 获取 MySQL 组复制插件是一项巨大的工作。组复制是一个新的插件,通过使用组通信和状态机复制,为用户提供了一些不错的复制属性。这使得系统能够免受 “脑裂” 情况影响,从而保护数据,实现容错和高可用性,并提供服务器之间的协调,从而进行数据事务的更改。
2017-05-05 16:59:57 418
转载 网易2017春招笔试真题编程题集合(一)
1 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。 输入描述:输入包括两行:第一行为整数n(1 ≤ n ≤
2017-05-04 11:45:34 540
转载 Java 基础中一些值得聊的话题( 加载篇 )
在开始Java的类加载旅程之前,可以先参考这里了解一些类加载器在Tomcat中的应用(http://blog.csdn.net/liweisnake/article/details/8470285)。在最初执行java这个命令时,便会调用 ClassLoader 的 getSystemClassLoader 方法显式或者隐式加载 main 方法所在的类及其所引用的类。getSy
2017-05-03 17:19:10 424
转载 25 个常用的 Linux iptables 规则
一些常用的 Linux iptables 规则,请根据自己的具体需要再修改。# 1. 删除所有现有规则iptables -F# 2. 设置默认的 chain 策略iptables -P INPUT DROPiptables -P FORWARD DROPiptables
2017-05-02 18:14:31 1022
转载 JVM 如何操作缓冲区
正常情况下,JVM创建一个缓冲区的时候,实际上做了如下几件事:JVM确保Heap区域内的空间足够,如果不够则使用触发GC在内的方法获得空间;获得空间之后会找一组堆内的连续地址分配数组, 这里需要注意的是,在物理内存上,这些字节是不一定连续的;对于不涉及到IO的操作,这样的处理没有任何问题,但是当进行IO操作的时候就会出现一
2017-04-28 17:27:42 503 2
转载 Java 中关于 String 类型的 10 个问题
1. 如何比较两个字符串?用“=”还是equals简单来说,“==”是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串是不是相等的,你就必须得用equals()方法。如果你知道“字符串保留(string intern)”的概念那就更好了。2. 为什么安全敏感的字符串信息
2017-04-27 17:38:30 305
转载 Git 版本控制与工作流
Git Version Control这篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手:专为设计师而写的GitHub快速入门教程git – 简明指南学习Git的在线互动教程基本概念Git是什么?
2017-04-26 17:13:05 436
转载 我在阅读 NodeJS 文档中读出的19个套路
虽然我已经用了三年多的NodeJS,也曾经以为自己对其无所不知。但是我好像从未有安静的坐下来仔细地阅读NodeJS的完整文档。如果有熟悉我的朋友应该知道,我之前已经看了HTML,DOM,Web APIs,CSS,SVG以及ECMAScript的文档,NodeJS是我这个系列的最后一个待翻阅的山峰。在阅读文档的过程中我也发现了很多本来不知道的知识,我觉得我有必要分享给大家。不过文档更多的是平铺直叙,
2017-04-25 16:54:07 382
转载 例解 Linux 下 Make 命令
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制。Make 如何工作的对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标。这些目标通常存放在以 “Makefile” 来命名
2017-04-24 15:05:09 404
转载 Linux 命令行工具使用小贴士及技巧(1)
相关内容如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一。学习的难易程度跟你想研究的深度有关。但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助。在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快。
2017-04-24 15:00:58 867
转载 自动补全不算什么,一键直达目录才是终极神器
在命令行中切换目录是最常用的操作,不过很少有比一遍又一遍重复“cd ls cd ls cd ls ……”更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字,那么你不得不使用ls来确认,然后使用cd来进入你想要进的那一个。所幸的是,现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是,你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰,你一定会对aut
2017-04-21 17:30:42 479
转载 优化 SQL 查询:如何写出高性能SQL语句
1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固
2017-04-20 11:33:33 388
转载 10 个常见的 Linux 终端仿真器
对于 Linux 用户来说,最重要的应用程序之一就是终端仿真器。它允许每个用户获得对 shell 的访问。而 Bash 是 Linux 和 UNIX 发行版中最常用的 shell,它很强大,对于新手和高级用户来说,掌握 bash 都很有必要。因此,在这篇文章中,你可以了解 Linux 用户有哪些优秀的终端仿真器可以选择。1、Terminator这个项目的目标
2017-04-19 17:03:47 553 1
转载 Linux Shell从入门到删除根目录跑路指南
shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。1、变量为空导致误删文件base_path=/
2017-04-18 15:07:21 437
转载 Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;find 文件查找
2017-04-17 17:03:03 242
转载 史上最清晰的红黑树讲解(下)
上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于一棵二叉查找树,给定节点t,其后继(树种比大于t的最小的那个元素)可以通
2017-04-14 15:16:59 365
转载 史上最清晰的红黑树讲解(上)
本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。总体介绍Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过
2017-04-13 11:39:54 335
转载 Lisp 的本质(2)
你好, Lisp到此刻为止, 我们所知的关于Lisp的指示可以总结为一句话: Lisp是一个可执行的语法更优美的XML, 但我们还没有说Lisp是怎样做到这一点的, 现在开始补上这个话题。Lisp有丰富的内置数据类型, 其中的整数和字符串和其他语言没什么分别。像71或者”hello”这样的值, 含义也和C++或者Java这样的语言大体相同。真正有意思的三种类
2017-04-11 10:46:11 452
转载 Lisp 的本质(1)
简介最初在web的某些角落偶然看到有人赞美Lisp时, 我那时已经是一个颇有经验的程序员。在我的履历上, 掌握的语言范围相当广泛, 象C++, Java, C#主流语言等等都不在话下,我觉得我差不多知道所有的有关编程语言的事情。对待编程语言的问题上, 我觉得自己不太会遇到什么大问题。其实我大错特错了。我试着学了一下Lisp, 结果马上就撞了墙。我被那些范例代
2017-04-10 17:14:52 358
转载 每天一个 Linux 命令(61):wget命令
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大
2017-04-07 15:22:36 442
转载 每天一个 Linux 命令(60):scp命令
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点
2017-04-06 16:53:57 516
转载 每天一个 Linux 命令(59):rcp命令
rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。1.命令格式:rcp [参数] [源文件] [目标文件]2.命令功能:rcp命令用在远端复制文件或目录,如同时指定两个以上的
2017-04-05 11:38:18 242
转载 每天一个 Linux 命令(58):telnet命令
telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台
2017-04-01 17:25:57 457
转载 每天一个 Linux 命令(57):ss命令
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不
2017-03-31 11:50:30 474
转载 每天一个 Linux 命令(56):netstat命令
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数
2017-03-30 11:50:29 258
转载 每天一个 Linux 命令(55):traceroute命令
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到
2017-03-29 11:31:16 428
转载 每天一个 Linux 命令(54):ping命令
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标
2017-03-28 11:31:28 319
转载 每天一个 Linux 命令(53):route命令
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将
2017-03-27 11:57:02 340
转载 每天一个 Linux 命令(52):ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口
2017-03-24 15:38:33 367
转载 经典算法:Dijkstra 算法初探
一、Dijkstra 算法的介绍Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,Dijkstra 算法可以用来找到两个城市之间的最短路径。二、图文解析 Dijkstra 算法ok,经过上文有点繁杂的
2017-03-23 17:11:13 383
转载 每天一个 Linux 命令(51):lsof命令
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打
2017-03-22 14:44:47 256
转载 每天一个 Linux 命令(50):crontab命令
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介
2017-03-21 11:58:14 293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人