android 知识点大全,Android基础知识总结(一)

1.面向对象(OOP):针对业务处理过程的实体及其属性和行为进行抽象封装以获得高效清晰的逻辑单元划分。

三大特性:①封装(隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变量隔离便于使用,提高代码的服用小和安全性);②继承(提高代码的复用性,继承是多态的前提);③多态(父类或接口定义的引用变量可以指向子类或具体实现类的形象,提高了程序的拓展性)。

五大原则:单一职责、开放封闭、里氏替换、依赖倒置、接口分离。

2.数据类型:byte 1个字符,short 、char2 个字符,int 、float 4个字符,long 、double 8个字符。

volatile是一个类型修饰符(type specifier)volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。(from百度)

volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。

在JDK1.7之前,switch语句仅支持byte、short、char、int,在JDK1.7之后,枚举、字符串类型都可以,通过String.hashcode转成int进行判断。

String不可变原因:字符串常量池的需要;运行String对象缓存HashCode,提高效率;多线程安全。

String 转integer的方法和原理

①Integer.parseInt(String str)调用Integer内部的;

②Integer.parseInt(String s, int radix)parseInt内部首先判断字符串是否包含符号(-或者+),则对相应的negative和limit进行赋值,然后再循环字符串,对单个char进行数值计算

③Character.digit(char ch, int radix) 返回指定基数中字符表示的数值。函数肯定进入到0-9字符的判断(相对于string转换到int),否则会抛出异常,数字就是如上面进行拼接然后生成的int类型数值。

限定参数类型的上界:参数类型必须是T或T的子类型

super T> 限定参数类型的下界:参数类型必须是T或T的超类型

3.equal和==的区别:equal 比较对象,==比较原生类型

equal:存储空间的值是否相同,字符串内容比较,值是否相同

==:是否为同一内存空间,内存空间是否相同,引用是否相同

如果一个类重写了equals()方法,则一定也要重写hashCode()方法,原因是:虽然equals()方法重写可以保证正确判断两个对象在逻辑是否相同,但是hashCode()方法映射的物理地址是不相同的,依然会将逻辑上相同的两个元素存入集合,但是第二个对象的内容会是Null.

4.字符串运行速度:StringBuilder > StringBuffer (线程安全)> String ,String为常量,其它为变量,所以运行慢。

StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。StringBuffer对象是一个字符序列可变的字符串,它没有重新生成一个对象,而且在原来的对象中可以连接新的字符串。

StringBuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。不同的是:StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高

5.Queue 队列:先进先出,Stack 栈:后进先出。Collect -->List/Set/Map

6.ListView机制:用到的适配器有ArrayAdapter、SimpleAdapter、BaseAdapter

BaseAdapter 重写的方法getCount()、getItem()、getItemId()、getView(),每绘制一次就调用一次getView(),在getView()中将事先定好的layout布局确定显示的效果并返回一个view对象作为一个item 显示出来,getItem()、getItemId()在调用LIstView响应方法时调用。

7.Fragment生命周期

onAttach(): 完成Fragment和Activity的绑定,参数中的Activity即为要绑定的Activity,可以进行赋值等操作。

onCreate() : 完成Fragment的初始化

onCreateView() : 加载Fragment布局,绑定布局文件

onActivityCreated() : 表名与Fragment绑定的Activity已经执行完成了onCreate,可以与Activity进行交互操作。

onStart() : Fragment变为可见状态

onResume() : Fragment变为可交互状态

onPause(): Fragment变为不可交互状态(不代表不可见)

onSaveInstanceState():保存当前Fragment的状态。记录一些数据,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。

onStop(): Fragment变为不可见状态

onDestroyView() : 销毁Fragment的有关视图,但并未和Activity解绑,可以通过onCreateView()重新创建视图。Fragment销毁时或者ViewPager+Fragment情况下会调用

onDestroy() : 销毁Fragment时调用

onDetach() : 解除和Activity的绑定。Fragmen销毁最后一步。

8.四大引用类型

强引用: 是指创建一个对象并把这个对象赋给一个引用变量。 强引用有引用变量指向时永远不会被垃圾回收,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。

软引用(SoftReference):如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存,比如网页缓存、图片缓存等。使用软引用能防止内存泄露,增强程序的健壮性。SoftReference的特点是它的一个实例保存对一个Java对象的软引用, 该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对 这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。另外,一旦垃圾线程回收该Java对象之 后,get()方法将返回null。

