已经同步最终版

序言

首先,这肯定是一个非常重大的消息。绝对是Java程序员的福利啊,终于结束了一个公司一套规范的编程生涯。这对业界规范来说也起到了很好的推动作用。俗话说:无规矩不方圆,生活中各种法律道德的约束,出门还有交规的限制。相信小伙伴们一定经历过 坑,有了这本规范手册,你是不是该好好学习一下呢?

目录章节

内容分五大类,总共19章节:

索引 一级目录 二级目录
编程规约 命名规约、常量定义、代码格式、OOP规约、集合处理、并发处理、控制语句、注释规约、其它
异常日志 异常处理、日志规约
单元测试
安全规约
MySQL数据库 建表规约、索引规约、SQL语句、ORM映射
工程结构 应用分层、二方库依赖、服务器

Java对象内存占用分析

原文地址:查看原文

序言

之前说过在Android中关于enum的使用,对内存的占用比较大,所以就了解了一下内存占用方面,基本上大同小异,下面是我觉得比较全面的描述,重新排版、整理,如果有时间,希望你能好好了解一下。

下面的内容深入分析并验证了不同Java对象占用内存空间大小的情况。对于不同的jvm实现,Java对象占用的内存空间大小可能不尽相同,本文主要分析HotSpot jvm中的情况,实验环境为64位window10系统、JDK1.8,使用JProfiler进行结论验证。

Java对象内存布局

Java对象的内存布局包括

  • 对象头(Header)
  • 实例数据(Instance Data)
  • 补齐填充(Padding)

对象头:

在64位机器上,默认不开启指针压缩(-XX:-UseCompressedOops)的情况下,对象头占用12bytes,开启指针压缩(-XX:+UseCompressedOops)则占用16bytes。

实例数据:

原生类型(primitive type)的内存占用如下:

Primitive Type Memory Required(bytes)
byte, boolean 1 byte
short, char 2 bytes
int, float 4 bytes
long, double 8 bytes

注:对象引用(reference)类型在64位机器上,关闭指针压缩时占用4bytes, 开启时占用8bytes

关于OpenJDK你了解多少?

序言

2015年12月底,谷歌宣布,他们正在用开源的 OpenJDK 替换 Oracle JavaAPI。这次方向上的改变看起来与 Sun/Oracle 与 谷歌之间的法律纠纷有关,该纠纷认为谷歌在使用 Java 开发安卓操作系统时违反了 Sun/Oracle 的版权和专利权。

本文与 Sun/Oracle 和谷歌的法律纠纷无关。谷歌现在加入了 IBM、RedHat、Apple(还有其他企业)的队伍专注于 OpenJDK,这意味着什么?意识到这点之后我想弄清楚,对于 JDK 用户,现在是不是应该考虑一下 OpenJDK

历史

从Java7开始,OpenJDK就是Java的参考实现(Reference Implementation)。下图的时间线可以让你了解一下OpenJDK的历史:

jdkhistory

Http协议简介

原作者:吾爱
源地址:点击跳转

序言

request-response
我们平时在浏览网页的时候都是使用浏览器,输入你要的网址后回车,就会显示出我们所想要的内容,看似这个简单的用户操作行为的背后,Web的工作原理是怎样的呢?到底隐藏了些什么呢?

对于传统的上网流程,系统它是这么做的:浏览器本身它是一个客户端,当输入URL地址的时候,浏览器首先会去请求DNS服务器,通过DNS查询获取相应的域名所对应的IP地址,然后通过这个映射的IP地址找到IP对应的服务器,并建立连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理,返回HTTP Response(响应)包,客户端浏览器收到来自服务器的响应后就开始渲染这个Response包里的主体(body)部分,等收到全部的内容后断开与该服务器之间的连接。

web-request-process

Java之HashMap和HashTable的不同

HashTable和HashMap的6个不同点:Java热门面试题例子

HashTable和HashMa的区别是面试题中经常被问到的问题。还有其他比较热门的问题,像ArrayList和Vector、Comparator和Comparable。这些问题经常在面试中被问题,以检查我们是否正确理解集合类的使用和拥有的替代解决方案的知识。这两者之间的不同,包括6个点,分别是Synchronization_、_Null keys and values_、_Iterating values_、_Fail fast iterator_、_Performance_、_Superclass

HashTable和HashMap的不同

1.Synchronization or Thread Safe :

这是它们最重要的不同点。HashMap不是同步的,并且不是是线程安全的。相反,HashTable是线程安全和同步的。

什么时候使用HashMap?答案是如果你的应用不需要任何多线程任务,就是说HashMap适用于没有线程的应用。HashTable应该在多线程应用中使用。

| | 总字数统计:93.5k