自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (10)
  • 收藏
  • 关注

转载 在 Android Studio 中使用 Annotation Processor

Java 的 Annotation Processor 是非常有用的功能,很多常用的库和框架都使用了 Annotation Processor 来生成代码,比如Butter Knife 就用来生成 findViewById 等代码。对于一些模板代码使用 Annotation Processor 来自动生成可以提高编写代码的效率和质量,手工编写毕竟容易出现纰漏,工具自动生成是有质量保证的

2017-03-30 14:42:31 6743

转载 Android编译时注解框架系列1-什么是编译时注解

转载请注明出处:https://lizhaoxuan.github.io概述Android编译时注解框架从入门到项目实践。该系列将通过5篇博客一步步教你打造一个属于自己的编译时注解框架,并在之后开源出基于APT的编译时注解框架。提到注解,普遍都会有两种态度:黑科技、低性能。而使用注解往往可以实现用非常少的代码作出匪夷所思的事情,比如这些框架:ButterKnife、Retr

2017-03-30 14:39:02 589

转载 Android依赖管理与私服搭建

1.Android引入依赖的多种方式2.多平台私服搭建3.创建和依赖自己的代码仓库1、Android引入依赖的多种方式引入方式一AS切换project视图>新建libs目录(高版本AS默认存在libs目录)>copy jar 包>add as library下面以我开源的支付宝以及微信app支付项目为例引入相关的jar方式一:ad

2017-03-13 11:44:56 655 1

原创 第十三章 线程安全与锁优化

一、线程安全线程安全:指当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调用和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么喝个对象就是线程安全的。1.Java语音中的线程安全我们可以根据线程安全的“安全程度”由强至弱来排序呢,将Java语音中各种操作共享的数据分为五类1.不可变2.绝对线程安全3.相对线程安全

2017-03-09 13:42:10 556

原创 第12章 Java内存模型与线程

Java 内存模型(Java Memory Model –> JMM)用来实现屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。屏蔽硬件差异、保证并发。而程序的功能就是数据流的交互,所以保证数据的快速、正确访问就是Java内存模型的核心。1.主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中

2017-03-09 13:41:05 266

原创 第八章 虚拟机字节码执行引擎

执行引擎是Java虚拟机最核心的组成部分之一。执行引擎在执行Java代码的时候可能有解释执行(通过解释器执行)和编译执行(通过即时编译器产生的本地代码执行)两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎。但从Java虚拟机规范中描述的执行引擎概念模型来说,所有的Java虚拟机的执行引擎都是一样的:它的输入是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。1.运行时

2017-03-09 11:42:52 472

原创 第七章 虚拟机类加载机制

虚拟机把描述类的数据从class文件加载到内存中,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类从加载到虚拟机内存开始,到卸载出内存,一共经历了7个步骤:1.加载2.验证3.准备4.解析5.初始化6.使用7.卸载对于初始化,Java虚拟机规范做了严格的限制,有且只有四种情况必须立即对类进行“初始化”遇到new,get s

2017-03-09 11:41:54 477

原创 第三章 垃圾收集器与内存分配策略

3.2 对象已死吗?在堆里面存放着Java世界中几乎所有的对象实例,下面就让我们了解下垃圾收集器在对堆进行回收前,如何判断哪些对象还存活,哪些已经死去3.2.1 引用计数算法实现的原理:大致是给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。但是Java虚拟机没有选择引用计数算法来管理内存,其中最主要的原因

2017-03-09 11:35:32 323

原创 第二章 Java内存区域与内存溢出异常

2.2 运行时数据区域方法区堆虚拟机栈本地方法栈程序计数器2.2.1 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。 字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程中的指令。因此,为了线

2017-03-09 11:33:17 335

转载 Android架构思考(模块化、多进程)

推荐原因:这是我看过的比较宏观层面上面来对Android架构设计上面的思考的文章,架构的设计其实在一定程度上面是根据业务的需要,同一个项目在不同阶段,往往之前的架构设计无法满足后期的需求,这时候就需要我们从新的层面上面来考虑下原有架构的不足之处和改进方案。这篇文章从项目的小型模型-中大型模型为我们讲解了架构设计的演变方案。关于模块化(组件化)这个问题,我想每个开发者可能都认真的思考过。随着

