- 1. 引用分类 (1)强引用: Object o = new Object ,平时用的最多的。 (2)软应用: 内存不足时回收,常用于缓存图片 (3)弱引用:不管内存是否足,都回收。GC扫描2次就回收,常用于引用activity的context。 (4)虚引用:用于跟踪GC回收的通知。 软弱引用与引用队列结合的使用场... 1. 引用分类 (1)强引用: Object o = new Object ,平时用的最多的。 (2)软应用: 内存不足时回收,常用于缓存图片 (3)弱引用:不管内存是否足,都回收。GC扫描2次就回收,常用于引用activity的context。 (4)虚引用:用于跟踪GC回收的通知。 软弱引用与引用队列结合的使用场...
- 单例模式 首先什么是单例模式: 《设计模式》一书中给出的定义是:让类自身负责保存它的唯一实例,这个类可以保证没有其他实例被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法,这就是Singleton模式。有人叫单例模式,也有叫单件模式。那么如何实现以上要求呢?首先,需要保证一个类只有一个实例;在类中,要构造一个实例,就必须调用类的构造函数,如此,... 单例模式 首先什么是单例模式: 《设计模式》一书中给出的定义是:让类自身负责保存它的唯一实例,这个类可以保证没有其他实例被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法,这就是Singleton模式。有人叫单例模式,也有叫单件模式。那么如何实现以上要求呢?首先,需要保证一个类只有一个实例;在类中,要构造一个实例,就必须调用类的构造函数,如此,...
- 写在前面:今天开始尝试写写除Vim外的其他内容,仍然是以技术为主,可能涉及的内容包括Linux、正则表达式、gdb、makefile等内容,不知道小伙伴们有没有兴趣看呢?不管如何,也算是我自己的知识沉淀吧~ 我把公众号改名了,你们猜猜新名字是啥? GDB (The GNU Project Debugger)是 Linux 系统下调试 C 和 C++ 程序的主要... 写在前面:今天开始尝试写写除Vim外的其他内容,仍然是以技术为主,可能涉及的内容包括Linux、正则表达式、gdb、makefile等内容,不知道小伙伴们有没有兴趣看呢?不管如何,也算是我自己的知识沉淀吧~ 我把公众号改名了,你们猜猜新名字是啥? GDB (The GNU Project Debugger)是 Linux 系统下调试 C 和 C++ 程序的主要...
- 前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过。 样本地址: https://github.com/wyhuan/owasp-mstg/blob/master/Crackmes/Android/Level_02/UnCrackable-Level2.apk 依然下载到手机并安装,打开看看... 前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过。 样本地址: https://github.com/wyhuan/owasp-mstg/blob/master/Crackmes/Android/Level_02/UnCrackable-Level2.apk 依然下载到手机并安装,打开看看...
- 现在我们要启动2个线程,第一个线程打印“gaoxiaowei”中的每一个字符,然后换行; 第二个线程打印“zhangwenbin”的每一个字符然后换行,代码如下: public class TraditionalThreadSynchronized { /** * @param args */ public static void main(String[] args... 现在我们要启动2个线程,第一个线程打印“gaoxiaowei”中的每一个字符,然后换行; 第二个线程打印“zhangwenbin”的每一个字符然后换行,代码如下: public class TraditionalThreadSynchronized { /** * @param args */ public static void main(String[] args...
- LiveData的使用及原理 1.LiveData的使用2.原理3.自定义LiveData LiveData是一个 可观察的数据持有类,它与常见的可观察对象不同的是它有生命周期意识,即它能够感知组件,如activities, fragments, services等的生命周期变化。以前我们可会用EventBus来做事件传递,现在用LiveData也是不错... LiveData的使用及原理 1.LiveData的使用2.原理3.自定义LiveData LiveData是一个 可观察的数据持有类,它与常见的可观察对象不同的是它有生命周期意识,即它能够感知组件,如activities, fragments, services等的生命周期变化。以前我们可会用EventBus来做事件传递,现在用LiveData也是不错...
- 全局定时任务-CronUtil 介绍 CronUtil通过一个全局的定时任务配置文件,实现统一的定时任务调度。 使用 1、配置文件 对于Maven项目,首先在src/main/resources/config下放入cron.setting文件(默认是这个路径的这个文件),然后在文件中放入定时规则,规则如下: # 我是注释[com.company.aaa.jo... 全局定时任务-CronUtil 介绍 CronUtil通过一个全局的定时任务配置文件,实现统一的定时任务调度。 使用 1、配置文件 对于Maven项目,首先在src/main/resources/config下放入cron.setting文件(默认是这个路径的这个文件),然后在文件中放入定时规则,规则如下: # 我是注释[com.company.aaa.jo...
- Handler的用途 Handler是子线程(工作线程)与主线程之间的通信桥梁。由于更新UI只能在主线程里完成,所以在子线程里的工作完成后,可以通过Handler来通知主线程更新UI组件。 什么是主线程呢? 当app应用程序启动时创建的第1个线程就是主线程(MainThread)又叫UI线程,因为它专门用于UI的操作。 什么是子线程呢? 子线程,又因其作用而被... Handler的用途 Handler是子线程(工作线程)与主线程之间的通信桥梁。由于更新UI只能在主线程里完成,所以在子线程里的工作完成后,可以通过Handler来通知主线程更新UI组件。 什么是主线程呢? 当app应用程序启动时创建的第1个线程就是主线程(MainThread)又叫UI线程,因为它专门用于UI的操作。 什么是子线程呢? 子线程,又因其作用而被...
- Akka Dispatcher是维持Akka Actor动作的核心组件,是整个Akka框架的引擎。它是基于Java的Executor框架来实现的。Dispatcher控制和协调消息并将其分发给运行在底层线程上的Actor,由它来负责调度资源的优化,并保证任务以最快的速度执行。 Akka的高稳定性是建立在“Let It Crash”模型之上的,该模型是基于Supervi... Akka Dispatcher是维持Akka Actor动作的核心组件,是整个Akka框架的引擎。它是基于Java的Executor框架来实现的。Dispatcher控制和协调消息并将其分发给运行在底层线程上的Actor,由它来负责调度资源的优化,并保证任务以最快的速度执行。 Akka的高稳定性是建立在“Let It Crash”模型之上的,该模型是基于Supervi...
- 所有的进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程。该进程会读取系统的初始化脚本(initscript)并执行其他相关的程序,最终完成整个系统的启动过程。 内核把进程(在Linux中进程又称任务)存放在任务队列中。任务队列是双向循环链表。链表中的每一项数据的类型都是task_struct,task_struct就是所谓的进程描述符的... 所有的进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程。该进程会读取系统的初始化脚本(initscript)并执行其他相关的程序,最终完成整个系统的启动过程。 内核把进程(在Linux中进程又称任务)存放在任务队列中。任务队列是双向循环链表。链表中的每一项数据的类型都是task_struct,task_struct就是所谓的进程描述符的...
- 一个事务必须具有以下四个特点,即所谓的ACID特性: 原子性:所有的操作要么全部成功,要么全部失败。一致性:在事务完成后,系统保持一致性状态。隔离性:在一个事务成功或失败前,产生的数据对于系统中的其他事务是不见的。持久性:事务操作的结果要持久化保存。 Akka使用(Software Transactional Memory)软件事务内存来实现事务。这是一种多线程之间... 一个事务必须具有以下四个特点,即所谓的ACID特性: 原子性:所有的操作要么全部成功,要么全部失败。一致性:在事务完成后,系统保持一致性状态。隔离性:在一个事务成功或失败前,产生的数据对于系统中的其他事务是不见的。持久性:事务操作的结果要持久化保存。 Akka使用(Software Transactional Memory)软件事务内存来实现事务。这是一种多线程之间...
- 内存泄漏的本质 申请了的内存在不再使用时无法回收。 Android应用程序内存泄漏的含义 Android系统为每个应用程序都分配了相应限额的内存。当应用程序中产生的内存泄漏较多时,将会导致应用程序运行所需要的内存超过系统为其分配的限额,这时应用程序就会Crash(崩溃)。 常见引发内存泄漏的情况 集合类static关键字修饰的成员变量非静态内部类 / 匿名类资... 内存泄漏的本质 申请了的内存在不再使用时无法回收。 Android应用程序内存泄漏的含义 Android系统为每个应用程序都分配了相应限额的内存。当应用程序中产生的内存泄漏较多时,将会导致应用程序运行所需要的内存超过系统为其分配的限额,这时应用程序就会Crash(崩溃)。 常见引发内存泄漏的情况 集合类static关键字修饰的成员变量非静态内部类 / 匿名类资...
- 内存溢出的定义 本来应该被回收的对象不能被回收而停留在堆内存中。 内存溢出的原因 当一个对象实例不再被使用时,正常来说应该被回收,但却因为有另外一个正在使用的对象持有它的引用,从而导致它不能被回收。这就导致了内存溢出。 由Handler引起的内存溢出问题 Handler的一般用法是在Activity中新建Handler子类(内部类)或匿名Handler内部类。... 内存溢出的定义 本来应该被回收的对象不能被回收而停留在堆内存中。 内存溢出的原因 当一个对象实例不再被使用时,正常来说应该被回收,但却因为有另外一个正在使用的对象持有它的引用,从而导致它不能被回收。这就导致了内存溢出。 由Handler引起的内存溢出问题 Handler的一般用法是在Activity中新建Handler子类(内部类)或匿名Handler内部类。...
- 用户界面是操作系统的外在表象,内核才是操作系统的内在核心。系统其他部分都必须依靠内核提供的服务。 内核的大概组成: 中断服务程序:负责响应中断调度程序:负责管理多个进程从而分享处理器时间内存管理程序:负责管理进程地址空间网络服务程序进程间通信服务程序… 对于提供保护机制的现代操作系统来说,内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间(称为内核空间)和... 用户界面是操作系统的外在表象,内核才是操作系统的内在核心。系统其他部分都必须依靠内核提供的服务。 内核的大概组成: 中断服务程序:负责响应中断调度程序:负责管理多个进程从而分享处理器时间内存管理程序:负责管理进程地址空间网络服务程序进程间通信服务程序… 对于提供保护机制的现代操作系统来说,内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间(称为内核空间)和...
- 为了让远程Service与多个应用程序的组件(四大组件)进行跨进程通信(IPC),需要使用AIDL IPC:Inter-Process Communication,即跨进程通信 AIDL:Android Interface Definition Language,即Android接口定义语言;用于让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多... 为了让远程Service与多个应用程序的组件(四大组件)进行跨进程通信(IPC),需要使用AIDL IPC:Inter-Process Communication,即跨进程通信 AIDL:Android Interface Definition Language,即Android接口定义语言;用于让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多...
上滑加载中
推荐直播
-
鸿蒙上云,加速开发者成长
2024/09/11 周三 16:30-18:00
芝诺 华为云HarmonyOS DTSE技术布道师
鸿蒙千帆起,越来越多的开发者启动鸿蒙原生应用开发,开发者创新中心提供全面的合作资源与支持服务,从了解、到学习评估、到开发上架以及技术支持,帮助不了解鸿蒙应用开发的伙伴快速转身、快速具备鸿蒙应用开发的能力。诚邀您加入鸿蒙生态,开启鸿蒙原生应用开发!
回顾中
热门标签