史禹的博客

ShiYu Blog

设计模式之单例模式

应用场景 单例模式能保证一个类仅有一个实例,并提供一个访问它的全局访问点,主要用来解决一个全局使用的类频繁地创建与销毁问题,经典的应用场景有文件操作、数据库操作等。 实现 懒汉式 1234567891011public class Singleton{ private static Singleton ins; private Singleton(){ ......

深入分析编码问题

为什么要编码 现实生活中有很多种语言,表示这些语言的符号太多,但是计算机存储的基本单元----字节(byte)却只有8个bit,每个bit可以有0和1两种状态,也就是最多只能表示256个字符,远远不够表示组成世界众多语言的字符,比如说常用的汉字就有3500个,单纯靠计算机存储基本单元表示连常用的汉字都表示不了,要解决这个问题必须要有一个新的数据结构char,而从char到byte必须通过编码......

JAVA I/O机制(二)

NIO组成 NIO主要由以下3个核心部分组成: Channels Buffers Selectors NIO与标准IO的区别主要是NIO面Buffer而IO面向流,通过Buffer从Channel中读取数据或向Channel写入数据,通过Selector监听Channel从而实现单线程处理多个channel,此外NIO是可以设置为非阻塞的。 Buffer的工作方式 Buffer通过几个变......

TCP详解

TCP协议结构 首先了解一下TCP报头结构: **16位源端口(Source Port)和16位目的端口(Destination Port)**分别表示发送地址和目的地址的端口号,或许有人不理解为什么没有发送主机的ip和目的主机的ip,那是ip协议层的事情,和tcp协议无关 32位序列号和32位确认序列号:序列号是用来标记包的顺序的,假设有一段需要传输的内容大小有9000字节,按照......
Web

JAVA I/O机制(一)

Java的I/O操作类 主要分为以下4组 基于字节操作的I/O接口:InputStream和OutputStream 基于字符操作的I/O接口:Writer和Reader 基于磁盘操作的I/O接口:File 基于网络操作的I/O接口:Socket I/O是人与机器或机器与机器交换信息的手段,核心问题就是要将什么样的数据写到什么地方,前两组描述的是传输数据的数据格式,即“什么样的数据”,后......

ConcurrentHashMap源码解读

为什么需要ConcurrentHashMap 众所周知HashMap是线程不安全的,关于为什么HashMap是线程不安全的,可以看我以前的文章,有简单介绍过。HashMap在多线程环境中,不仅会出现数据丢失,严重的时候甚至会出现Infinite Loop,导致cpu负载100%从而导致宕机。为了解决HashMap不能用语多线程环境的问题,Sun的工程师们提供了很多方法,比如HashTable......

DNS解析过程

DNS解析 DNS解析主要步骤如下图: 上图展示了DNS解析的3到10步,在真正向lDns发起请求之前还有两步,DNS解析步骤如下: 浏览器检测缓存中是否有对应的解析过的ip地址,如果缓存中有,则解析过程结束 如果浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的解析结果,如果有,则解析过程结束 如果操作系统缓存中也没有,则会向local dns服务器发起解析请求,这个服务......
Web

浏览器缓存机制

浏览器缓存机制 浏览器在发起一次请求时,首先可能会使用浏览器端的缓存数据,其次即使请求发到服务端,也有可能访问到的是缓存服务器的数据,浏览器缓存可以通过HTTP来控制。 Cache-Control/Pragma Cache-Control用来指定所有缓存机制在请求/响应链中必须服从的指令,不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器,其可选值如下: 可选值 说明 ......
Web

并发基础

Java内存模型中,内存分为两类:main memorey和working memory,main memory是线程共享的,working memory中存放的是线程所需变量的拷贝,线程若要对main memory中内容进行操作,需要先拷贝到自己的working memory。 基于上述模型,引发出多线程共享变量时会发生的同步问题,引发同步问题的因素有3点: 可见性 假设一个对象中有一个变......

《富爸爸穷爸爸》笔记

1、孩子们把时间都浪费在一个过时的教育体系中,学一些他们永远用不到的东西,并为一个根本不存在的世界做准备。 2、你会有许多朋友,他们很喜欢你,因为你真的是一个努力工作的人。你的一生过得很安稳,处世无误。但事实是,你向生活屈服了,不敢承担风险。你的确想赢,但失败的恐惧超过了成功的兴奋。只有你知道,在你内心深处,你始终认为你不可能赢,所以你选择了稳定。 3、他们把一生中最美好的年华用来挣钱,......