前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下...
编程语言
引言 各位同行知道java代码编译后生成的是字节码,那虚拟机是如何加载这些class字节码文件的呢?加载之后又是如何进行方法调用的呢? 一 类文件结构 无关性基石 java有一个口号叫做一次编写,到处运行。实现这个口号的就是可以运行在不同平台上的虚拟机和与平...
各位同行都会为各位同行的代码编写测试,不是吗?毫无疑问,本人知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!本人爱测试 ”都有。接下来本人会给你几个小建议,它们可以让你编写测试变得更容易。那会帮助你减少脆弱的...
一、概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示: 下面就每一个区域进行阐述。 二、运行时数据区...
EasyUI的fluid布局 首先解释一下本篇文章标题中提到的“jQuery EasyUI响应式(fluid)布局”,这里是指页面内的组件实例能够随着浏览器窗口大小的不同或者大小的变化自动调整组件实例自身的大小,比如自动100%填充,百分比宽度。 EasyUI 1.4版本之前,只有一个...
在单台服务器上就可以托管 10 万多个仓库,GitLab.com 是如何做到的呢?来看 GitLab.com 是如何自建服务和扩展存储来满足这么多仓库的托管。 以下为译文: 你想在任何地方免费托管公共/私有仓库吗?可以选择 GitLab.com,我们已经在上面托管过一个单例 GitL...
也许很多人还不知道,知乎在规模上是仅次于百度贴吧和豆瓣的中文互联网最大的UGC(用户生成内容)社区。知乎创业三年来,从0开始,到现在已经有了100多台服务器。目前知乎的注册用户超过了1100万,每个月有超过8000万人使用;网站每个月的PV超过2.2亿,差不多每...
背景 LinkedHashMap继承自HashMap,内部提供了一个removeEldestEntry方法,该方法正是实现LRU策略的关键所在,且HashMap内部专门为LinkedHashMap提供了3个专用回调方法,afterNodeAccess、afterNodeInsertion、afterNodeRemoval,这3个方法的字面意思非常容易...
在编程时,开发者经常会遭遇各式各样莫名错误。近日,Sushil Das在 Geek On Java上列举了 Java 开发中常见的 5 个错误,与君共「免」。 1、Null 的过度使用 避免过度使用 null 值是一个最佳实践。例如,更好的做法是让方法返回空的 array 或者 collection 而...
谁在关心toString的性能?没有人!除非当你有大量的数据在批量处理,使用toString产生了许多日志。然后,你去调查为何如此之慢,才意识到大部分的toString方法使用的是introspection,它其实是可以被优化的。 不过,首先让各位同行一起看看Javadoc回忆下Obje...
一个性能较好的web服务器jvm参数配置: -server//服务器模式 -Xmx2g //JVM最大允许分配的堆内存,按需分配 -Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次gc后JVM重新分配内存。 -Xmn256m //年轻代内存大小,整个JVM内存=年轻代 + 年老代 + 持...
了解了Java 8中所有包的作用,对Java 8有了一个整体的了解,另外也是提高了自身的阅读能力。ITJS的这篇文章列出了Java 8中所有的包,并且对每一个包的功能做了简要的说明,希望对你有所帮助。 ----------------------------------------------------- Java...
该篇的作者Dan Grover现任腾讯微信产品经理,在学习中文一年左右并在广州工作近半年的时间里,用最直接的方式体会了中国移动互联网的发展。从微博微信到淘宝、各大安全软件、应用商店,他几乎尝遍了所有中国的主流移动App。这是一个外国人眼中的应用UI在中国...
常见问题 为什么修订HTTP? HTTP/1.1已经很好的服务Web超过15个年头,但它的劣势开始显现。 载入一个Web页面比之前占用更多的资源(详情可见HTTP压缩页大小统计),有效的载入这些资源很难,因为HTTP实际上对每个TCP连接,只允许一个优先的请求。 在过去,...
PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。 levenshtein() 你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是...
本篇文章源自作者团队在长期开发过程中总结的宝贵经验,其中Supervisor、Gunicorn以及Nginx更是在使用Python开发Web应用时最常用的软件,因此对于打算使用Docker部署Python应用的读者而言,这些最佳实践是很有参考价值。同时希望各位在日常实践过程中,也能将...
windows 7的用户仅能通过手动下载IE10安装包进行升级,但有些用户在下载后却无法正常安装,Win 7版本的IE10相比于IE9,IE10为Win 7用户带来更快更流畅的浏览体验,完善了硬件加速和Chakra JavaScript引擎...
扫描仪的添加,在windows 7系统下,可难倒了不少朋友,下面以图文的形式为大家概述下具体的添加步骤...
谈起JavaScript的 事件,事件冒泡、事件捕获、阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免。 冒泡篇 先来看一段实例: js: var $input = document.getElementsByTagName('input')[0];var $div = document.getElementsByTagName('div'...
在讲数据库水平拆分时候,我列出了水平拆分数据库需要解决的两个难题,它们分别是主键的设计问题和单表查询的问题,主键问题前文已经做了比较详细的讲述了,但是第二个问题我没有讲述,今天我将会讲讲如何解决数据表被垂直拆分后的单表查询问题。 要解决数据...
回调函数定义 回调函数就是一个通过函数指针调用的函数。假设您把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的...
如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。 数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出...
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,操作码决定了操作类型和所...
Action方法的执行具有两种基本的形式,即同步执行和异步执行,而在ASP.NETMVC的整个体系中涉及到很多同步/异步的执行方式,虽然在前面相应的文章中已经对此作了相应的介绍,为了让读者对此有一个整体的了解,我们来做一个总结性的论述。 一、MvcHandler的同步...
怎么样能做出高效的web前端程序是我每次做前端开发都会不自觉去考虑的问题。几年前雅虎里牛逼的前端工程师们出了一本关于提升web前端性能的书籍,轰动了整个web开发技术界,让神秘的web前端优化问题成为了大街的白菜,web前端优化变成了菜鸟和大牛都能回答的...