Unicode和UTF
Unicode就是一个超大号字符集合,旨在将世界上所有现存的、曾有的符号(文字、数学、音乐等所有符号)囊括其中。它像一个接口,只是规定了所有字符的编号,具体这些字符在使用、存储的时候用字节怎么表示,取决于各个字符集的实现。 Unicode 面板plane BMP 字符编码 定长 vs. 变长 UTF-...
Unicode就是一个超大号字符集合,旨在将世界上所有现存的、曾有的符号(文字、数学、音乐等所有符号)囊括其中。它像一个接口,只是规定了所有字符的编号,具体这些字符在使用、存储的时候用字节怎么表示,取决于各个字符集的实现。 Unicode 面板plane BMP 字符编码 定长 vs. 变长 UTF-...
之前在锁和CAS vs. 锁中,对Java中提供的各种锁以及CAS进行了比较。这里通过一个具体的例子,来简单验证一下之前的分析,加深一下对这些锁的理解。 大概介绍了这么多锁同步机制: 内置锁synchronized; Lock; Lock(公平锁); ReadWriteLock; StampedLock(乐观读锁); CAS:AtomicLong; 另外再补上...
Java中的锁可以分为内置锁和显式锁。内置锁就是synchronized,显式锁则是Java 5引入的Lock接口及其实现。 Lock vs. synchronized 相同点 不同点 如何选择 性能 安全性 synchronized不能做到的 Lock ...
想访问共享变量,锁住就行了,通过锁,可以获取对变量的独占访问。那么CAS又是干嘛的? 为什么使用CAS 锁的缺陷 volatile好在哪儿 CAS - Compare And Swap CAS CAS的语义 使用场景 使用CAS实现非阻塞功能 性能 AB...
继上周末搞了csgo饰品的爬虫之后,最近一周一直在根据社区小伙伴的意见建议进行优化。不得不说,玩家才是最好的产品经理,很多提出来的建议都让人为之一振,这也直接优化了最终的程序效率、实现方式等,同时也增加了一些新的功能。在这里就以优化篇记录一下本周进行的优化流程吧。 思路回顾 配置优化 RawConfigParser 处理配置列表 ...
最近steam游戏疯狂打折,然鹅我的steam里余额只有可怜的几块钱,想充点儿钱买游戏,直接1:1充值人民币进steam感觉有点儿亏,想买充值卡,但是充值卡毕竟黑产,而且最近大家对充值卡的需求一高,充值卡店铺都变得特别傲娇,发货时间竟然是48天以内……想想前一段csgo裂网大行动,也是steam没有余额通行证,不得不直接拿现金1:1买了,甚是心疼。所以我在想,要不从第三方网站买个饰品,再高价...
如果想写个web服务,处理比如Http请求,首先要决定自己的server选用什么线程模型。不同的线程模型对系统的吞吐有极大的影响。最基本的两种模型有两种:基于线程(thread-based)的模型,事件驱动(event-driven)的模型。 Thread-based 单线程server 类比 优劣 ...
minima是Jekyll默认的主题,也是最简单的主题,很符合Keep It Stupid and Simple的原则。默认的可能是符合大众的,但一定不是完全适合自己口味的,所以理解一些原理,增加一些自己想要的东西也是很必要的。 env 页面路径 自定义导航栏 评论系统 禁用Liquid模板渲染 站内引用 文章目录 post页面显示tag 增加tag/...
垃圾回收(Garbage Collection,GC)是JVM的重要特性之一。既然JVM自己管理着一大堆线程,自然也要随时打扫线程留下的垃圾,维护JVM的生态平衡。对于小程序,不太需要考虑垃圾收集,但是在高并发、多线程、多处理器的场景下,GC造成的性能影响可能会成为程序的瓶颈。 主要参阅Oracle系列文章 什么是垃圾 标记垃圾 从哪里开始(stop...
Class文件是静态的协议,把里面的内容执行起来需要一个动态的环境。 JVM就像一个小型操作系统,把内部划分为了不同的区域,使用堆、栈等结构来保证程序的运行。 Runtime Area PC - Program Counter 线程私有?true! Stack - 栈 ...