- IPC进程间通信(AIDL)
Innup
内容来自《Android开发艺术探索》一书。简单使用AIDL来进行IPCAIDL是方便我们实现Binder,来进行进程间通信的。我们知道系统怎么根据AIDL来生成代码的,完全可以不用AIDL来直接写一个Binder。AIDL只是一种快速实现Binder的工具而已。通过AIDL定义需要暴露给客户端(或者说另一个进程)的接口,客户端通过暴露的接口进行取数据,写数据。简单使用:先定义一个进程间需要传递的
- 【Android开发艺术探索】四大组件的工作过程
milovetingting
个人博客http://www.milovetingting.cn四大组件的工作过程four_components.png四大组件:Activity、Service、BroadcastReceiver、ContentProvider四大组件的运行状态Android的四大组件中除了BroadcastReceiver,其它三种组件必须在AndroidManifest中注册。对于BroadcastRece
- 四大组件 - BroadcastReceiver
zengkaiqiang562
Android应用开发广播接受者的注册方式有序广播无序广播粘性广播全局广播本地广播广播的权限设置
参考:17个必须掌握的BroadcastReceiver知识点「建议收藏」参考:《Android开发艺术探索》第9.4节(BroadcastReceiver的工作过程)参考:广播概览参考:1.BroadcastReceiver(广播接收者)概述BroadcastReceiver组件为系统与App之间,或App与App之间,或App内部的组件与组件之间,提供了一种数据交互的方式。App内部的组件可以
- 四大组件 - ContentProvider
zengkaiqiang562
Android应用开发Uri的结构操作Uri的方法内容提供者的数据处理ContentProvider内容提供者的工作线程内容提供者的生命周期
参考:Android这13道ContentProvider面试题,你都会了吗?参考:《Android开发艺术探索》第9.5节(ContentProvider的工作过程)参考:内容提供者程序参考:>1.ContentProvider概述ContentProvider是一种内容共享型组件,实现了不同App进程之间的数据共享。和Messenger一样,基于ContentProvider的进程间通信的底层
- android开发艺术探索第四章心得(View的工作原理 )
Android程序员老鸦
4.1初识ViewRoot和DecorView1、ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象
- 那些年曾经看过的书——工作篇
徐福记456
人生杂谈android音视频程序员的梦想
工作以后,主要是看一些与工作相关的书,比如Android相关:Android开发艺术探索、深入理解Android内核设计思想、Android系统源代码情景分析、精通Android多媒体开发、AndroidC++高级编程。音视频相关:FFmpeg从入门到精通、WebRTCNative开发实战、OpenGLES3.0编程指南、音视频开发进阶指南。语言相关:C++PrimerPlus、Java编程思想。
- 从源码的角度理解四大组件的工作过程——Android开发艺术探索笔记
Android高级工程师
系统对四大组件的过程进行了很大程度的封装,日常开发中并不需要了解底层的工作原理,那么研究这些原理的意义在哪里呢?如果你想在技术上更进一步,那么了解一些系统的工作原理是十分必要的,也是开发人员日后成长为高级工程师所必备的技术能力。Android作为一个优秀的基于Linux操作系统,其内部一定有很多值得我们学习的地方,通过对Android操作系统的学习对提高开发人员的内功有很大的好处。如果你从事And
- 2023 年终总结
cqust_qilin02811
碎碎念碎碎念
文章目录年终总结AndroidPySide2算法生活其他2024年展望学习目标打卡目标其他年终总结2023年成长了许多,这是步入社会的第一年,也是大学毕业的第一年。从2023年2.1实习以来,主要涉及Android应用层和python-qt,略了解了jni,阅读了Android开发艺术探索的一些模块,对生命周期、四大组件的体会加深了,也对Android系统权限,各类广播和服务有了一些理解。pyth
- AIDL使用解析
wxtx2020
Android进阶
AIDL使用解析之前面试的时候被问到这个问题,然而当时只有一个大致的印象,随GG,于是我就重新整理的一下。这里大力推荐《Android开发艺术探索》这本书,写的太好了!1.AIDLAIDL(AndroidInterfaceDefineLanguage)是IPC进程间通信方式的一种.用于生成可以在Android设备上两个进程之间进行进程间通信(interprocesscommunication,IP
- Android中的进程
小杨不想努力了
参考资料:《Android开发艺术探索》https://note.youdao.com/old-web/#/file/recent/note/1862018FBC3B483E96CAB46B92811EF9/328432cea4f2eeddc18f0ca0446558d9为什么进程间要通信数据传输:一个进程需要将它的数据发送给另一个进程。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它
- Android-序列化-Serializable/Parcelable
weixin_33824363
java移动开发
Android-序列化-Serializable/Parcelable学习自《Android开发艺术探索》序列化漫谈IPC的首要目的是传输数据,当然不能仅仅是传输一些基础数据了,毕竟基础数据承载的信息非常少,传输复杂的自定义对象时肯定的,而传输对象的话,必须遵守特定的约定对对象进行序列化才行。通过将对象序列化不接可以在IPC中使用,在Intent之间也也可以传递,或者在网络上传递,或将复杂的数据持
- 关于已上线APP崩溃日志的跟踪
ChaosAlaska
工作闲暇之余断断续续看了大半《Android开发艺术探索》,收获颇丰。以前思考过一个问题如果APP已经上线了,但是在用户手中出现了Crash现象,由于看不到崩溃日志怎样才能及时更改bug呢?这本书给了我一个很好的答案(有三方实现,但是我觉得掌握原理也是开发者进阶的一个必要阶段)。Thread类中的setDefaultUncaughtExceptionHandler方法完美解决了这个问题:publi
- View 绘制流程梳理及 Measure 过程详解
多做总结
androidview
View的工作原理上View绘制流程梳理及Measure过程详解发表于2016-09-11|分类于AndroidView|-文章来源:itsCoder的WeeklyBolg项目itsCoder主页:http://itscoder.com/作者:yongyu0102审阅者:hymane1前言笔记内容源于Android开发艺术探索。View是Android中所有控件的基类,例如Button和TextV
- 《android开发艺术探索》笔记
chen_xiaoke
学习用android
android开发艺术探索笔记第一章Activity的生命周期和启动模式1.1生命周期1.1.1正常情况下的生命周期分析1.1.2异常情况下的生命周期分析1.2Activity的启动模式1.2.2Activity的Flag1.2.3IntentFilter的匹配规则第二章IPC机制2.1IPC简介2.2Android中的多进程模式2.2.1开启多进程模式2.2.2多进程模式的运行机制2.3IPC基
- 安卓开发 Binder连接池
贼厉害
综述 安卓IPC(进程间通信)可以利用AIDL(AndroidInterfacedefinitionlanguage)来实现,通过Service返回一个IBinder来实现进程间通信。但是随着我们项目需求的增加,我们总不能每个模块都开启一个service吧?那么有没有一种方案可以让一个service同时管理我们所有的IPC业务呢? 答案当然是肯定的,《Android开发艺术探索》给出了
- View的事件分发机制
simit
关于Android的事件分发机制有很多文章分析的很彻底,比如:Carson_Ho:https://www.jianshu.com/p/38015afcdb58Flyzend:https://www.jianshu.com/p/238d1b753e64Android开发艺术探索本文是在此基础上对Android的事件分发体系进行总结以应对面试。1.Touch事件序列?Touch事件是事件分发的对象,T
- Android Drawable简单使用
pgaofeng
笔记DrawableAndroid
本篇文章为《Android开发艺术探索》中Drawable篇的笔记,介绍的是一些常用的Drawable的使用,方便日后快速查阅。本文一共介绍了9种Drawable,第一组为单个Drawable,包含有:BitmapDrawable,ShapeDrawable;第二组为组合Drawable,包含有:LayerDrawable,StateListDrawable,LevelListDrawable,T
- 《Android 开发艺术探索》笔记7--RemoteViews的内部机制和意义
天一方蓝
RemoteViews的内部机制和意义.pngRemoteViews的内部机制RemoteViews的作用是在其他进程中显示并更新View界面.最常用的构造函数就是publicRemoteViews(StringpackageName,intlayoutId),注意RemoteViews目前并不能支持所有的View类型,目前支持如下(不包括其子类):LayoutFrameLayout,Linear
- 启动模式(launchMode)
Demon鑫
零、资料《第一行代码》《Android开发艺术探索》一、Stack(任务栈)栈是一种先进先出的数据结构。每当启动一个新活动时,它就会入栈并处于栈顶。每当销毁一个活动时,处于栈顶的活动就会出栈,前一个入栈的活动重新处于栈顶。任务栈分为前台任务栈和后台任务栈,后台任务栈中的Activity位于暂停状态,用户可以通过切换将后台任务栈再次调到前台。二、TaskAffinity(任务相关性)此参数标识了一个
- 《Android 开发艺术探索》笔记3--View事件体系
天一方蓝
View的事件体系.pngView的事件体系View的基础知识View的位置参数一个View的位置主要由四个顶点构成,或者可以就是两个点就可以确定.分别为左上点,右下角每个点都对应x,y两个属性.因为默认都是矩形,所以两个点就可以确定.一个View的大小可以利用四个属性可知.分别对应getLeft(),getRight(),getTop(),getBottom系统提供的函数.一个控件的宽:getR
- Android 内嵌滑动之子控件支持内嵌滑动
cxmfzu
自定义控件内嵌滑动android
简介本篇文档作为滑动控件的延续,如果对滑动控件还有疑问的可以参考连接https://blog.csdn.net/cxmfzu/article/details/114207345。在VIew的事件分发中,最为难处理的就是滑动事件冲突,使用传统的事件分发处理滑动冲突,可以参考书籍《Android开发艺术探索》。本文主要分析出现内嵌滑动时,且控件作为子控件是如何处理,实现NestedScrollingx
- 《Android 开发艺术探索》笔记6--理解RemoteViews
天一方蓝
理解RemoteViews.pngRemoteView的应用简介:在开发中,通知栏都知道是通过NotificationManager的notify方法实现.桌面小部件则是通过AppWidgetProvider实现.后者本质上是一个广播.更新他们无法像以前那样.这是因为不是一个进程,小部件是SystemServer进程.为了跨进程更新界面,RemoteViews提供了一系列的set方法…Remote
- 中道崩阻——Activity启动源码学习记录
Hoooopa
Activity的启动流程学习记录学习章节为:《Android开发艺术探索》第9章+《Android源码设计模式解析与实战》第5、15章前言看了刚哥的艺术探索和源码设计模式感觉一脸懵逼,于是尝试着自己看源码,发现更加懵逼了。。。先不说逻辑,就是里面的各种属性、对象、方法之类的都看的眼花缭乱,甚至有点反胃。。。不过俗话说的好书读百遍其义自见,在不断的尝试和思考后,终于算是有了一点点懂了。所以记下来,
- android 跨进程 android:process,Android跨进程通信技术-多进程模式的运行机制
罗梦宇
android跨进程android:process
本文为个人学习笔记分享,没有任何商业化行为,对其他文章的引用都会标记。如有侵权行为,请及时提醒更正!如需转载请表明出处本文主要来源是任玉刚大神的《Android开发艺术探索》如果说用一句话来形容多进程,一句话:"当应用开启了多进程以后,各种奇怪的现象都出现了"。大部分人认为开启多进程是很简单的事情,只需要给四大组件指定android:process属性即可。比如说在实际的产品开发中,可能会有多进程
- Android开发艺术探索读书笔记
HelloFeiGe
第一章Activity的生命周期和启动模式1.2Activity的启动模式Activity有四种启动模式:(1)standard:标准模式。每次启动一个Activity(B)就会创建一个新的实例,并放入启动它的Activity(A)所在的任务栈中(关于任务栈,可以想象成一个有底的桶,具有先进后出,后进先出的特点),越早创建的Activity实例越靠近桶的底部,那最先出栈的就是后创建的且靠近栈顶的A
- Android 开发艺术探索笔记(十二) 之自定义 View
innovatorCL
当Android提供的普通控件不能满足我们UI设计的要求的时候,我们通常会使用自定义View,下面介绍一下自定义View的知识。一、自定义View的分类1.继承View重写onDraw()这种方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式达到,往往需要静态或者动态地显示一些不规则的图形。采用这种方法需要自己支持wrap_content(即在这种模式下,onMeasure需要给
- Android开发艺术探索读书笔记之AIDL
weeboos
什么是AIDL?AIDL是AndroidInterfacedefinitionlanguage的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口AIDL的作用AIDL可以实现跨进程的方法调用。定义进程通信接口供服务端和客户端调用。AIDL支持的参数类型在AIDL文件中并不是所有数据类型都可以使用。只支持下列数据类型基本数据类型(int,long
- Android开发艺术探索学习笔记---Android生命周期
一二三四五六七八_
activity正常的生命周期1、启动:onCreate--onStart--onResume2、切换到后台:onPause--onStop(如果新的activity采用的是透明主题,则当前activity不会执行onStop)3、切换回前台:onRestart--onStart--onResume4、退出activity:onPause--onStop--onDestroy5、onStart开始
- Android开发艺术探索 | IPC机制
1ceCube
第二章IPC机制学习清单:Android中的多进程模式IPC基础概念序列化Serializable接口Parcelable接口BinderAndroid中的IPC方式Bundle文件共享MessengerAIDLContentProviderSocketBinder连接池如何选用合适的IPC方式一.Android中的多进程模式在谈IPC之前,我们首先需要理解Android中的多进程模式.a.什么是
- Android View动画之LayoutAnimation的使用
南国樗里疾
AndroidAnimationandroid
接前篇AndroidView动画整理,本篇介绍LayoutAnimation的使用。参考《安卓开发艺术探索》。View动画作用于View。LayoutAnimation则作用于ViewGroup,为ViewGoup指定一个动画,ViewGoup的子View出场时就具体动画效果。简言之,LayoutAnimation是为ViewGroup的子View指定出场动画。开始使用,两种方式,xml方式和ja
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {