关于 HashSet
HashSet 的 DOC 注释
-Basic JDK7
1 |
|
HashSet 的类属性、构造方法及 add() 方法
1 |
|
-Basic JDK7
1 |
|
1 |
|
包括之前的 HashMap
和 LinkedList
, 都是基于 JDK 7的(应该全面拥抱JDK 8了)。
1 |
|
1 |
|
关于 HashMap, 有一件事儿一直很困惑,,在『Redis 核心历险』中是这样被提到的:
Redis 的字典相当于 Java 语言中的 HashMap,它是无序字典,内部存储了很多键值对。实现结构上与 Java 的 HashMap 也是一样的,都是”数组 + 链表”二维结构。第一维的 hash 的数组位置碰撞时,就会将碰撞的元素使用链表串接起来。
嗯,第一句没啥问题,,然而”数组 + 链表”什么鬼?还有 hash 碰撞。。作者并没有详细解释这儿,应该默认是每个 Java 开发者都知道的知识点了。然而我却在这儿卡壳了,心慌慌。。趁着周末赶紧补补课。事实证明,这波补课是很有效果的,在这本书后边的内容中,hash 还将会一直出现。
1 |
|
1 |
|
关于关键字 transient,,
一个对象只要实现了 Serializable 接口,该对象就可以被序列化。然而在实际开发过程中,常常会遇到这样的问题,该类有些属性需要序列化,其他属性不需要被序列化。例如一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及序列化)中被传输,这些信息对应的变量就可以加上 transient 关键字,这样变量的生命周期仅存在于调用者的内存中而不会被写到磁盘里持久化。)
果然,『深入理解Java虚拟机』这本书读一遍是远远不够的,温故总能知新~今天要写的是先行发生原则,说来惭愧,,好像读第一遍的时候并没有太深刻的印象,昨晚再读的时候就拍大腿了:醍醐灌顶啊!!所以,今天还真得扮演搬运工的角色。
说到先行发生原则,还得再往前倒倒,说下 Java 内存模型的特征。
Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性这个3个特征来建立的。
最近一直没有更新文章是因为过得很充实,,
一方面,现在在做小程序的线上商城,小程序这边倒没什么难的,难的是服务器端怎么设计架构,涉及到不同的客户,不同的客户门店组织架构又不一样,硬件条件也不一样,商品也不一样,还需要跟 ERP 的同事进行沟通。。
另一方面,一直计划在房子合同到期(2019-04-04)之后换工作,所以积极准备面试,查漏补缺什么的。去年12月份时候,买了『深入理解Java虚拟机』和『Java并发编程的艺术』。前者全是干货,干到没法儿写博客做笔记,否则就是在照搬书上的内容了。后者,,额,有点晦涩,没有读下去的欲望,然后就放在省图计算机科学分类下的书架上了,嗯,上周末去省图发现那本书已经不见了🤣。
对了,与此同时,,发现了 vue-element-admin 框架,一直想试试 webpack,然后就在不忙的时候慢慢重构现有的后台页面。用封装好的组件写页面真省心,爽的飞起~
嗯,,今天的主要内容来自『深入理解Java虚拟机』的第五部分第一章–Java内存模型与线程。
这是第二次读这一部分了,,第一次读的时候大水漫灌囫囵吞枣,全局把握(大误)。这次读的时候主要的是抠细节,温故知新,受益匪浅!下面进入正题儿~
🕯🕯🕯
我上小学,你出差;之后我开始住校,初中两周回家一次,每次两天;高中四周回家一次,每次不到36小时;我上大学了,你退休了,我半年回家一次。
如果你还在..
Extra..
2018年的 Keyword 是??
这个,,闲得无聊,看了看shadowsocks.log
文件👇
1 |
|
日志信息中没啥特别有用的信息,,关键是这么长时间了,日志文件已经很大了👇
这次是自己的需求,刚好周六,闲来无事来公司加班,好好总结下。
自己做了个小程序,用来收集平时的位置信息,还有微信步数什么的,租的国外的服务器,,翻墙和部署项目两不误,顺便做做linux的练习,完美~ 在初期,部署项目以及一些静态资源时,经常404,肯定nginx哪里配置错了,,直接在linux服务器上用命令行翻日志又很麻烦,ssh还总断(扶额)。把nginx日志文件当静态资源访问好啦,这样直接在浏览器就可以访问,完美~这一步并不难,好好配置nginx.conf
中的location属性就好,略过不表。
但我担心的是访问路径暴露了怎么办。。有必要加上基础的访问限制,验证用户名密码什么的。还要自己写个页面?在数据库配置用户名密码?太不优雅了。还好有nginx的auth_basic
模块,完美解决问题~
这之后,有一次闲来没事,翻翻nginx日志,,呦,被吓一跳!👇