编程语言

你可能知道,Javascript语言的执行环境是'单线程'(single thread)。 所谓'单线程',就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 这种模式的好处是实现起来比较简单,执行环境相对单纯;坏...

Linux kernel 成功的两个原因: 架构设计支持大量的志愿开发者加入到开发过程中; 每个子系统,尤其是那些需要改进的,都支持很好的扩展性。 正是这两个原因使得 Linux kernel 可以不断进化。一、Linux内核在整个计算机系统中的位置 Fig 1 - 计算机系统分...

一、SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--><servlet> <servl...

JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000...

选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率。怎么样进行 Python 性能优化,是该篇探讨...

网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单、传输快的优势,在越来越多场景下取代了TCP,如网页浏览、流媒体、实时游戏、物联网。1.网速的提升给UDP稳定性提供可靠网络保障 CDN服务商Akamai(NASDAQ: AKAM)报告从2008年到2015年7年时间,各...

正如 passwd 命令的名称所示,其用于改变系统用户的密码。假若 passwd 命令由非 root 用户执行,那么它会询问当前用户的密码,然后设置调用该命令的用户的新密码。当此命令由超级用户 root 执行的话,就可以重新设置任何用户的密码,包括不知道当前密码的用户...

backupninja是Debian系统(以及基于Debian的发行版)中一个强大的、高度可配置的备份软件。在前一篇文章中,我们探讨了如何安装backupninja以及如何设置两个备份操作并执行。然而,那些只是冰山一角。这一次,我们要讨论如何定制 Handler 和 Helper ,使用这...

应用性能管理(APM)是一种即时监控以实现对应用程序性能管理和故障管理的系统化解决方案。目前主要指对企业的关键业务应用进行监测、优化,最终达到提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT成本的目标。 虽然很多人都曾预言Java将一蹶...

数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,本人体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处。 关于本系列 您觉得自己懂 Java 编程?事实上,大多数程序员对于 Java 平台都是浅尝则止,只学习了足以完成手头上...

一天,本人在改进多线程代码时被Future.get()卡住了。 public void serve() throws InterruptedException, ExecutionException, TimeoutException {final Future<Response> responseFuture = asyncCode();final Response response = responseFutu.....

最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些。这篇文章尽量全面的列出了云架构建设和选型的考量因素。 我们主要从五个层面逐步评估云架构的建设和选型,分别是: 行业生态 企业需求 云计算的能力 潜在的挑战...

知道自己的Linux系统运行在什么样的硬件组件上总是好的,因为假若涉及到在系统上安装软件包和驱动程序的话,这将有助于你处理兼容性问题。 因此,下面我们将给出一些非常有用的命令,它们可以帮助你提取你的Linux系统和硬件组件的信息。1.如何查看Linux系统...

尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起进入休眠状态。本文基于 Atmel AT91 系列片上系统和 NAND 闪存,经过一系列的优化,将 Linux 系统启动时间,...

这是一篇快速指南,使用 OpenSSL 来生成 CA (证书授权中心(certificate authority))、中级 CA(intermediate CA) 和末端证书(end certificate)。包括 OCSP、CRL 和 CA颁发者(Issuer)信息、具体颁发和失效日期。 我们将设置我们自己的根 CA(root CA...

相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。 内存泄漏:对象在内存heap...

对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难。由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令。因此为了有效记忆 Linux 不同的命令,你应该每天使用终端并明白怎样将命令和不同选项以及参数...

作为我在ApacheCon工作的一份呈现,我正在Docker内部使用一些cgroups 。 我发现这方面的文档很少,所以我想把它们合到一块发一篇关于它的博客。 启用LXC驱动 假设你已经在Ubuntu 14.04上安装了Docker,你仍旧需要启用LXC驱动。 要开启该项,你需要这样做 $...

什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 多个类可以称为子类,单独这个类称为父类、超类或者基类。 子类可以直接访问父类中的非私有的属性和行为。 通过 ex...

本篇对HashMap实现的源码进行简单的分析。 所使用的HashMap源码的版本信息如下: /* * @(#)HashMap.java 1.73 07/03/13 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms....

一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i...

在 java 的 bin 目录下,jdk 提供了很多使用的工具,下面学习一些监控和故障处理的工具。 名称 作用 jps JVM process status tool,显示指定系统内所有的 HotSpot 虚拟机进程jstat JVM statistics monitoring tool,用于收集 HotSpot 虚拟机各方面的运行数据...

Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「Console大法好」 console.log 大家都会用log,但鲜有人很好地利用conso...

当一扇门在你面前关闭的时候,另一扇门就会打开。肯·汤普森(Ken Thompson) 和丹尼斯·里奇(Dennis Richie)两个人就是这句名言很好的实例。他们俩是20世纪最优秀的信息技术专家之二,因为他们创造了最具影响力和创新性的软件之一: UNIX。 (题图来自:wi...

主题是 Redis,我们将要在 CentOS 7 上安装它。编译源代码,安装二进制文件,创建、安装文件。在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速。 Redis 是一个开源的多平台数据存储软件,使用...