2017-03-02 11:13:38 781

转载 Android中的Service:Binder,Messenger,AIDL(2)

前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇: Android中的Service:默默的奉献者 (1) 。但是在前一篇博文中也有一些遗漏的东西——主要是关于bindService()这一块的具体细

2017-02-26 11:01:48 572 1

转载 Android中的Service

这段时间在看一些IPC相关的东西,这里面就不可避免的要涉及到service,进程线程这些知识点,而且在研究的过程中我惊觉自己对这些东西的记忆已经开始有些模糊了——这可要不得。于是我就干脆花了点心思温故了一下,就有了这篇博文。非常感谢Google的官方文档——尤其是其中部分文章有中文版了之后。正文1,什么是service?Service是一个可以在后台执行长时间操作而不使用用

2017-02-26 10:35:47 343

原创 Android 事件的分发

Android 事件的分发和消费机制dispatchTouchEvent()return true; —–> stopreturn false; ——> if(View == Activity) { onTouchEvent(); } else {

2017-02-23 21:55:41 358

转载 HttpClient和HttpURLConnection的区别

总结了网上的一些资源,主要有以下两个观点:分析一:            在研究Volley框架的源码中,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原因,于是专门找到了一位Google的工程师写的一篇博客,文中对Http

2017-02-22 14:01:33 476

转载 RxJava之三—— observeOn()与subscribeOn()的详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51967967 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!为什么多次调用subscribeOn()却只有第一个起作用? 为什么多次调用observeOn()却可以切换到不同线程 observeOn()后能不能再次调用subscri

2017-02-22 11:48:30 1938

转载 RxJava 之二—— Lift()详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/53611268 文章出自:薛瑄的博客RxJava最让人兴奋的就是它有各种各样的操作符,什么map呀,flatMap呀各种,我们今天要知其然知其所以然,那么他们是如何实现功能的呢?下面通过一个例子,逐步深入分析。最后面还会再进行一次总结例子:代码块一:

2017-02-22 11:46:48 1049

转载 RxJava之一——使用详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52068014 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github: https://github.com/ReactiveX/RxJava h

2017-02-22 11:45:34 695

转载 Gradle笔记——构建基础

本篇文章主要介绍一下Gradle的构建基础。它看起来似乎和Android项目没多大关系,不能让人一下子理解android项目中的Gradle配置文件,但是这篇基础真的很重要。学习Gradle前,需要有一个Groovy语言的基础,以免被Groovy的语法困扰,反而忽略了Gradle的知识。这里有一个Groovy的简明中文教程文档,可以快速学习Groovy的一些语法:http://downlo

2017-02-21 09:33:51 228

转载 Gradle笔记——Gradle的简介与安装

博客对Gradle进行一个简单的介绍,以及它的安装。Gradle介绍Gradle是一个基于JVM的构建工具,它提供了:像Ant一样,通用灵活的构建工具可以切换的,基于约定的构建框架强大的多工程构建支持基于Apache Ivy的强大的依赖管理支持maven, Ivy仓库支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。对Ant的任务

2017-02-21 09:32:27 330

转载 Android Studio之基本Gradle使用

Android Studio的一大特色就是自动构建工具gradle的使用。1.配置Gradle环境变量下载最新Gradle整包下载地址:http://www.androiddevtools.cn/index.html 配置Gradle的环境变量新建GRADLE_HOME目录:打开系统->高级系统设置,在弹出的菜

2017-02-20 17:43:33 898

转载 由Looper中的ThreadLocal谈起--论ThreadLocal的使用

这两天在对Android的消息机制(handler)进行深入的了解和学习,在研究相应的源码的过程中,发现在Looper中被使用的ThreadLocal,对于它的作用出于好奇便进行了一些比较简单的分析,现在将我的学习心得公布如下:        ThreadLocal这个类,相信对于之前从来都没有接触过这个类的程序猿来说,也许会把它认为是一个线程类。其实不然,它的作用可以大致理解为在各个线程

2017-02-19 22:24:02 485

转载 Java中的序列化Serialable高级详解

引言将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java

2016-12-13 17:36:10 715

转载 人脸识别经典算法三:Fisherface(LDA)

Fisherface是由Ronald Fisher发明的,想必这就是Fisherface名字由来。Fisherface所基于的LDA(Linear Discriminant Analysis,线性判别分析)理论和特征脸里用到的PCA有相似之处,都是对原有数据进行整体降维映射到低维空间的方法,LDA和PCA都是从数据整体入手而不同于LBP提取局部纹理特征。如果阅读本文有难度,可以考虑自学斯坦福公开课

2014-09-25 16:01:41 17456 1

转载 人脸识别经典算法二:LBP方法

与第一篇博文特征脸方法不同,LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的。LBP方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题。不过相比于特征脸方法,LBP的识别率已经有了很大的提升。在[1]的文章里,有些人脸库的识别率已经达到了98%+。1、LBP特征提取最初的LBP是定义在像素3x3邻域内的,以邻

2014-09-25 16:00:31 13633

转载 人脸识别经典算法一:特征脸方法(Eigenface)

这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eigenface)理论基础-PCA(主成分分析法) 。本文的参考资料附在最后了^_^步骤一:获取包含M张人脸图像的集合S。在我们的例子里有25张人脸图像(虽然是25个不同人的人脸的图像,但是看着怎么不像呢

2014-09-25 15:57:39 44206 5

转载 人脸识别必读的N篇文章

原文转自:http://blog.sina.com.cn/s/blog_6ae183910101h4jr.html一,人脸检测/跟踪人脸检测/跟踪的目的是在图像/视频中找到各个人脸所在的位置和大小;对于跟踪而言,还需要确定帧间不同人脸间的对应关系。1,Robust Real-time Object Detection. Paul Viola, Michael Jones. IJCV

2014-09-25 15:52:51 3270

转载 Android 手把手教您自定义ViewGroup

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38339817 , 本文出自:【张鸿洋的博客】今天给大家带来一篇自定义ViewGroup的教程,说白了,就是教大家如何自定义ViewGroup,如果你对自定义ViewGroup还不是很了解,或者正想学习如何自定义,那么你可以好好看看这篇博客。1、概述在写代码

2014-09-02 16:15:46 766

转载 android 自定义进度条颜色

android 自定义进度条颜色先看图基于产品经理各种自定义需求,经过查阅了解,下面是自己对android自定义进度条的学习过程!这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\  下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml找到xml后,进去找到

2014-08-26 18:07:58 1113 1

转载 Java 并发:Executors 和线程池

让我们开始来从入门了解一下 Java 的并发编程。本文主要介绍如何开始创建线程以及管理线程池,在 Java 语言中,一个最简单的线程如下代码所示:Runnable runnable = new Runnable(){ public void run(){ System.out.println("Run"); }}可通过下面一行代码来启动这个线程:

2014-01-30 12:11:54 851

转载 OnGestureListener替代传统的ontouchevent()处理事件

Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。这些Gesture会使用户体验大大提升。Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。首先,Android事件处理机制是基于Liste

2014-01-26 19:35:59 3377

转载 Android进程与内存及内存泄露

第一部分 Android进程1.1、Android进程简介    每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,而每一个虚拟机实例都是一个独立的进程空间,不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚拟机造成影响,可以最大程度的保护应用的安全和独立运行.    关于此的更多内容可参考《Android Dalvik虚拟机简

2014-01-21 12:30:07 900

转载 Android视图绘制流程完全解析,带你一步步深入了解View(二)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267在上一篇文章中,我带着大家一起剖析了一下LayoutInflater的工作原理,可以算是对View进行深入了解的第一步吧。那么本篇文章中,我们将继续对View进行深入探究,看一看它的绘制流程到底是什么样的。如果你还没有看过我的上一篇文章,可以先去阅读 Andro

2013-12-26 21:01:15 750

转载 Android图片处理(Matrix,ColorMatrix)

在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。下面将分别介绍这两个矩阵的用法和相关的函数。颜色矩阵android中可以通过颜色矩阵(ColorMatrix类

2013-12-26 20:58:42 679

spring--入门(二)运行原理

[size=medium] spring的运行原理图: [img]http://dl.iteye.com/upload/attachment/0083/7852/7d8eff3a-77cb-346f-9aa7-1a583dd80e07.jpg[/img]5.3我们再看spring 对上面案例总结:spring实际上是一个容器框架,可以配置各种bean(action/...

2013-04-27 21:19:03 147

原创 spring 入门(一)

[size=medium]spring的快速入门案例① spring是什么?struts 是 web 框架 (jsp/action/actionfrom)hibernate 是 orm框架,处于持久层.spring 是容器框架,用于配置bean,并维护bean之间关系的框架 ☞ spring中有一个非常概念: bean (是java中的任何一种对象 javabean/ser...

2013-04-27 21:15:47 92

原创 hibernate---关系映射

关系映射n多对一(Employee - Department) n一对多(Department-Employee)n一对一(Person - IdCard) n多对多(teacher - student) ncascade(Employee – Department)  多对一(Employee - Department)  Employee映射文件 ...

2013-04-23 17:00:13 103

hibernate ---hql

* uniqueResult方法如果我们检索一个对象,明确知道最多只有一个对象,则建议使用该方法:具体用法如下:Student s=(Student) session.createQuery("from Student where sid='20050003'").uniqueResult();                     System.out.println(s.g...

2013-04-22 20:47:28 112

原创 hibernate ----懒加载

[size=medium]懒加载:    简述: 当我们查询一个对象的时候,在默认情况下,返回的只是该对象的普通属性,当用户去使用对象属性时,才会向数据库发出再一次的查询.这种现象我们称为 lazy现象.     解决方法可以这样: 1. 显示初始化 Hibernate.initized(代理对象)2. 修改对象关系文件 lazy 改写 lazy=false3....

2013-04-22 20:44:31 138

原创 hibernate核心类和接口--openSession 和getCurrentSession的思想

[size=medium][code="java"]final public class HibernateUtil { //SqlHelper [size=large]private static SessionFactory sessionFactory=null; //使用线程局部模式 private static ThreadLocal threadLocal=new T...

2013-04-18 21:50:28 95

原创 hibernate核心类和接口--session(会话)接口

[size=medium]get vs load1. 如果查询不到数据,get 会返回 null,但是不会报错, load 如果查询不到数据,则报错ObjectNotFoundException2. 使用get 去查询数据,(先到一级/二级)会立即向db发出查询请求(select ...), 如果你使用的是 load查询数据,(先到一级、二级))即使查询到对象,返回的是一个代理对象...

2013-04-18 11:11:56 228

高性能mysql(第三版)

高性能mysql(第三版),附个人看书详细笔记。mysql第三版

2018-11-29

设计模式之蝉

高清版的设计模式之蝉(第二版),附个人看书笔记,Java语言。

2018-11-29

android 下拉刷新源码

android 下拉刷新源码,详细的下拉刷新源码加注解

2013-12-23

draw9patch

draw9patch开发工具绘制UI神器

2013-12-17

jQuery-API

最新的jquery api,最新的更新里面都有详细的注解。

2013-03-09

struts1.3开发包

最新的struts1.3开发包,解压后就可以直接使用。

2013-03-01

struts-1.2.4

很好的struts1.2开发包,解压后导入就能直接用。

2013-03-01

JQuery类库下载

强大的JQuery类库,更加强化了Jquery的功能!

2012-11-04

JAVAEE完整版API

相当完整的javaAPI文档,方便你工作所用。

2012-09-25

大数(高精度)模板基础教材

不错的基础大数教材,让你轻松了解高精度,轻松掌握大数,可以基本的应用

2011-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除