
java
文章平均质量分 82
魔法少女厄加特~
这个作者很懒,什么都没留下…
展开
-
Java中,你真的了解你的对象吗?
面向对象的编程语言众所周知,Java是一门面向对象的编程语言,有人会问,什么是面向对象的编程语言呢,通常听到最多又最古老的话就是“万物皆对象”,那么你对你的“对象“到底知道多少呢?你的对象是如何产生的呢?你的对象又存有哪些属性呢?你的对象存放在哪里呢?你的对象又是怎么死亡的呢?下面我们带着上面的疑问来对你的对象进行一下深入了解吧。一.对象实例化的过程稍微有点Java基础的人都知道,我们创建一个对象通常有两种方式,一种就是常见的”new“一个对象,再一种就是通过反射来获取到你的对象。在这里,我们看原创 2020-06-16 00:35:37 · 5039 阅读 · 0 评论 -
Java常见的集合类之间的关系与特点
前言做为一名程序开发人员,善用数据结构与合适的算法是写出一份具有高效性能的代码的基础,Java中最最基础的数据结构主要有三种,分别是数组、链表还有图,其中“图”这种数据用的比较少,像我们开发常用的集合同时都是由数组和链表演化而成。集合框架jdk为我们提供了集合类,像我们写代码最常用的ArrayList,HashMap都是集合,这里需要注意的是,像List,set,Queue都是实现的Collection接口,而Map则是一个独立的接口。首先我们来讲讲List、Set、Queue、Map的区别及其具体原创 2020-06-15 03:18:34 · 4978 阅读 · 1 评论 -
Java虚拟机的内部构成
Java虚拟机会在在执行Java程序的时候会把其内存划分为一些不同的区域,这些区域都有其各自的用途,并且永远其自己的生命周期,下面我们来看看这张图由上图我们可以看出,虚拟机的内存区域可以按照是否是线程共享的分为两大块,线程共享的区域有方法区和堆,线程私有的分为虚拟机栈,本地方法栈和程序计数器。下面我们来详细看看这些东西里面都存着什么吧。方法区方法区和Java堆一样,同属于是线程共享的数据区域。方法区用来存储一些已经被虚拟机加载的类型信息、常量、静态变量、即时编译后的代码缓存等数据。其中方法区还有原创 2020-06-05 23:19:26 · 6452 阅读 · 0 评论 -
使用Artifactory搭建本地构建仓库
构建仓库?有些人第一次听说这个词的时候可能感到比较陌生,但是做开发的人肯定都有用到过,例如我们做Android开发的常用google和center或者aliyun等仓库,前两者在国内访问是十分费劲的,网络总是会出现问题,对于一些大公司来说,他们可能还会使用自己公司内部的一些资源包,所以我们自己搭建一个这样的构建仓库是十分必要的,不仅仅会提升我们日常开发效率,还会大大的提升安全性。首先Artifactory是一款收费的软件,它的正版价格是十分昂贵的,但是我们尽量还是要去支持一下正版软件,下面我们来讲讲破解教原创 2020-06-16 00:37:19 · 8360 阅读 · 0 评论 -
Android AMS源码分析之结合AIDL分析bindService
初识AMS(ActivityManagerService)首先提到AMS(ActivityManagerService)我们先来了解一下Android系统的启动流程,以及AMS是什么时候创建的。启动到SystemServer这时才会启动一些列的系统服务,其中包括1.引导服务,例如 ActivityManagerService(AMS)、DeviceIdentifiersPolicyService、 UriGrantsManagerService等2.核心服务,例如WebViewUpdateS原创 2020-05-14 13:19:47 · 14834 阅读 · 0 评论 -
Android之AIDL使用binder进程间通信原理
上回书说到,如何使用AIDL进行线程进通信这次我们来研究一下AIDL线程间通信原理。Binder机制首先我们需要知道一下什么是Binder机制,具体什么是Binder机制推荐多查一查其他博客,由于太过于偏向底层,稍微做一些了解即可。代码分析还是先上代码,首先看一下我们自己定义的AIDL接口注意,一下代码均是在Android-29(Android 10.0)版本上的interface IMyAidlInterface { void sendMessage(in String msg);原创 2020-05-14 01:23:53 · 14963 阅读 · 0 评论 -
Binder之AIDL进程间通信的使用(附源码)
废话不多说,先看代码,再讲原理。首先我们先搞两个进程出来,一个作为客户端(client)一个作为服务端(service)。在客户端和服务的分别创建一个AIDL接口,可以用如下方式进行创建,需要注意的是,两端创建的接口必须保证完全一致,包括他们的包名,这里的包名可能需要手动去修改一下,不一致的话运行时会抛出如下异常 “Binder invocation to an incorrect inter...原创 2020-05-07 19:49:36 · 20618 阅读 · 0 评论 -
Java 反射与注解的用法与实践
提到Java的反射与注解,大家可能并不陌生,但是在实际开发中用到的可能并不是很多,下面我们来具体的了解一下这两个东西。反射众所周知,Java是一门面向对象的开发语言,所以当我们的亲戚朋友问我们有没有对象的时候,如果我们没有对象,我们可以去 new 一个对象出来,通过这种方法,也就解决了广大程序员找不到对象的烦恼,这也就是所谓的正,这也就引出了与正的对立概念——反,所以反射也就这样出来了。反射...原创 2020-05-06 21:00:47 · 20554 阅读 · 0 评论