为什么使用泛型 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接 收 List<Object> 作为形式参数,那么如果尝试将一个 List<String> 的对象作为实际参数传进去,却发现无法通过编译。虽然从直觉上来说, Object 是 String 的父类,这种类型转换应 该是合理的。但是实际上这会产生隐含的类型转换问题,因此编译器直接就禁止这样的行为。 什么是泛型 类型的参数化,就是可以把类型像方法的参数那样传递。 一提到参数,最熟悉的就是定义方法时有形参…
为什么使用泛型 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接 收 List<Object> 作为形式参数,那么如果尝试将一个 List<String> 的对象作为实际参数传进去,却发现无法通过编译。虽然从直觉上来说, Object 是 String 的父类,这种类型转换应 该是合理的。但是实际上这会产生隐含的类型转换问题,因此编译器直接就禁止这样的行为。 什么是泛型 类型的参数化,就是可以把类型像方法的参数那样传递。 一提到参数,最熟悉的就是定义方法时有形参…
Java中有Error和Exception,它们都是继承自Throwable类。 二者的不同之处 Exception: 可以是可被控制(checked) 或不可控制的(unchecked)。 表示一个由程序员导致的错误。 应该在应用程序级被处理。 Error: 总是不可控制的(unchecked)。 经常用来用于表示系统错误或低层资源的错误。 如何可能的话,应该在系统级被捕捉。 异常的分类 Checked exception: 这类异常都是Exception的子类。异常的向上抛出机制进行处理, 假如子类可能产生A异…
Java分派机制 在Java中,符合“编译时可知,运行时不可变”这个要求的方法主要是静态方法和私有方法。这 两种方法都不能通过继承或别的方法重写,因此它们适合在类加载时进行解析。 Java虚拟机中有四种方法调用指令: invokestatic:调用静态方法。 invokespecial:调用实例构造器方法,私有方法和super。 invokeinterface:调用接口方法。 invokevirtual:调用以上指令不能调用的方法(虚方法)。 只要能被 invokestatic 和 invokespecial 指令…
Java集合框架提供了数据持有对象的方式,提供了对数据集合的操作。Java集合框架位 于 java.util 包下,主要有三个大类: Collection 、 Map 接口以及对集合进行操作的工具 类。 Collection ArrayList :线程不同步。默认初始容量为10,当数组大小不足时增长率为当前长度 的 50% 。 Vector :线程同步。默认初始容量为10,当数组大小不足时增长率为当前长度 的 100% 。它的同步是通过 Iterator 方法加 synchronized 实现的。 LinkedLi…
1、运算符优先级表 优先级 运算符 结合性 1 () [] . 从左到右 2 ! +(正) -(负) ~ ++ -- 从右向左 3 * / % 从左向右 4 +(加) -(减) 从左向右 5 << >> >>> 从左向右 6 < <= > >= instanceof 从左向右 7 == != 从左向右 8 &(按位与) 从左向右 9 ^ 从左向右 10 | 从左向右 11 && 从左向右 12 || 从左向右 13 ?:…
1、面向对象 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。 2、对象 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。 类的实例化可生成对象,一个对象的生命周期包括三个阶段:生成、使用、消除。 当不存在对…
基础知识 ViewRoot: 具体实现类ViewRootImpl,是连接WindowManager和DecorView的纽带,View的三大流程(mearsure、layout、draw)均是通过ViewRoot来完成。 DecorView: 作为根View,其实是一个FrameLayout,内部包含一个竖直方向的LinearLayout,这个LinearLayout分为标题栏和内容栏两个部分。 PhoneWindow: Window对象通常由PhoneWindow来实现的,PhoneWindow将一个DecorV…
Android 的事件分发流程:Activity -> ViewGroup -> View 即:1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到 View。 如果事件不被中断,整个事件流向是一个类U型图,我们来看下这张图: 可以看出 android的事件传递机制是责任链模式,如果自己能处理就拦截下来自己处理,如果自己处理不了或者不确定就传递给下一个对象。 事件处理方式:拦截、分发、消费 类型 相关方法 Activity ViewGroup View 事件分发 disp…
摩尔定律是指IC上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。摩尔定律是由英特尔(Intel)名誉董事长戈登·摩尔(Gordon Moore)经过长期观察发现得之。 计算机第一定律——摩尔定律Moore定律1965年,戈登·摩尔(Gordon Moore)准备一个关于计算机存储器发展趋势的报告。他整理了一份观察资料。在他开始绘制数据时,发现了一个惊人的趋势。每个新芯片大体上包含其前任两倍的容量,每个芯片的产生都是在前一个芯片产生后的18-24个月内。如果这个趋势继续的话,计算能力相对于时间周期…
今天,Android发布 Android KTX 预览版,这套扩展插件能帮助开发者更为简洁、通顺和优雅地使用 Kotlin 语言开发 Android 程序。此外,Android KTX 还在 Android 框架和 Support Library 上提供相应 API 层,助开发者编写更为自然的 Kotlin 代码。 开发者可以前往 GitHub 下载适用 Android 框架的 Android KTX 扩展插件。Android诚邀广大开发者使用 Android KTX 并给予反馈和贡献代码。适用 Android 支…
Android开发避免不了应用内发起安装应用,随着Android版本的升级,权限越来越收紧,安装姿势变了又变。接下来我来告诉大家针对不同Android版本正确发起应用内安装。 首先将现有的Android版本进行分一下界限,Android 1.x~6.x 和Android 7.x 及Android 8.x。可以看下图,如果看不懂,接下来我会详细解说,如果你领悟了就不用往下看了。 如有一丁点不留神就会出现以下错误提示: 1、 Caused by: android.os.FileUriExposedException: …
对下面的效果不陌生吧,实现效果就是添加android:background="?android:attr/selectableItemBackground"。 Android Studio 升级到3.0后,android:background="?android:attr/selectableItemBackground"这个水波纹效果提示找不到,查找了android-support-V7的attr属性里面进行了声明,没有去掉。那就奇了怪,最后无意间调整了项目的build.gradle的配置竟然好了。 解决方法如下…
问题: 我发现,我创建的是Nexus 5X emulator如下: 我把Nexus 5X 删除后,重新创建的是Nexus 6P emulator,选择Android API 27 Google APIs Intel x86 Atom System Image如下: 重启就可以啦,你可以试试哦,如有更好的解决方法可以告知我。
欢迎下载体验:https://play.google.com/store/apps/details?id=com.aoaoyi.wallpaper 视频壁纸是一款优秀且了不起的设置视频屏幕壁纸应用程序。您可以申请透明的视频壁纸为您的屏幕,它会显示从相机背面的背景屏幕,使您的设备作为透明屏幕。也可以对你喜欢的视频进行裁剪最完美的一小段作为你的视频屏幕壁纸,给你震撼的体验。 1.设置透明视频为壁纸 您可以照常操作你的手机,同时可以在整个屏幕上透明地查看相机的实时图像。 当你在步行,说话,发短信等等时使用你的手机。您可以…
PLEASE READ THE FOLLOWING PRIVACY POLICY CAREFULLY BEFORE USING THE APPLICATION PROVIDED BY US. BY ACCESSING OR USING OUR APPLICATION (OTHER THAN TO READ THIS PRIVACY POLICY FOR THE FIRST TIME), YOU AGREE TO THE TERMS OF THIS PRIVACY POLICY. Over, AoAoYi Mobil…
QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925
赐我一丝安慰
给我一点鼓励