java
文章平均质量分 79
kc专栏
深入探索android Framework层代码,博客持续更新中!!!
展开
-
java的访问权限
java中类的访问权限,只能是public,或者默认的(包访问权限),不能是private或者protected。如下:是修饰classpublic class A//代表外部也能访问,其它包class B//代表只能是包内访问成员变量和方法的访问权限:是修饰class里的成员变量、方法public:代表所有都能访问private:代表只能类自己访问protec原创 2015-09-01 18:54:24 · 569 阅读 · 0 评论 -
java volatile关键字
今天使用到了volatile关键字,之前了解到这个关键字,但是不知道他的具体作用是什么,下面就来详细解释一下他的作用:在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块(synchronized) 和 volatil转载 2015-09-02 16:27:02 · 546 阅读 · 0 评论 -
JAVA IO
流的概念和作用学习Java IO,不得不提到的就是JavaIO流。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来: 因为数据转载 2015-09-02 11:53:07 · 619 阅读 · 0 评论 -
JAVA wait(), notify(),sleep详解
在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么sy转载 2015-09-02 16:52:29 · 607 阅读 · 0 评论 -
深入JNI
JNI连接着java和c++/c层。Android有大量驱动必须在native层实现,还有一些注重性能、功耗的功能在c++/c实现比较好。从java到native建立的是函数关系。但是从natvie到java,必须先得到java的对象引用,才能调用该对象的方法。通过jni调用是在同一个线程中的,但是可能打印出来的线程id不同。这是语言的关系。1.装载JNI动态库为了使用JNI,在调原创 2015-09-17 18:54:48 · 1357 阅读 · 0 评论 -
java 打印函数调用栈
有时候需要跟一些代码的调用流程,这时候打印函数的调用栈就非常好用。 java.util.Map ts = Thread.getAllStackTraces(); StackTraceElement[] ste = ts.get(Thread.currentThread()); for (StackTraceElement s原创 2015-11-18 19:37:32 · 3458 阅读 · 0 评论 -
java 写入文件没有到磁盘问题
java中使用FileOutStream,写入文件,有的时候明明调用了flush函数,确实没有到磁盘里面这是怎么回事呢?我们来看下官方文档怎么说的:flushpublic void flush() throws IOException刷新此输出流并强制写出所有缓冲的输出字节。flush 的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此原创 2015-12-24 11:43:40 · 4131 阅读 · 0 评论 -
java利用Condition做超时机制
利用Condition做超时机制,主要是碰到阻塞的代码。我们希望做一个超时。当一直阻塞的时候,主线程也可以继续往下走。而当没有阻塞时,可以直接往下继续走。我们知道Lock和Condition功能,可以做线程同步用。这里我们做一个超时机制,主要是碰到会阻塞的情况。这时候我们就新建一个线程,然后在主线程中利用Condition的await函数。而在新建的线程中,有一点要特别注意就是这个Lo原创 2017-09-11 21:19:46 · 3692 阅读 · 1 评论