干货之Java学习进阶篇

小露认为多线程问题和集合问题是Java技术应用中的重点,也是作为java学习中必不可或缺的,下面就让小露为大家介绍下多线程和集合的基本用法。

一、Java的多线程

进程:正在执行的程序,表示一个应用程序对应的内存空间。

线程:用于控制进程中运算执行流程的控制单元。

简单来说就是,一个进程中至少有一个线程负责该应用程序的执行。

当一个进程中有了多个线程时,就成为多线程。

多线程有啥好处呢?

多线程的出现的对CPU的提高了效率,提高了CPU的使用率。但是线程过多,会导致CPU的资源耗费,降低性能。

多线程在现实生活中有哪些应用呢

JavaVM本身也是一个多线程的应用程序。

其中,有一个主线程负责java程序运行,至少还有另一个线程垃圾回收线程,负责堆内存的内存管理。常见的多线程程序:下载工具,聊天工具。

Java线程调用

1、线程创建

调用start方法,当调用后线程就具备了执行资格,但是不一定立刻具备执行权,这时处于的状态是临时阻塞状态,就是在等CPU过来对其进行执行。

2、线程运行

线程如果具备了执行资格的同时,还具备了执行权,那么该线程就是在当前正在运行的线程,这时它就处于运行状态。

3、线程冻结。

释放了线程执行权,而且释放了线程的执行资格。当线程执行到sleep方法,或wait方法时,线程就处于这种状态。当sleep时间到,或者被wait的线程,被notify后,线程又重新获取到了执行资格,但是不一定获取到执行权,所以这时会从冻结状态转到临时阻塞状态。

3、线程消亡

当线程调用了stop方法(过时),或者线程执行的代码已经结束了,这时该线程结束,该执行路径在进程中消失。

3、临时阻塞。

线程具备了执行资格,但是没有执行权。

线程中安全问题

当线程代码中有多条语句在操作线程共享的数据。这多条语句被多个线程分开执行时,容易产生数据的错误。

安全问题的解决

在某一个时刻或者时间段,对于多条操作共享数据的代码,只能有一个线程进行执行,执行期间不可以有其他线程进行参与,简单说就是将部分代码加锁。

二、Java的集合

用于存储对象的可变长度的容器。

因为容器中的数据结构不同,所以出现了容器的体系也就是不断的向上抽取。

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。

集合类的特点,集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

集合框架中的常用接口

Collection接口有两个子接口:

List(列表)可存放重复元素,元素存取是有序的。Set(集)不可以存放重复元素,元素存取是无序的。

get(intindex):通过脚标获取元素。

iterator():通过迭代方法获取迭代器对象。

Map集合

Map:一次存入一对元素,以键值对(Key,Value)形式存在,必须保证键的唯一性。

1、添加:put(Kkey,Vvalue):返回的是被覆盖的Value,如果键没有重复,返回的是null。

2、删除:remove(key);clear();

3、获取:valueget(key);

4、判断:booleancontainsKey(key);booleancontainsValue(value);booleanisEmpty();

5、长度:intsize();

6、取出:原理:将map集合转成Set集合后,在通过迭代器取出

Map与Collection的区别

Map与Collection在集合框架中属并列存在。

Map存储的是键值对。

Map存储元素使用put方法,Collection使用add方法。

Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素。

Map集合中键要保证唯一性。

今天Java的多线程与集合的分享就到这里,有不懂的可以随时与小露沟通,通过







































北京哪家医院看皮肤病白癜风最好
哪医院治白癜风比较好



转载请注明:http://www.jiaju1314.com/pxxx/1378.html

  • 上一篇文章:
  •   
  • 下一篇文章: