您的位置:首页 > 移动开发 > Android开发

Java for Android

2016-05-19 00:03 459 查看
包含讲解android中的java特性以及面试题或者知识点

什么是程序?Java是什么?

1、数据结构+算法

2、

android的使用的java特性

1-理解面向对象

一切都是类

android哪些对象我们要下意识的认为他也是类。(配置文件也是类!)

2-使用instance校验对象类型

Android中何时用到?

比如Button继承了View,我们可能需要instanceof来进行类型的判断

LinearLayout layout = (LinearLayout )this.getLayoutInflater().inflate(R.layout.layout_main,null);//将布局文件实例化

setContentView(layout );

childCount = layout.getChildCount();//获得子控件个数

View childView = layout.getChildAt(i); //获得子控件
if(childView instanceof Button)//判断是button
{
//按钮相关操作
}


3-Arrays

int colors[] = getResource().getStringArray(R.array,colorsarray);


动态添加布局

LinearLayout layoutRoot = new LinearLayout(this);
layoutRoot.setOrientation(LinearLayout.VERTICAL); //设置方向为竖直
LinearLayout.LayoutParams lyparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT); //该线型布局的属性

LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);//linearlayout中子控件的属性

layoutRoot.setLayoutParams(lyparams); //设置本身属性

for(int i =0; i < 10; i++)
{
TextView textView = new TextView(this);
layoutRoot.addView(textView, childParams);//添加子控件,并且设置属性
}
setContentView(layoutRoot); //将该线型布局显示出来


4-Reflection反射基础

为什么是反射?

一些配置信息可以在运行时进行实例化,并且能对其进行一些操作。

如何将配置xml中的控件实例化的?

都是通过反射来实现的

例子:

String className = "android.app.NotificationManager";

Class classToInvest;
try {
classToInvest = Class.forName(className);
//classToInvest.getMethod(.....); 可以得到实例的方法
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

Constructor[] classConstructors = classToInvest.getDeclaredConstructors();//得到构造函数
for(Constructor constructor: classConstructors) //循环处理
{
//constructor的一些操作
}


反射的一些作用

得到申明的方法

一般是架构师考虑

获得对象,不一定通过new才能得到对象并执行方法,反射也可以。

5-Iteration 迭代器

6-Cursor(cursor与数据库操作的应用)

cursor:数据游标

7-Inner Class内部类

分类

成员内部类:某类内部方法都可以用该内部类

局部内部类:方法中定义,其他类不可用

静态内部类

匿名内部类

内部类的作用?

例如button的onClickListenner就可以使用


怎么使用?

内部类作用域?

8-javadoc

能帮助生成软件文档

9-Thread

ANR错误(无响应错误)

线程同步

阻塞

互斥

信号量

可以使用synchronized

Object object = new object();
synchronized(object)//对象锁
//synchronized(this)给自己加锁
{
sale();//
}


10-String基础

如何使用?

11-Data&Time基础

7种控件

DatePicker 日期选择器

TimePicker 时间选择器

DigitalClock 只显示时间

TextClock 能显示时间和日期,在4.2 API17之后推荐使用(不再使用digitalclock)

AnalogClock 模拟指针的时间显示

Chronometer 计时器

CalendarView:日历控件 链接:/article/4951201.html

总结?笔试面试

arrays:set和connection的区别

hashmap和hashtable的区别

线程同步有哪些方式?

内存泄漏

垃圾回收
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: