java 数组低频拷贝的性能分析

简介: Java 中存在4种拷贝拷贝方式: 克隆:产生新对象,内存独立 Arrays.copyOf : 属于一般拷贝 for loop : 属于一般拷贝 System.arrayCopy : 底层通过指针方式拷贝 测试环境: 今天探索一...

2022/06/07 10:47
178
Java 垃圾回收和对象引用

一、垃圾回收 Java中垃圾回收算法是可达性分析,要真正回收一个对象,会经历两次标记过程,如果对象在通过可达性算法分析后,没有发现和GC Root相连的引用链,那么就会进行第一次标记(修改M...

2022/05/28 11:58
45
Glide 视频封面解码关键类

视频解码 public class VideoDecoder<T> implements ResourceDecoder<T, Bitmap> { private static final String TAG = "VideoDecoder"; /** * A constant indicating we should use whateve...

2022/04/18 10:46
104
一文读懂 mmap 原理

公众号: Linux内核那些事 在《一文看懂零拷贝技术》中我们介绍了 零拷贝技术 的原理,而且我们知道 mmap 也是零拷贝技术的一种实现。在本文中,我们主要介绍 mmap 的原理。 一、传统的读写文...

2022/04/17 21:48
71
Android 截屏与录屏常用方法

1、全屏截屏 public static final int EVENT_SCREENSHOT = 22;//截图事件 private MediaProjectionManager mediaProjectionManager; private MediaProjection mediaProjection; private Ima....

2022/04/17 11:55
3.8K
Android 音量调节

0. Thanks To Android音量控制调节 android 音量控制setVolumeControlStream android 音量调节以及媒体音量界面 1. 音量调节 我们知道,在平常调节音量的时候,是有一定的调节数值, 也就是,...

2022/04/16 07:49
46
AudioManager 音频焦点的申请与释放

转自以下两篇 《深入理解Android:卷III A》一一3.4AudioFocus机制的实现 AudioFocus的申请与释放 场景:当听音乐并且在刷朋友圈或者微博的时候,我们想点击一个视频看,此时音乐会暂停只保留...

2022/04/16 07:43
28
OKHttp 缓存拦截器

OkHttp 默认是不进行缓存的,需要手动配置 public class OkHttpManager { private OkHttpClient client; private OkHttpManager() { // 缓存目录 File file = new File(Environm......

2022/03/13 18:30
84
Glide 自定义ModelLoader

Glide特点 [1] 使用 getApplicationContext或者异步线程调用glide,他的生命周期和Application保持一致 非application ActivityFragmentLifecycle ,application-》ApplicationLifecycle [2...

2022/03/08 16:51
147
Android 焦点机制

/* *默认焦点查找规则 *【1】从根节点深度优先搜索 *【2】符合enable,visible,focusable是最基本的条件 *【3】targetSDK >= android P时,0像素View无法聚焦 *【4】正在layout的布局无法聚焦...

2022/02/27 08:19
223
Android 关于WindowManager的AppToken、WindowToken

【1】Android窗口类型 Android中存在很多窗台类型,类型值从低到高,值越大显示的层越高,本篇使用以下程序为测试代码 private AlertDialog getAlertDialog(String text,int type) { AlertDi...

2022/02/20 17:23
95
算法:顺时针打印二维数组(矩阵)

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 1,2,3,4,8,12,16,15,14,13...

2021/07/09 09:00
28
Android Dns全局Hosts映射方案

一、需求说明 开发中经常需要做一些网络请求,涉及到线上线下的灰度、正式环境切换,有时因为服务的不同,那么app内会存在多个域名的情况,甚至有些域名被添加到aar或者jar包中,修改起来也非...

Android 相册媒体库读写优化

一、快速查询手机中的图片和视频 本方案适合通过媒体库实现快速查询视频和图片,对于SD卡扫描,也可以参考。 我们知道,媒体库属于数据库,CURD数据库属于IO操作,但是数据的IO相对特殊,很难...

2021/04/30 09:12
473
Android 动态折线图表实现

一、动态折线图效果 (为了便于观察,初始等待了5秒) 二、代码实现 package com.appwidget; public class LineChartView extends SurfaceView implements SurfaceHolder.Callback, Runnabl...

2021/04/24 19:11
483
Java MethodHandle 反射性能优化

一、关于指令调用 1、关于JVM指令调用 无论是基于栈的JVM还是还是基于寄存器的DVM,他们除了操作数栈中变量的移动和空间分配、以及程序计数器的不同,基本方法调用的基本指令都是遵守JSR规范...

2021/04/18 13:48
3.7K
Javac 常量传播对类初始化的影响

一、Java Compiler 虚拟机运行java类时,需要将类进行初始化,一般来说,java代码在虚拟机中执行,至少需要2次编译(原因是Javac编译后,还要经过”解释器+JIT“可能反复动态优化编译)。Jav...

2021/04/17 10:25
1W
JMM 内存可见性

一、什么是可见性 Java中,在一个线程中,修改主内存变量,修改同步到主内存(堆区+方法区)中方,然后立即后通知其他线程进行缓存同步。 二、JMM是如何实现可见性的? 在java中,锁相关的问题...

2021/04/04 16:54
141
JMM 指令重排序

一、指令为什么要重排序? 在计算机系统中,指令为了更快的完成结果,会根据逻辑关系、指令大小进行重排序,以达到超流水线的效果,但在代码执行完后,保证结果输出是一致的。 在JVM中又两条...

2021/04/04 11:49
37
Android AMS IPC代理获取

一、问题 我们知道,ActivityManagerService随着版本的变化,获取方式上也出现了差异,最容易获取的方式当然是 ActivityManager activityManager = Context.getSystemService("activity"); ...

2021/03/27 15:44
246

没有更多内容

加载失败,请刷新页面