安卓学习第十四天:多线程的数据安全,线程同步,数组,类集框架

#1多线程的数据安全

每一个线程都有名字,可以通过Thread对象的setName()方法

设置线程名字,也可以使用getName()方法获得线程名字

 

多线程共用同一份数据的时候,可能引发数据安全问题,有可能i++或者i--执行了多次

解决的方法是同步代码快

 

#2线程同步的方法

Synchonized(this){

代码块;

}

 

this关键字称为同步锁

有了同步锁之后,代码块中的代码会由一个线程执行完。

但是不意味着其他线程不会执行,而是因为没有锁,占用cpu却无法执行代码。

 

#3数组的类型

数组是引用数据类型

 

#4数组的定义方法

Intarr[]={5,6,7,8,9};

这种定义方法称为数组的静态定义方法

arr的类型是整形数组。

中括号写在前面和后面是一样的,不影响java运行

 

数组的动态声明方法:

 int arr[]=new int[10];

其中的值没有预先定义。

整型默认值是0

布尔类型是false;

 

二维数组的定义类型:

 intarr[][]={{1,2,3},{4,5,6},{7,8,9}}

 数组的元素又是数组

遍历的时候,二维数组应该注意是否越界的问题

Arr.length

Arr[i].length

 

 

 

#5数组的操作方法

使用中括号来修改数值

Eg:arr[1]=1;

arr.length表示数组的长度

 

#6类集框架

1是一组类和接口,

2位于java.util包当中

3主要用于存储和管理对象

4主要分为3大类,集合,列表和映射

 

 

#7集合(set)的种类

集合中的对象不按特定的方式排列,并且没有重复对象。

集合相当于一个箱子,对象放在里面。

列表list

集合中的对象按照索引位置进行排序,可以有重复的对象。

映射map:

集合中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复

键和值是一一对应的关系。

 

#8类集框架的基础模式

主要就是collectioniterator

Import java.util.list;

Import java.util.ArrayList;

该数组可以理论上储存无限多的对象,但是实际内存往往有大小限制。

 

 ArrayList arr=newArrayList();

 arr.add("a");

 arr.add("b");

String s=arr.get(1);//get的是索引号。此处得到的是“b”。

调用ArrayListsize()方法,能得到它的大小

删除时使用remove()方法。

 

#9collectionIterator接口

 clear(),删除集合中所有的对象

isEmpty();判断集合是否为空

 

 

#10 SetHashSet

HashSet里面存储的都是String对象

Set set=new HashSet();

集合中不允许有重复元素

 

要获取集合中的元素,要使用迭代器,也就是Iterator接口

Iterator<----collection<-----Set<-----HashSet

                                      <-----List<----ArrayList

hasNext()next()

调用set对象的iterator方法会生成一个iterator对象,用于遍历整个set

Iteratorit=set.iterator();

hasNext()方法用于判断是否还有下一个对象

Next()方法是取出下一个元素对象

Booleanb1=it.hasNext();

If (b1){

Strings=it.next();

}

 

高级写法:

While (it.hasNext){

Strings=it.next();

 

}

 

 

 

 

 

 

你可能感兴趣的:(安卓)