JVM线程知多少
http://www.goldendoc.org/2011/11/jvm-thread/
JMM概述
http://www.goldendoc.org/2011/12/jmm%E6%A6%82%E8%BF%B0/
JVM优化之调整大内存分页(LargePage)
http://kenwublog.com/tune-large-page-for-jvm-optimization
基于OS信号实现Java异步通知
http://kenwublog.com/java-asynchronous-notify-based-on-signal
JVM优化之逃逸分析(Escape Analysis)
http://kenwublog.com/jvm-optimization-escape-analysis
JVM优化之压缩普通对象指针(CompressedOops)
http://kenwublog.com/compressedoops
java 安全沙箱模型详解
http://kenwublog.com/explain-java-security-sandbox
java类加载器体系结构(含hotswap原理)
http://kenwublog.com/structure-of-java-class-loader
from infoq:
深入分析Volatile的实现原理
http://www.infoq.com/cn/articles/ftf-java-volatile
内存屏障与JVM并发
http://www.infoq.com/cn/articles/memory_barriers_jvm_concurrency
Java虚拟机家族考
http://www.infoq.com/cn/articles/jvm-family
HotSpot虚拟机对象探秘
http://www.infoq.com/cn/articles/jvm-hotspot
JVM内存回收理论与实现
http://www.infoq.com/cn/articles/jvm-memory-collection
解析JDK 7的Garbage-First收集器
http://www.infoq.com/cn/articles/jdk7-garbage-first-collector
JVM执行篇:使用HSDIS插件分析JVM代码执行细节
http://www.infoq.com/cn/articles/zzm-java-hsdis-jvm
解析JDK 7的动态类型语言支持
http://www.infoq.com/cn/articles/jdk-dynamically-typed-language
The "Double-Checked Locking is Broken" Declaration
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
Intent 和 Intent Filter
1. <action/>包含在 <intent-filter></intent-filter> 标签对里,而且是必不可少的!不管以哪一种方式来匹配,都不可缺少这个<action/> ,可以有多个,至少要有一个。
如有多个的,话只需要匹配其中一个即可找到这个activity
<action>里的属性值大多数是在Intent里定义的,比如<action android:name="android.intent.action.VIEW"/>里的属性值就等于 Intent.ACTION_VIEW,
在这个Intent类里以ACTION开头定义的常量都是。当然,也可以自定义。
2. 任何一个需要隐式启动的Activity都必须要有这项:<category android:name="android.intent.category.DEFAULT"/>
例外情况是:android.intent.category.MAIN和android.intent.category.LAUNCHER的filter中没有必要加入android.intent.category.DEFAULT,当然加入也没有问题
<category>里的属性值大多数是在Intent里定义的,比如 <category android:name="android.intent.category.DEFAULT"/>里的属性值就等于 Intent.CATEGORY_DEFAULT,
在这个Intent类里以CATEGORY开头定义的常量都是。当然,也可以自定义。
3.一个Activity里可以有多对<intent-filter></intent-filter> 只要匹配其中一对,即可启动这个Activity
4.在<intent-filter></intent-filter>里可以有多个<data android:mimeType="xxxx"/>,只需匹配其中一个即可.注意:不可以同时出现第5点的标签对,即下面这条。
5.在<intent-filter></intent-filter>里可以有多个<data android:scheme="xxxx" android:host="yyyy" android:port="uuu"/>,只需匹配其中一个即可。
语法:
<data android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string" />
可以分开写,如:
<data android:scheme="something" android:host="project.example.com" android:port="80"/>
等同于这样写:
<data android:scheme="something"/>
<data android:host="project.example.com"/>
<data android:port="80"/>
在java代码里,Uri的格式:scheme://host:port/path or pathPrefix or pathPattern
注意:不可以同时出现第4点的标签对,即上面那条。
6.在<intent-filter></intent-filter>里可以有多个<action android:name="xxxx"> ,只需匹配其中一个即可。
7.当匹配不上任何Activity的话,会发生异常,跳出对话框:很抱歉...某某应用程序意外停止,请重试。
8.上面所说的全部适用于Service和BroadcastReceiver,只需把<activity ...></activity>换成<service ...></service>或<receiver ...></receiver>即可。
9.刚参考了一下packages\apps\HTMLViewer\AndroidManifest.xml,第4和第5条应该是不冲突才对,但是实际测试中却是冲突,暂时未到找原因。匹配方式请看:用于打开HTML文件的intent
在被启动的Activity(本例为MyActivityTwo)里接收数据:
Intent intent = getIntent();
String intentCategories = intent.getCategories()
String intentType = intent.getType();
Uri uri = intent.getData();
String uriScheme = uri.getScheme();
String uriPath = uri.getPath();
String uriHost = uri.getHost();
String uriEncodedPath = uri.getEncodedPath();
原文http://www.eoeandroid.com/thread-94077-1-1.html
说明http://www.cnblogs.com/Android_2011/archive/2011/06/12/2078643.html
在数字键盘上添加button:
//定义一个消息中心
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//addObserver:注册一个观察员 name:消息名称
- (void)keyboardWillShow:(NSNotification *)note {
// create custom button
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
[doneButton setImage:[UIImage imageNamed:@"5.png"] forState:UIControlStateNormal];
[doneButton addTarget:self action:@selector(addRadixPoint) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];//返回应用程序window
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++) //遍历window上的所有subview
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}