Android 内存泄露
前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。有些内存泄漏是很难发现的,需要使用恰当的方法或者辅助工具才能检测到,这篇文章记一下 Android 应用程序中如何检测内存泄漏。 一、java 虚拟机运行时数据区域 java 虚拟机在执行 java 程序的过程中会把它所管理的...
前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。有些内存泄漏是很难发现的,需要使用恰当的方法或者辅助工具才能检测到,这篇文章记一下 Android 应用程序中如何检测内存泄漏。 一、java 虚拟机运行时数据区域 java 虚拟机在执行 java 程序的过程中会把它所管理的...
一、前言 java 面试是否有被问到过,sleep 和 wait 方法的区别,关于这个问题其实不用多说,大多数人都能回答出最主要的两点区别: sleep 是线程的方法, wait / notify / notifyAll 是 Object 类的方法; sleep 不会释放当前线程持有的锁,到时间后程序会继续执行,wait 会释放线程持有的锁并挂起,直到通过 notify 或者 n...
java并发 —— Lock 关于java并发中的锁知识,少不了 Lock。本文转载自:Java并发编程:Lock。 从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从syn...
一、前言 前一篇文章总结了对 java 并发中的内置锁的理解,这篇文章来说说线程 ,并发与线程总有剪不断理还乱的关系。关于 java 线程的基本概念、线程与进程的关系以及如何创建线程,想必大家都很清楚了。之前总结过,存疑新同学的传送门:Java 多线程 二、线程框架 线程的三种创建方式: 我们知道,java 线程的三种创建方式: 继承自 Thread 类创建线程; new Th...
坚持学习,总会有一些不一样的东西。 一、由单例模式引入 引用一下百度百科的定义—— 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 文字定义总是很含糊,举个反例就很清楚了,想起之前总结过单例模式,就从单例模式开始吧。如果不清楚单例模式的新同学,可以看一...
单例模式的思想 想整理一些 java 并发相关的知识,不知道从哪开始,想起了单例模式中要考虑的线程安全,就从单例模式开始吧。 以前写过单例模式,这里再重新汇总补充整理一下,单例模式的多种实现。 单例模式那件小事,看了你不会后悔 单例模式不是一件小事,快回来看看 之前在第一篇文章说,单例模式的主要思想是: 将构造方法私有化( 声明为 private ),这样外界不能随意 new ...
都说状态模式和策略模式很像,它们的 UML 类图一样。这也说明,单纯从代码角度来讲,它们的本质一样,其实都是多态的应用。但它们实际所代表的的事物特征是有本质区别的,选择哪个设计模式,代表了你看待业务场景的角度。从合理角度地对业务进程抽象,选择恰当的设计模式,才能让代码有更好的结构。 这篇文章重点说说我对状态模式和策略模式区别的理解,以及如何选择。 一、策略模式 关于策略模式,我之前写过一篇...
一、背景 当前自己开发的 Android 项目是一个智能推荐系统,用到 drools 规则引擎,于我来说是一个新知识点,以前都没听说过的东东,不过用起来也不算太难,经过一段时间学习,基本掌握。关于 drools 规则引擎的内容,后面再整理JBoss 官网上面有详细的文档,网上资料也比较多。学习 drools 规则引擎的传送门: Drools 官网首页: https://www.drools...
一、引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from...
本例实现两个功能: 系统桌面上的app图标能够排列在我们的页面上。 点击自定义桌面上的app图标,能够打开对应的app。 实现思路: 我们知道,一个应用的启动页 Activity 的 Intent 的 filter 中 包含 action 为 Intent.ACTION_MAIN和category 为 Intent.CATEGORY_LAUNCHER 信息,我们构造一个这...