
Java
Omni-Space
专注Android, Mobile Security and AI
展开
-
一个例子让你了解Java反射机制
本文来自:blog.youkuaiyun.com/ljphhjJAVA反射机制:通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.理论的东东太多也没用,下面我们看看实践 Demo ~Demo:[java] view pla转载 2016-03-30 18:02:27 · 715 阅读 · 0 评论 -
深入理解 Java 锁与线程阻塞
相信大家对线程锁和线程阻塞都很了解,无非就是 synchronized, wait/notify 等, 但是你有仔细想过 Java 虚拟机是如何实现锁和阻塞的呢?它们之间又有哪些联系呢?如果感兴趣的话请接着往下看。为保障多线程下处理共享数据的安全性,Java 语言给我们提供了线程锁,保证同一时刻只有一个线程能处理共享数据。当一个锁被某个线程持有的时候,另一个线程尝试去获取这个锁将产生线程阻...转载 2019-04-18 18:05:01 · 1165 阅读 · 0 评论 -
volatile关键字到底做了什么?
话不多说,直接贴代码class Singleton { private static volatile Singleton instance; private Singleton(){} //双重判空 public static Singleton getInstance() { if ( instance == null ...转载 2019-04-12 17:57:31 · 289 阅读 · 0 评论 -
【Java面试宝典】深入理解JAVA虚拟机
一、运行时数据区域 线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用。 线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享。 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。程序计数器,虚拟机栈,本地方法栈,随线程而生,线程亡而亡1.1...转载 2019-04-05 17:47:35 · 274 阅读 · 0 评论 -
Android 性能优化 之谈谈Java内存区域
最近一年副业主要在学习投资和技能学习,把以前学习内存分析的一些笔记总结发出来,写了很多笔记总结都没有写完就又忙着了,最近再次总结复习学习一遍,还有提醒各位同学一定要学会投资。。 了解Android 内存管理,就有必要了解Java GC机制,必须要理解JVM 内存区域,这里我们主要从概念上介绍Java虚拟机内存的各个区域。 Android 应用运行时大部分时间都用于处理内存数据,虽然很多开发...转载 2018-04-06 12:33:25 · 217 阅读 · 0 评论 -
Java->Android并发编程筑基篇
最近有点忙,又有其他的事情,所以一直没有开始写这篇,感觉很惭愧。上一章讲了太多的东西,其实每一个小细节都可以写成一长篇,这一章会尽量用精简的方式把坑填上。Java的线程状态想要学好并发,还是得知道线程的生命周期,先看一下线程的生命周期:在线程的运行周期中会有状态与锁有关,所以先要讲解线程的状态,才能继续讲锁。sleepsleep会让当前线程进入”睡眠”状态,把执行的机会让给其他线程。类似于迅雷下载...转载 2018-04-04 13:07:32 · 224 阅读 · 0 评论 -
Java->Android并发编程引气入门篇
Android的并发编程,即多线程开发,而Android的多线程开发模型也是源于Java中的多线程模型。所以本篇也会先讲一些Java中的多线程理念,再讲解具体涉及的类,最后深入Android中的并发场景和实践。并发什么是并发举个很简单的栗子,当你一边在撸撸撸,一边在看小视频,同时在做两件事,这就是并发。咳,年轻人节制啊。并发的好处提高资源利用率当一个任务并没有完全占用系统资源,就可以利用并发来提高...转载 2018-04-04 13:07:07 · 325 阅读 · 0 评论 -
35 个 Java 代码性能优化总结
前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每转载 2017-10-08 13:39:12 · 349 阅读 · 0 评论 -
Java I/O 操作及优化建议
Java I/OI/O,即 Input/Output(输入/输出) 的简称。就 I/O 而言,概念上有 5 种模型:blocking I/O,nonblocking I/O,I/O multiplexing (select and poll),signal driven I/O (SIGIO),asynchronous I/O (the POSIX aio_functions)。不同的操作转载 2017-10-08 13:37:49 · 383 阅读 · 0 评论 -
细说反射,Java 和 Android 开发者必须跨越的坎
写下这个题目的时候,我压力比较大,怕的是费力不讨好。因为反射这一块,对于大多数人员而言太熟悉了,稍微不注意就容易把方向写偏,把知识点写漏。但是,我已经写了注解和动态代理这两个知识点的博客,阅读量还可以,这两个知识点是属于反射机制中的,现在对于注解和动态代理息息相关的反射知识基础我倒是退缩了,所以说看起来很普通的东西,其实真的要一五一十地把它的门道说才方显功力。我们经常说一个人半吊子二把刀,说起来头转载 2017-07-10 07:42:39 · 922 阅读 · 0 评论 -
JVM源码阅读-本地库加载流程和原理
前言本文主要研究OpenJDK中JVM源码中涉及到native本地库的加载流程和原理的部分。主要目的是为了了解本地库是如何被加载到虚拟机,以及是如何找到并执行本地库里的本地方法,以及JNI的 JNI_OnLoad 和 JNI_OnUnLoad是何时被调用的 。1.载入本地库使用JNI的第一步,往往是在Java代码里面加载本地库的so文件,例如:转载 2017-05-29 15:53:55 · 2859 阅读 · 0 评论 -
Java常见面试题及答案
java常见面试题及答案1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的转载 2016-09-27 14:56:17 · 890 阅读 · 0 评论 -
JVM内存区域划分及其管理机制
java 虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,如图。各个区域有各自的用途,以及创建时间和销毁时间,有的区域随着虚拟机进程启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。程序计数器:是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方转载 2016-03-14 07:29:55 · 474 阅读 · 0 评论 -
http://stuf.ro/calling-c-code-from-java-using-jni
In this tutorial we'll be creating a Java application calling code from a native library. We'll have a Java application called HelloWorld which will call the function helloFromC from a shared librar转载 2016-03-09 06:26:46 · 540 阅读 · 0 评论 -
JNI实战
引子对于刚入门的Android开发者来说,JNI是较难掌握的。JNI有一层神秘面纱,让人敬而远之。需要同时掌握C/C++语言与Android应用开发技术也提高了进入门槛。让我们揭开面纱,由浅入深地学习JNI技术。JNI是什么JNI是Java Native Interface的缩写,直译成中文就是Java本地接口。JNI并不是Android特有的技术。在Android之前就在Java转载 2016-03-09 06:25:32 · 381 阅读 · 0 评论