Lizhi Blog

博观而约取,厚积而薄发

深入理解Session与Cookie

Session与Cookie的作用都是为了保持访问用户与后端服务器的交互状态

深入理解Session与Cookie HTTP协议对Cookie数量和大小的限制问题?Session在多台服务器之间共享问题?Cookie被盗、Cookie伪造等安全问题? 理解Cookie Cookie设计的目的是为了记录用户在一段时间内访问Web应用的行为路径。 Cookie属性项 Cookie有两个版本:Version0和Version1。通过”Set-Cookie”和”Se...

创新者的窘境--读书笔记

The Innovator's Dilemma

摘要:书中讨论了那些锐意提高竞争力、认真倾听消费者意见、积极投资新技术研发,但仍然丧失了市场主导地位的管理良好的企业,从而阐释了一种观点:有时候,不采纳消费者意见、投资研发利润率较低、性能较差的产品,并且大举进军小型而不是主流市场反倒是正确的。全书通过准确构思研究方法、认真分析硬盘驱动器行业和其他行业创新成功与失败的案例总结出一系列规律,即“破坏性创新原则”,管理人员可以利用这些规律来...

深入分析Java I/O的工作机制

Java的I/O类库级别框架,磁盘IO和网络IO的工作机制,Java Socket工作方式,NIO介绍

Java的I/O类库的基本架构 Java从1.4版本引入NIO,提升了I/O性能。Java的I/O操作类大概分为如下四组: 基于字节操作的I/O接口:InputStream和OutputStream 基于字符操作的I/O接口:Writer和Reader 基于磁盘操作的I/O接口:File 基于网络操作的I/O接口:Socket 前两组是传输数据的数据格式,后两组主要...

深入Web请求过程

涉及浏览器、HTTP协议解析、DNS解析、CDN涉及工作等内容

B/S网络架构概述 B/S网络架构基于HTTP交互数据,采用无状态的短连接通信方式,其架构如下,既要满足海量用户的访问请求,又要保持用户请求的快速响应。 当一个用户在浏览器输入www.taobao.com时,发生的操作有:首先请求DNS把域名解析成IP地址,根据IP地址找到服务器,向服务器发起一个get请求,由服务器决定返回默认的数据资源给访问的用户。其中,多台服务器需要一个负载均衡设备...

改善Java程序的151个建议读书笔记(下)

8、异常;9、多线程和并发;10、性能和效率;11、开源世界;12、思想为源

第八章 异常 建议110:提倡异常封装 Java语言的异常处理机制可以确保程序的健壮性,提高系统的可用率,但是Java API提供的异常都是比较低级的,只有开发人员能看懂,异常封装有三方面优点。 1、提高系统的友好性 public static void doStuff() throws MyBussinessException{ try{ InputStream is ...

改善Java程序的151个建议读书笔记(中)

5、数组和集合;6、枚举和注解;7、泛型和反射

第五章 数组和集合 建议60:性能考虑,数组是首选 List< Integer > 对比int[]: 在初始化List数组时要把int类型包装成一个Integer对象,而对象是在堆内存中操作的,堆内存的特点是速度慢、容量大,栈内存的特点是速度快、容量小。并且,在求和计算时要做拆箱动作,性能消耗就产生了。 测试发现,数组的效率是集合的10倍。 建议61:若有必要,使用变长...

改善Java程序的151个建议读书笔记(上)

1、Java开发中通用的方法和准则;2、基本类型;3、类、对象及方法;4、字符串

放弃了Effective Java,太过于抽象,转战这本书,最起码知识点更精细,读起来也更快。这里将书中的内容整理下来,为了以后参考,长期翻阅~ 第一章 Java开发中通用的方法和准则 建议1:不要在常量和变量中出现易混淆的字母 Java编码规范:包名全小写、类名首字母全大写、常量全大写并用下划线分隔、变量采用驼峰法命名等 long i = 1l; //容易和数字混淆 lon...

字符编码常识及问题解析

什么都略懂一点,生活更多彩一些~

看到博客作者在面试中遇到的题目:简述Unicode与UTF-8直接的关系。想起了我之前面试中被问到的问题:使用Mysql中遇到字符编码问题,怎么解决的。 基本常识 位和字节 位(bit)是指计算机里存放的二进制(0/1),而8个位组成的“位串”成为字节,有256(2的8次方)个组合方式 字符编码,就是指定义一套规则,将真实世界里的字母/字符与计算机的二进制序列进行相互转化...

深入浅出SQL

虽然程序员已经越来越少的写sql了,但是能够完全理解并写出高效的SQL应该是高级程序员的必备技能

最近一周在点评帮预订运营做Hive报表,写了有几百行SQL,各种join操作,比较坑的是Mapreduce job要跑十多分钟,测试测得吐血,感觉是时候整理一波SQL了 基本查询 WHERE(条件),BETWEEN,LIKE,AND,OR,IN,NOT SELECT ID,Name,Age FROM Students WHERE Age BETWEEN 18 AND 20 ...

Git 详解~

版本控制,团队合作的必备工具

能长期在Github活跃,为开源项目做贡献,是程序员学习的最好状态,很难也很简单,是我追求的目标! 有个坑提醒下:jekyll 的date指定的日期比实际时间少8小时 概括 Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 在...