Don Blog

Thinking will not overcome fear but action will.

学习Java那么多年还不理解面向对象吗?

众所周知Java是面向对象的编程语言,但是何为面向对象?这个问题面试的时候也经常会问到,学习Java初期我也非常懵,百度后发现一千个读者心中有一千个哈姆雷特,在这里我说一下我对面向对象的理解,如有不对还请指正。 面向对象的理解 面向对象编程是对业务处理过程中的实体及其属性与行为(方法)进行抽象和封装,然后通过的Java的继承、多态以及7大设计原则进行编程,以提高软件的重用性、灵活性和扩展性...

java面试基础

1. 面向对象和面向过程的区别 面向过程 优点:性能比面向对象高,因为面向对象中类的调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:不如面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展;由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统...

Android面试常见问题

导读:最近有点时间,所以整理了一下Android面试中经常遇到的一些问题,大部分都是互联网上收集的,很多原作者的链接没有了,非常抱歉,如有问题可直接与我联 系,thanks. 1、Service 和Thread 的区别 a)、Thread: thread是程序执行的最小单元,他是CPU的基本单位。可以用thread来执行一些异步操作。 b)、Service: service是androi...

Android几种多线程的方式

在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手 的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程的基础技能。 引入多线程而可能伴随而来的内存问题 虽然使用多线程可以提高程序的并发量,但是我们需要特别注意因为引入多线程而可能伴随而来的内存问题。例如:在 Activity 内...

Android 四大组件之ContentProvider

ContentProvider是不同应用程序之间进行数据交换的标准API,ContentProvider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据; 其他应用程序使用ContentResolver根据Uri去访问操作指定数据。 ContentProvider为Android四大组件之一,与Activity、Service、BroadcastRece...

Android中保存状态和数据应该在哪个方法中进行

今天接到一个电面,途中面试官问到一个问题,如果一个activity在后台的时候,因为内存不足可能被杀死,在这之前如果想保存其中的状态数据,比如说客户填的一些信息之类的,该在哪个方法中进行。 我听到的第一反应就是说:在onPause方法中进行保存状态的操作。但是面试官说:onPause()的持续时间很短,假如要进行一些长时间的操作呢? 然后我就纠结了,因为我知道,如果是因为内存不足而被清理...

Android 四大组件之Service

Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行, 它没有用户界面,所以绝对不会到前台来。一旦Serivce被启动,它就与Activity一样。它完全具有自己的生命周期。 关于程序中Activity和Service的选择标准是:如果某个程序组件需要在运行时向用户呈现某种界...

Android 四大组件之BroadcastReceiver

BroadcastReceiver本身就是一种全局监听器,用于监听系统全局的广播消息,因此它可以很方便地实现系统中不同组件之间的通信。例如: 我们希望客户端程序与startService()方法启动的Service之间通信,就可以借助BroadcastReceiver来实现。 1、广播分类 Broadcast分为2种: a、Nor...

反编译APK

前言 在如今的社会,如果你不会反编译都不好意思说自己是程序员,那么下面开始我们的反编译之旅(此文也包含反编译加壳app示例)。 所需工具 工欲善其事,必先利其器。下面是我们反编译所需的工具: Android Killer Androidkiller安装、设置及使用教程 安卓逆向助手 下载链接: https://pan.baidu.com/s/1ACE...

Retrofit Multipart 文件参数传null

项目背景: 最近项目开发过程中使用了rxjava2 依次多个请求,每次请求都是拿着上一个请求的结果去执行请求,因此遇到了上传文件接口传null的情况。 而@Multipart是必须上传一个文件,若不传,则报错java.lang.IllegalStateException: Multipart body must have at least one part. 解决方案: Multipart...