弱引用(WeakReference):弱引用也是用来描述非必需对象的,当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。在java中,用java.lang.ref.WeakReference类来表示。

虚引用(PhantomReference):虚引用和前面的软引用、弱引用不同,它并不影响对象的生命周期。在java中用java.lang.ref.PhantomReference类表示。如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。要注意的是,虚引用必须和引用队列关联使用,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会把这个虚引用加入到与之 关联的引用队列中。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。

对于强引用,我们平时在编写代码时经常会用到。而对于其他三种类型的引用,使用得最多的就是软引用和弱引用,这2种既有相似之处又有区别。它们都是用来描述非必需对象的,但是被软引用关联的对象只有在内存不足时才会被回收,而被弱引用关联的对象在JVM进行垃圾回收时总会被回收。

9.线程是进程的子集,一个进程可有多个线程。

线程间通讯方式:①共享变量;②管道;③handler;④runOnUiThread(Runnable);⑤view.post(Runnable)。

进程间通讯方式:①管道;②FIFO;③消息队列;④信号量;⑤共享内存区;⑥套接字socket信号。

Activity间的通信方式:①Intent;②借助类的静态变量;③借助全局变量/Application;④借助外部工具(SharedPreference、SQLite、File、剪贴板);⑤借助Service。

10.PackageManagerService APP安装有关的service,WindowManagerService APP调用窗口相关的service,ActivityManagerService 系统的引导服务,支持应用进程的启动、切换、调度、四大组件的启动和管理。

自定义系统服务:在ServiceManager注册,在Framework/base增加JNI,C++ 文件,在build 配置mk文件,全部编译,才可调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android fragment 弹出对话框,Android中使用Dialogfragment显示对话框

其他注意事项:1、如何设置自己的Dialogfragment没有标题栏?可以通过两种方法来设置 ,一种是使用dialogfragment的setStyle函数,另外就是使用getDialog().getWindow().requestFeature方法,具体代码如下Overridepublic D…

android sd卡不可写,Android检查SD卡是否可读写

