Android初学之关于java的一些东西

Android是基于java的,因此,Android的学习就必须先弄懂java。 java

本人新手,认为在android开发中经常使用到的java除了普通的String类和面向对象:好比关键字this,static,构造函数,尤为要明白三个方面: android

1,java的多线程 算法

2,IO流文件的读取 数组

3,集合 安全

 

一:先来讲java的多线程: 多线程

线程与进程的关系:进程是一个运行中的程序,它能够有不少线程,线程时cpu调度和分派的基本单位,容许多个线程并发执行能够提升运行效率: 并发

由于重点是Android,因此这里只简单介绍一下: 函数

多线程的实现经常使用的两种方法: 学习

第一种:本身建立一个类(mThread)继承Thread类;重写里面的run方法,这个run方法里面就是你的新的线程要执行的代码;须要调用这个新的线程的时候:就new一个本身建立的类的对象出来,new mThread().start()开启线程 this

第二种:建立一个类实现Runnable类,重现里面的run方法,里面也是要执行的代码,new Tread(mRunnable).start();开启新的线程(mRunnable是建立的子类的对象)

关于线程的操做:

sleep():线程睡眠一段时间

join():当前线程等待,其余线程执行完再指向当前线程

setName();getName():给线程命名,获取当前线程名

getCurrentThread():获取当前线程

同步:什么是同步?在多线程一块儿访问统一资源时有可能出现线程安全问题:这时候就可使用同步:保证同一时间该资源只有一个线程在访问

同步代码块与同步方法:

将须要同步的代码块放在synchronized(){}代码块中,()里面指定锁对象

方法:方法须要同步能够在方法前加上synchronized修饰

二:IO流文件读取:

IO流的方面仍是不少的,这里不作详细介绍,在Android中和java中没大的区别

三:集合:

Android中经常使用集合:List和Map

Lsit:有存储顺序,能够重复 

    ArrayList:数组结构 查找快,增删慢 
    LinkedList:链表结构 增删快,查找慢

存储,添加:add();

获取索引位置上的对象get(int index)

集合的遍历有三种方法:

for循环:  循环size()次, 每次调用get(int)方法获取一个元素.
迭代器:   使用iterator()方法获取一个迭代器(Iterator对象), 调用hasNext()方法判断是否包含下一个元素, 调用next()方法获取元素.
加强for循环: for (类型 变量名 : 容器) { 循环体 }, 容器长度是多少循环体就执行多少次, 变量每次引用容器中的一个元素.

相关代码

 //加强for循环, for (类型  变量名  : 容器) { 循环体 }
private static void iterate1(List list) { 
  for (Object obj : list)     
   System.out.println(obj);
 }
//普通循环
private static void iterate2(List list) { 
  for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
 }
//迭代器循环
private static void iterate3(List list) {     
  Iterate iter = list.iterate(); 
  while(iter.hasNext()){                                                                          System.out.println(list.get(i));}
 }

 Map:

Map是以键值对的方式存在的Map<key,value>

Map经常使用的方法    

   put(K key, V value)
   存储一个键值对, 若是键在集合中存在, 值将会覆盖原有值, 而且返回原有值.
   get(Object key)
   根据键获取值, 若是不存在, 返回null
   remove(Object key)
   根据键删除值, 并将值返回, 若是不存在, 返回null
   boolean containsKey(Object key)
   判断指定的键对象是否存在

    Map集合的遍历     *** keySet:    Map集合的keySet()方法能够获得一个全部键对象组成的Set集合    遍历这个Set集合能够获得每个键对象    再根据键对象便可获取值     *** entrySet:    Map集合的entrySet()方法能够获得一个全部Entry对象(键值对)组成的Set集合    遍历这个Set集合能够获得每个Entry对象    再使用Entry的getKey()方法和getValue()方法获取键和值

Hashtable:  和HashMap原理相同, 都是使用哈希算法去重复. 线程安全, 效率略低. 键和值都不容许为null
相关文章
相关标签/搜索