Java-Android面试笔记
yu-Knight
雄关漫道真如铁,而今迈步从头越!
多年Android开发经验。
熟悉HTML、CSS、JS、JAVA、Kotlin、PHP等常用开发语言。
展开
-
Java的四种引用方式
java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括:强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。 1.强引用 是指创建一个对象并把这个对象赋给一个引用变量。比如:O...原创 2018-10-31 22:57:04 · 217 阅读 · 0 评论 -
Android 自定义控件三种实现方法为组合原生控件,自己绘制和继承原生控件
1.组合原生控件将自己需要的控件组合起来变成一个新控件,如下制作常见的app页面头部. 新建一个Android项目,创建一个头部布局view_top.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro...转载 2018-11-01 00:13:12 · 602 阅读 · 0 评论 -
Android 三种动画详解
View Animation(视图动画)补间动画Drawable Animation(帧动画)Frame动画Property Animation属性动画 Drawable Animation也就是所谓的帧动画,Frame动画。指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果。View Animation视图动画,也就是所谓补间动画,Tween动画。指通过指定Vie...原创 2018-11-01 00:07:34 · 203 阅读 · 0 评论 -
ListView 与 RecyclerView 对比
布局效果对比常用功能与API对比在Android L引入嵌套滚动机制(NestedScrolling)ListView与RecyclerView的简单使用:ListView: 1. 继承重写BaseAdapter类; 2. 自定义ViewHolder与convertView的优化(判断是否为null);RecyclerView: 1. 继承重写RecyclerView.Adapt...原创 2018-10-31 23:58:21 · 333 阅读 · 0 评论 -
ViewHolder为什么要被声明成静态内部类
非静态内部类会隐式持有外部类的引用,就像大家经常将自定义的adapter在Activity类里,然后在adapter类里面是可以随意调用外部activity的方法的。当你将内部类定义为static时,你就调用不了外部类的实例方法了,因为这时候静态内部类是不持有外部类的引用的。声明ViewHolder静态内部类,可以将ViewHolder和外部类解引用。大家会说一般ViewHolder都很简...原创 2018-10-31 23:46:54 · 1043 阅读 · 0 评论 -
ListView卡顿的原因以及优化策略
重用converView: 通过复用converview来减少不必要的view的创建,另外Infalte操作会把xml文件实例化成相应的View实例,属于IO操作,是耗时操作。 减少findViewById()操作: 将xml文件中的元素封装成viewholder静态类,通过converview的setTag和getTag方法将view与相应的holder对象绑定在一起,避免不必要的findvi...原创 2018-10-31 23:41:45 · 3241 阅读 · 0 评论 -
Android中aar和jar的区别
两者区别: *.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。 *.aar:包含所有资源,class以及res资源文件全部包含 JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的...原创 2018-10-31 23:36:39 · 505 阅读 · 0 评论 -
Android数据存储五种方式
1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据原创 2018-10-31 23:25:59 · 227 阅读 · 0 评论 -
Activity 启动Service两种方式与区别
Activity 启动Service两种方式:startServicebindService startService(Intent):1.定义一个类继承Service2.在Manifest.xml文件中配置该Service3.使用Context的startService(Intent)方法启动该Service4.不再使用时,调用stopService(Intent)方法...原创 2018-10-31 23:22:42 · 5026 阅读 · 0 评论 -
Activity的四种启动方式
AndroidManifest文件中一共设计了四种启动模式standard singleTop singleTask singleInstance一、standard模式 特点:1.Activity的默认启动模式 2.每启动一个Activity就会在栈顶创建一个新的实例。例如:闹钟程序 缺点:当Activity已经位于栈顶时,而再次启动Act...原创 2018-10-31 23:12:43 · 298 阅读 · 0 评论 -
ArrayList与LinkedList的区别
ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 Array...原创 2018-10-31 23:02:37 · 398 阅读 · 0 评论 -
Android-Handler相关问题
1、handler是什么?答:handler是更新UI界面的机制,也是消息处理的机制,我们可以发送消息,也可以处理消息 2、为什么要有Handler?答:Android在设计的时候,封装了一套消息创建、传递、处理机制,如果不遵循这样的机制就没办法更新UI信息,就会抛出异常。 3、handler怎么用?答:1、post(Runnable); 2、postD...原创 2018-11-01 00:25:50 · 294 阅读 · 0 评论