- Android 性能优化总结 11-15
- 程序员相关笑话,你看懂几个? 11-15
- java程序员“充电”必备书籍, 11-15
- Java学习系列之不要学习代码, 11-15
- Java Web状态代码速查表— 11-15
- 坐了N次的飞机 但你知道它的航班 11-15
- 嵌入式学习笔记之GPIO详解 11-15
- 线程安全与共享资源 11-15
- Lambda 表达式的 10 个 11-15
- 分布式服务框架Dubbo疯狂更新 11-15
Android 性能优化总结
发布者: super | 发布时间:2017-11-15
缘由
Android系统每隔16ms发出VSYNC信号,对UI进行渲染,如果每次渲染都成功,就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成,时间超出16ms越多,丢的帧就越多。
假设我们更新屏幕的背景图片,需要24ms来做这次运算。当系统在第一个16ms时刷新界面,然而我们的运算还没有结束,无法绘出图片。当系统隔16ms再发一次VSYNC信息重绘界面时,用户才会看到更新后的图片。也就是说用户是32ms后看到了这次刷新(注意,并不是24ms),这就是丢帧。
大多数多用感知到卡顿等问题最主要的根源是渲染问题,而导致渲染问题的原因是性能问题,为了保证程序正常的使用,性能方面需要着重注意,本篇针对的性能优化是从一些平时常见的细节入手,
性能优化
丢帧只是用户能感知到的表面现象,严重的会引起程序卡顿甚至ANR,深层次的原因是代码中有比较耗时的操作阻塞到了主线程,也就是性能问题。
过度绘制
过度绘制(Overdraw)是指屏幕上
程序员相关笑话,你看懂几个?
发布者: super | 发布时间:2017-11-15
程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。
程序猿的读书历程:x语言入门—>x语言应用实践—>x语言高阶编程—>x语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。
还没上大学的时候,高三暑假,跑到家那边的图书城想买传说中的C++的书,然后看到一本C#,我一看,嘿,这个++还写得挺艺术的,重叠起来了,于是把C#买了回来……
问:程序猿最讨厌康熙的哪个儿子?答:胤禩,因为他是八阿哥(bug)。
有一天,程序猿们突然发现他们要涨的工资掉到井里啦!大家都很害怕,连忙一个吊着一个,从树上伸到井里去捞工资
java程序员“充电”必备书籍,赶紧收了吧!
发布者: super | 发布时间:2017-11-15
很多人都说java这门编程语言老了,但是根据这几个月的编程语言排行榜来看,java编程语言还是位居榜首的,用实力证明了java是时下最流行的编程语言之一了。作为java程序
员来说,日常“充电”是必不可少的,所以今天小编在这里整理了java程序员“充电”必看书籍,赶紧收了吧!
一、《The Pragmatic Programmer: From Journeyman to Master》(程序员的修炼:从中级到大师)
这本书是面向所有程序员的,它保持了编程过程的新鲜度,我们可以在中不断的汲取力量,成长。
二、《The Java language specification》(Java编程规范)
有可能看过的人会觉得这本书并没有什么学习技能的地方,不过小编在这里要
Java学习系列之不要学习代码,要学会思考
发布者: super | 发布时间:2017-11-15
这是一个人人都在学习编程的时代:Code.org请了比尔·盖茨,马克·扎克伯格和克里斯·波什等这些名人,来告诉你,每个人都可以编程;CoderDojo’s在各个国家悄然兴起;在英国,编程已经是各个年级学生的正式课程。
我认为这里有个误区。别误会我——如果每个人都会一些编程知识,这个世界当然会变得更好——但是学会写代码不应该是我们的目标。计算机和程序只是一个工具,是一种达到某种目的的方法。
真正的目标应该是学会思考的方式。换句话说,我们应该尝试教授计算机科学,而不是教着写代码。在本文中,我将介绍两者的不同,以及为什么后者是当下学编程浪潮成功的关键。
如果你喜欢视频的解释,我强烈推荐Simon Peyton Jones的TED,Teaching Creative Computer Science。
Java Web状态代码速查表——开发即查即用
发布者: super | 发布时间:2017-11-15
网络配图
状态代码描述100 - 199状态代码 100 - 199 间的值都是信息性的、标示客户应该采取的其他动作。200 - 299状态代码 200 - 299 间的值表示请求成功。300 - 399状态代码 300 - 399 间的值用于那些已经移走的文件、常常包括 Location 报头、指出新的地址。400 - 499状态代码 400 - 499 间的值表明是由客户引发的错误。500 - 599状态代码 500 - 599 间的代码表示由服务器引发的错误一些重要的状态代码说明100Continue、继续如果服务器接收到的值为 100-Continue 的 Expect 的请求报头、这表示客户程序在询问是否可以在随后的请求中发送附加文档。这种情况下、服务器应该说以状态 100(SC_Continue) 回应、告诉
坐了N次的飞机 但你知道它的航班号是怎么来的吗?
发布者: super | 发布时间:2017-11-15
每回坐飞机看到航班号,你会不会产生这样一个疑问——这些字母+数字的航班号到底代表着什么?它有什么规律吗?它的命名有着什么样的特点?……纵使你我疑问千百多,但我们唯一可以确定的是这些航班号肯定不是乱取的。
这些拥有着“摩斯密码”般神秘的航班号具体有什么含义呢?就让小编为你慢慢道来。
2004年,我国对航班号命名进行了调整,现在的航班号和2004年之前的航班号有着不同的命名规则,但也有相似之处。
2004年之前航班号的命名规则
1、两位字母代表航空公司
2004年之前的航班号规则相比于现在来说可能会清晰得多。当时中国国内航班号是由航空公司的两字代码+4位数字组成,如:JD5601(海口=呼和浩特)。这其中JD为航空公司的两字代码。
每个航空公司都有自己的两字代码。上文中的JD代表的就是首都航空。
原标题:嵌入式学习笔记之GPIO详解
一、 什么是GPIO
GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。数据寄存器的各位都直接引到芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立的加以设置。这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。
二、 GPIO之LCD控制编程
S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、GPJ,可以通过设置寄存器来确定某个引脚用于输入、输出还是特殊功能。比如:可以设置GPH6作为输入、输出、或者用于串口
线程安全与共享资源
发布者: super | 发布时间:2017-11-15
来源:毕冉,
ifeve.com/thread-safety/
允许被多个线程同时执行的代码称作线程安全的代码。线程安全的代码不包含竞态条件。当多个线程同时更新共享资源时会引发竞态条件。因此,了解Java线程执行时共享了什么资源很重要。
局部变量
局部变量存储在线程自己的栈中。也就是说,局部变量永远也不会被多个线程共享。所以,基础类型的局部变量是线程安全的。下面是基础类型的局部变量的一个例子:
public void someMethod(){
long threadSafeInt = 0;
threadSafeInt++;
}
局部的对象引用
对象的局部引用和基础类型的局部变量不太一样。尽管引用本身没有被共享,但引用所指的对象并没有存储在线程的栈内。所有的对象都存在共享堆中。如果在某个方法中创建的对象不会逃逸出(译者注:即该对象不会被其它方法获得,也不会被非局部变量引用到)该方法,那么它就是线程安全的。实际上,哪怕将
Lambda 表达式的 10 个示例
发布者: super | 发布时间:2017-11-15
来源:ImportNew - lemeilleur,
www.importnew.com/16436.html
在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码。而定义行为最重要的那行代码,却混在中间不够突出。Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码。这样有时可读性更好,表达更清晰。在Java生态系统中,函数式表达与对面向对象的全面支持是个激动人心的进步。将进一步促进并行第三方库的发展,充分利用多核CPU。作为开发人员,我发现学习和掌握lambda表达式的最佳方法就是勇于尝试,尽可能多练习流API和lambda表达式,用于对列表(Lists)和集合(Collections)数据进行提取、过滤和排序。本文分享在代码中最有用的10个lambda表达式的使用方法,这些例子都短小精悍,将帮助你快速学会lambda表达式。
Java 8 lambda表达式示例
我个人对Java 8发布非常激动,尤其是lambda表达式和流API。越来越多的了解它们,我能写出更干净的
分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
发布者: super | 发布时间:2017-11-15
阿里妹导读:最近,开源社区发生了一件大事——使用最广的开源服务框架之一Dubbo低调重启维护,并且3个月连续发布了3个维护版本。这3个维护版本不仅解决了社区关心的一系列问题和需求,还让整个社区的活跃度得到了大幅提升。
Dubbo启动维护后,阿里中间件(Aliware)组建了由专职人员和RPC技术专家组成的虚拟维护团队。通过这篇文章,Dubbo的虚拟维护团队将和大家分享一些Dubbo启动维护的历程、取得的成绩以及后续的规划,具体包括Dubbo社区的建设情况、当前的版本维护主线、近期roadmap及后续计划等。
Dubbo是阿里巴巴于2012年开源的分布式服务治理框架,目前已是国内影响力最大、使用最广泛的开源服务框架之一,在Github上的fork、start数均已破万。
在过去几年,