因为external storage可能是不可用的,比如遇到SD卡被拔出等情况时。因此在访问之前应对其可用性进行检查。我们可以通过执 行 getExternalStorageState()来查询external storage的状态。若返回状态为MEDIA_MOUNTED, 则 可以读写。/* Checks if external storage is …

Android7.0 emui主题,全新EMUI5.0基于Android7.0 天生快,一生快!

EMUI5.0是基于Android 7.0开发的全新一代操作系统。 循着神秘古老的爱琴海带来的灵感,EMUI5.0用户界面的设计极其简单干净,令人赏心悦目。 因了解用户习惯而全新改善,EMUI5.0流畅自然的表现不会随时间递减,让生活得心应手&#xf…

html生成原理,Axure生成HTML的原理是什么?

回答:云渲染平台分布式并行计算分为空间上的并行和时间上的并行。空间上的并行是指用多个处理器并发的执行计算,比如Mentalray渲染器就支持单帧画面分割渲染,时间上的并行就是指流水线技术。云渲染平台现在的集群计算系统的前沿科学研究主要是…

在微信公众号中写html代码吗,微信公众号代码编写怎么做

微信公众号编写微信代码,因为有这方面的需要,需要去进行微信公众号代码编写。以下是学习啦小编为您带来的关于微信公众号代码编写,希望对您有所帮助。微信公众号代码编写微信公众平台编辑器不能直接编写微信代码,但是可以通过第三…

html代码在线分析,网站html代码解析

1、什么是HTML文件?HTML中文叫做“超文本标记语言”,一个HTML文件不仅包含文本内容,还包含一些标记,一个HTML文件的后缀名是.htm或者是.html。用文本编辑器(Dreamweaver)就可以编写HTML文件。2、html文件的基本结构:(成…

html 下拉到一定位置,浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。这种效果怎么实现呢...

1.浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。页面向上滚动到一定位置继续滚动时,侧边导航保持在原来位置。这种效果怎么实现呢2.、参考代码:$(function(){/…

济源一中2021高考成绩查询入口,济源一中2019高考成绩喜报、一本二本上线人数情况...

济源一中2019年高考喜报2019年高考成绩揭晓,济源一中再创辉煌!普通类(不含体育、艺术)一本上线突破1500大关,达到1549人,比去年增加51人,再创历史新高。高分段成绩喜人,全省文科裸分前50名,我校…

用户可以改变计算机功能键吗,电脑键盘快捷键怎么更改

许多用户朋友想更改自己电脑的快捷键?下面小编整理了解决更改电脑快捷键的方法,希望能帮到大家O***∩_∩***O哈哈~更改电脑快捷键的方法点击电脑屏幕的最左下角的“开始菜单”,此时弹出总程序菜单,如图:点击【所有程序】&#xf…

2017年网络统考计算机成绩,2017年12月江苏省成人计算机基础统考成绩查询

问: 关于江苏省成人高考计算机统考答:成人教育的学生在校期间每年6月/1月有二次省计算机统考,考试大纲你可以在江苏省教育考试院网上查询。考试内容全在里面,像你说的有WORD 、EXCEL PPT 、(没有CAD)。一般学校会开设此课程。每一个学生必须通…

计算机专业的英语文献,计算机专业英语论文参考文献

bentuoguai高分答主08-08TA获得超过1351个赞关于计算机信息管理系统,可以参考了:)~~Enterprise computer network management information system(MIS) is gradually use, it is the stage sign of our country of production power development, is the…

如何擦除计算机连接网络的记录,彻底清除网络浏览记录的六个方法 -电脑资料...

当我们上网的时候,可能会使用电子信箱,这样就会留下账号;可能会访问一些网站,这样会留下上网信息;可能会登录一些电子商务网站,那账号和密码则会默认保存在系统之中……这样,一旦自己的电脑被入侵&#xff…

未来计算机作文1000字,未来的生活作文1000字

夜幕降临了,我早早地上了床,进入了甜甜的梦乡之中。一觉醒来,咦?我这是在哪儿呢?我惊奇地发现自己根本没有躺在自己的床上。我紧张极了,急忙掀开被子下了床……万万没想到的是,我的脚刚触碰到地…

计算机博士与管理科学与工程博士,管理科学与工程一级学科博士点简介

管理科学与工程是管理学门类中的一级学科,侧重于研究同现代生产经营、科技、经济和社会等发展相适应的管理理论、方法与工具,应用现代科学方法与科技成就来阐明和揭示管理活动的规律,以提高管理的效率。东华大学早在1959年设立工业管理工程本…

福师计算机在线作业一2,福师《计算机》在线作业二答案.doc

福师《计算机导论》在线作业二一、单选题(共?20?道试题,共?40?分。)V1.??对多媒体计算机系统,下列设备中,( )不属于图像信息输入/输出设备。A. 绘图仪B. DVD光盘驱动器C. 扫描仪D. 彩色喷墨打印机??????满分:2??分2…

php在指定html元素中输出,如何从PHP中的数组输出html svg元素?

我有svg元素的数组。我必须从列出的阵列中打印出来。我试图打印它,但它不工作。请指导我如何获取浏览器上呈现的svg元素。actualy有阵列中的其他项目我没有表现出bcoz的字符限制如何通过SVG标记元素循环如何从PHP中的数组输出html svg元素?foreach($item…

四川大学计算机应用基础第二次,四川大学川成教2017年秋季《计算机应用基础》第二次作业...

四川大学成教2017年秋季《计算机应用基础》第二次作业一、单项选择题。本大题共50个小题,每小题2.0 分,共100.0分。在每小题给出的选项中,只有一项是符合题目要求的。1.电子工作表中每个单元格的默认格式为___D_____。A.数字B.文本C.日期D.常…

2014北科计算机原理试题答案,北科_计算机组成原理考题-A卷答案

《北科_计算机组成原理考题-A卷答案》由会员分享,可在线阅读,更多相关《北科_计算机组成原理考题-A卷答案(5页珍藏版)》请在人人文库网上搜索。1、试卷 第 1 页 共 5 页 一、 选择(满分 10 分,一个题 1 分) 1. 划分计算机软件和硬件的界面是 …

东莞市商业学校计算机平面设计在哪个校区,东莞市商业学校

东莞市商业学校开设专业:学校开设计算机动漫与游戏制作、计算机平面设计、计算机网络技术、电子技术应用、学前教育、民族音乐与舞蹈、会计电算化、金融事务、市场营销、电子商务、国际商务、汽车整车与配件营销等12个专业。学校以就业为导向,以现代服务…

计算机组成原理简单计算机设计,计算机组成原理课设.doc

文档介绍:课程设计任务书学院信息学院专业计算机科学与技术学生姓名学号设计题目多寄存器算术减法\右移位\输入输出\转移指令实验计算机设计(第5组)内容及要求:利用EL-JY-II型计算机组成原理实验仪提供的硬件资源,通过设计(包括整机结构设计、指令设计、微程序设计、…