- 浏览: 19746 次
- 性别:
- 来自: 北京
最新评论
-
maobaolong:
引用真正的内存分配是使用的Bits.reserveMemory ...
【深入Java编程】JVM源码分析之堆外内存完全解读
文章列表
阅读全文请点击
一、前言长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章。二、导读1、为什么有多线程?2、线程安全描述的本质问题是什么?3、Java内存模型(JMM)数据可见性问题、指令重排序、内存屏障三、揭晓答案1、为什么有多线程谈到多线程,我们很容易与高性能画上等号,但是并非如此,举个简单的例子,从1加到100,用四个线程计算不一定比一个线程来得快。因为线程的创建和上下文切换,是一笔巨大的开销。那么设计多线程的初衷是什么呢?来看一个这样的实际例子,计算机通常需要与人来交 ...
面向大从的移动打桩其它四篇文章地址(校对添加):
(一)、android简介;
(二)、轻轻一划,在android中为手势编码;
(三)、Android 应用程序生命周期中的活动与图标;
(四)、Overheard Word 的单词和手势。
添加一个多选择quiz到你的Android手机app,然后用一个安全数字证书签名
用网络逻辑,内容为王。但是对与手机用户来说,交互规则才是王道。对移动app静态信息设计在减少,并且游戏化正在增多。这个月Andrew Glover决定通过将一个多选择的quiz特性加入到一个示例app(Overheard Word,前一篇介绍的。) 中来介绍Andr ...
概述
Anbox 使用 Linux 命名空间(user、pid、uts、net、mount、ipc)来在容器中运行完整的 Android 系统,并在任何基于 GNU Linux 平台上提供 Android 应用。
容器内的 Android 无法直接访问任何硬件。所有硬件访问都通过主机上的 anbox 守护进程进行。我们重用基于 QEMU 的模拟器实现的 Android 中的 GL、ES 加速渲染。容器内的 Android 系统使用不同的管道与主机系统通信,并通过它发送所有硬件访问命令。
有关更多详细信息,请参考下文档:
Android 硬件 OpenGL ES 仿真设计概述
Android ...
备份 Android 系统上的应用数据、文本信息等等是非常乏味的,有时还很昂贵。电子市场的许多应用都承诺可以备份数据,但效果不佳或者需要付昂贵费用。你是否知道有一种更好的方法可以来做这件事,并且在你的电脑上就可以 ...
范围:要回收哪些区域
在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进 ...
Android开发有时候会令人头痛。你不得不为诸如建立fragment这样简单的事情写很多代码。幸运的是java支持一个强大的工具:注释处理器(Annotation Processors)。
Fragment的问题是你不得不设置很多参数,从而让它正常运行。很多android开发新手通常这样写:
01
public class MyFragment extends Fragment
02
{
03
private int id;
04
private String title;
05
06
public static MyFragment newInstance(int id, Strin ...
FullSizeRende
本文定位于为使用GIT标准分支开发流程的开发团队新人提供一份参考指南,其中的内容都是我们公司在研发团队初创时所遵循的一些开发流程标准,经过近一年的实践,虽说还有很多不足,但是随着团队经验的丰富和人员的扩张,我会适时地更新本文,分享我们在使用GIT开发流程中遇到的问题和解决方案。
本文将会持续修正和更新,最新内容请参考我的 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me。
分支流程说明
简介
项目中长期存在的两个分支
master:主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。
develop: ...
概述
为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。
包体分析
在Android Studio工具栏里,打开build–>Analyze APK, 选择要分析的APK包 。
20170210105239708
可以看到占用空间的主要是代码、图片、资源和lib和assert文件,主要方向精简代码、压缩图片、去除无用的库、减少asserts里面文件。
使用一套资源
...
以独特方式组织的可视化数据往往能够为我们提出一些有趣的观点。Felipe Hoffa最近使用BigQuery结合Reddit近八年来的网站活动以及上线时间数据进行了可视化分析,我们从中看到了一些非常有趣的信息。作为一名刚入门的负责任务控制的网站可靠性工程师,我总是会这样问自己,"如果我是负责这项服务的可靠性工程师,我会采用什么方法解决这个问题?"
这次,Felipe将从可靠性工程师的角度出发,对GitHub的一些历史数据展开分析。首先,我们需要先确定,使用BigQuery对GitHub Archive上关于GitHub的部分事件数据进行分析是否足以推断出GitHub网站的健 ...
2D仿射变换
UIView的transform属性是一个CGAffineTransform类型,用于在二维空间做旋转,缩放和平移。CGAffineTransform是一个可以和二维空间向量(例如CGPoint)做乘法的3X2的矩阵:
1240
Paste_Image.png
当对UIView应用变换矩阵,UIView图层矩形内的每一个点都被相应地做变换,从而形成一个新的四边形的形状。CGAffineTransform中的“仿射”的意思是无论变换矩阵用什么值,图层中平行的两条线在变换之后任然保持平行.
单位矩阵
CGAffineTransformIdentity
CGAffineTrans ...
日期: 2016年7月 2日
谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。
我一直很困惑,为什么要这样做,不同语言的项目放在一个库有什么好处?
最新一期的《ACM通信》(59卷第7期)有一篇论文《为什么 Goo ...
很多人说,不知道怎么写文档,都是凭着感觉写。
网上也很少有资料,教你写文档。这已经影响了中文软件的发展。
英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等(维基百科有一份完整的清单)。中文的也有不少,但都不令人满意,要么太简单,要么不太适用。
我就动手,参考上面的规范,也结合自己的实践,总结了一份简单的《中文技术文档的写作规范》。
标题
文本
段落
数值
标点符号
章节结构
我希望,这样可以抛砖引玉,让更多人重视文档,进而真正出现大家普遍接受的文档规范。
下面是关 ...
WebSocket 由来已久, 常用于 "服务器推" 场景。最近开始学习 WebSocket (从 tomcat examples 开始), 本文的主要目的是做学习笔记, 同时记录一份开发指南。
本文示例代码见: https://github.com/hanyong/exercise/tree/websocket
HTTP 协议简 ...
概述
广义的堆外内存
说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久代的最大值,那么我们认识的Java堆的最大值其实是-Xmx和-XX:MaxPermSize的总和,在分代算法下,新生代,老生代和持久代是连续的虚拟地址,因为它们是一起分配的,那么剩下的都可以认为是堆外内存(广义的)了,这些包括了jvm本身在运行过程中分配的内存,codecache,jni里分配的内存,Di ...
每期阿里云的技术分享课程都报名火爆,各路技术大咖进行了对于技术理解的深度分享,但是还是有很多小伙伴错过了现场直播。本文特意为大家整理了阿里云在线技术分享课程的精彩合集,错过了直播的小伙伴们快来补补课吧 ...