摘要: 最近抽空学习了下阿里之前开放出来的java开发手册,其中提出的规约有的是基于代码书写规范的统一,有的是基于代码的安全性、执行效率考虑的。其中提到的大部分要求在实际编码中都是很好的建议,也有个别建议在实际项目中可能并不合适,要视项目的规模、场景决定。这里总结了其中感觉比较有价值的一些规范: 1.所有的 阅读全文
posted @ 2019-07-16 17:39 二十二花生 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 前言:相比C++,java做的一大改进是将复杂的内存管理抽离出来交给jvm去处理,让码农不再时刻盯着内存泄漏的问题,可以更专注于业务逻辑的开发。 java的GC机制是和其内存模型相关联的,而GC的核心内存区域是内存中的堆区。 java堆区按对象的存活时间被分为了年轻代(eden区+s0区+s1区)和 阅读全文
posted @ 2019-07-23 12:39 二十二花生 阅读(2783) 评论(0) 推荐(0) 编辑
摘要: 前言:当我们在代码中简单的通过 A a = new A(); 生成一个java对象的时候,中间发生了哪些事情呢? 这里主要进行了两个大的流程,先进行类的加载,然后进行对象的实例化 一.类的加载 这里在进行new A()时,jvm首先会查找类A是否已经加载到内存,如果之前没有加载过,这里就会进行加载类 阅读全文
posted @ 2019-07-22 17:51 二十二花生 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 基于java和PHP对一个http请求进行处理的方式可以用下面这个简单的图示体现出来: 1.处理PHP程序的php-fpm服务接收到的是基于CGI(通用网关接口)的数据协议封装过的http数据,所以只要你精通CGI协议,理论上可以自己实现一个类似php-fpm的服务接收CGI数据,然后用自创的一门脚 阅读全文
posted @ 2019-07-16 20:25 二十二花生 阅读(438) 评论(0) 推荐(1) 编辑
摘要: 前言:在web服务端开发的过程中,redis+mysql是最常用的存储解决方案,mysql存储着所有的业务数据,根据业务规模会采用相应的分库分表、读写分离、主备容灾、数据库集群等手段。但是由于mysql是基于磁盘的IO,基于服务响应性能考虑,将业务热数据利用redis缓存,使得高频业务数据可以直接从 阅读全文
posted @ 2019-05-25 16:49 二十二花生 阅读(4838) 评论(0) 推荐(0) 编辑
摘要: java内存是由jvm进行管理的,其内存简易模型如下图: java内存是由jvm进行管理的,其内存简易模型如下图: jvm管理的内存大体上可分为方法区、堆、程序计数器、线程栈、本地方法区这几部分。方法区:主要存放类的元信息(包括类的名称、修饰符、静态变量、final常量、属性信息、方法信息)。本区域 阅读全文
posted @ 2019-05-25 15:30 二十二花生 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 前言:线程池技术是通过对线程资源的统一管理来达到对线程资源的重复利用,降低线程频繁创建和销毁的开销。java jdk在java.util.concurrent并发包中有一套现成的对线程池的实现方案,我们可以直接拿来使用,快速实现多线程并发编程场景。这里对concurrent包中的线程池框架的实现进行 阅读全文
posted @ 2019-05-03 22:10 二十二花生 阅读(302) 评论(0) 推荐(0) 编辑