自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (4)
  • 收藏
  • 关注

原创 linux 根据进程ID获取对应进程的信息

linux 根据进程ID获取对应进程的信息 ps -u --pid 8012(pid)

2015-12-15 15:55:57 6097

原创 java 死锁程序

通过使用两个锁,让两个线程去交叉的获得锁import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class DeadLock { public Lock l1 = new ReentrantLock(); public Lock l2 = new

2015-08-25 22:25:42 319

原创 Lock synchronized区别

Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现;synchronized是在JVM层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且在代码执行时出现异常,JVM会自动释放锁定,但是使用Lock则不行,lock是通过代码实现的,要保证锁定一定会被释放,就必须将 unLock()放到finally{} 中

2015-08-23 08:58:00 435

原创 java 源码心得

java 源码很多地方使用位运算,效率更高对于不再使用的对象,将其应用置null,以帮助GC

2015-08-12 10:58:06 416

转载 JVM 基础知识

转自:http://blog.csdn.net/ithomer/article/details/9936743一、基础概念数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。

2015-08-12 09:31:23 344

转载 Hashtable与ConcurrentHashMap的区别

锁分段技术HashTable容器在竞争激烈的并发环境下表现出效率低下的原因是所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一

2015-08-06 11:18:58 1577

原创 Hashtable HashMap 区别 Hashtable的劣势

Hashtable应尽量避免使用,单线程下可使用HashMap替代,多线程下可使用ConcurrentHashMap替代Hashtable的实现中,大量使用了%,而不是HashMap中的位运算,性能较差,同步方面,大量方法都是synchronized,应该使用ConcurrentHashMap性能比较好Hashtable与HashMap的区别:Hashtable是同步的

2015-08-06 11:18:15 1569

原创 HashMap Hash碰撞 treemap

HashMap中,如果某个桶中的记录过 大的话(当前是TREEIFY_THRESHOLD = 8),HashMap会动态的使用一个专门的treemap实现来替换掉它。这样做的结果会更好,是O(logn),而不是糟糕的O(n)。它是如何工作 的?前面产生冲突的那些KEY对应的记录只是简单的追加到一个链表后面,这些记录只能通过遍历来进行查找。但是超过这个阈值后HashMap开始将列表升 级成一个二叉树

2015-08-06 09:36:01 822

转载 Java 静态变量的继承

今天在看单例模式时,《head first 设计模式》中提到了单例类的继承问题。因为单例类中的变量及构造单例的方法通常都是静态的,所以这里涉及到“静态方法与变量的继承”。以前一直没关注这些,所以今天特地写了些小程序测试下,顺便做些总结。        首先,定义一个类A如下class A {      static int a = 1;      static int b = 2;

2015-07-27 18:34:05 550

转载 newInstance()和new()

在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对

2015-03-31 20:15:42 347

转载 一个Java程序的执行过程

我们手工执行java程序是这样的:1 在记事本中或者是UE的文本编辑器中,写好源程序;2 使用javac命令把源程序编译成.class文件;  编译后的.class(类字节码)文件中会包含以下内容:ConstantPool:符号表;FieldInfo:类中的成员变量信息;MethodInfo:类中的方法描述;Attribute:可选的附加节点。FieldInfo

2015-03-26 17:08:46 763

转载 android activity的创建

android中activity的创建都是通类反射的方法创建的~~当打开activity的时候,android系统框架根据配置文件找到相应的acitivity对应的类,通过activity的默认构造函数创建了activity的实例,然后创建应用的上下文环境,通过wrapper的方法把上下文绑定到activity实例(也是就常说的依赖注入/依赖倒转),然后调用onXXXX接口进行回调.

2015-03-14 21:00:19 355

转载 Android:Layout_weight

首先看一下Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重。很多人不知道剩余空间是个什么概念,下面我先来说说剩余空间。看下面代码:xml version="1.0" encoding="utf-8"?>     LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

2015-03-14 15:46:38 405

空空如也

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

TA关注的人

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