- 博客(11)
- 收藏
- 关注
转载 Java多线程——volatile关键字
volatile在多线程中是用来同步变量的。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。 volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) 变量。 一个变量声明为volatile,就意味...
2018-10-08 08:52:00
113
转载 Java多线程——Lock显式锁
Lock是一个接口,提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有的加锁和解锁操作方法都是显示的,因而称为显示锁。 下面针对Lock的几个实现类ReentrantLock、ReentrantReadWriteLock.ReadLock和ReentrantReadWriteLock.WriteLock解析。 ReentrantLock(可重入锁),是一个互斥的同步器,用R...
2018-10-07 16:27:00
89
转载 Java多线程——死锁
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 java 死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资源请求者在请求其他的资源的同...
2018-10-07 16:23:00
81
转载 Java多线程——TreadPoolExecutor,线程池
一.为什么使用线程池: 1.降低资源损耗。 主要指的是降低创建和销毁线程时产生的cpu资源消耗,线程池通过持续工作的线程执行不断分配的新 任务,来减少频繁的线程创建与销毁。 2.提高响应速度。 3.提高线程的可管理性。 线程是稀缺资源,频繁的创建销毁,以及没有控制的大量创建,都会影响系统的稳定性。使用线程池可以统一分配,调优,资源监控。 二.如何创建线程池: ...
2018-10-06 20:50:00
104
转载 Java多线程——wait方法和notify方法的详解
wait():等待,如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify()方法才能唤醒。 notify():唤醒,唤醒线程池等待线程其中的一个。 notifyAll():唤醒线程池所有等待线程。 wait与notify方法要注意的事项: 1. wait方法与notify方法是属于Object对象的。 2. wait方法...
2018-10-06 16:43:00
153
转载 面向对象
1.面向对象思想的概述 面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节.面向过程:当需要实现一个功能的时候,不关系具体的步骤,而是找一个已经具有该功能的人,来帮我做事. 区别:面向过程:强调步骤.面向对象:强调对象. 特点:面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的东西简单化,并将我们从执行者变成了指挥者.面向对象的语言中,包含...
2018-07-27 15:41:00
78
转载 数组
1.求出数组中的最值: int[] array = { 5, 15, 30, 1000, 60, 20}; int max = array[0]; for(int i = 1; i < array.length; i++){ //如果当前元素,比max更大,则换 if(array[i] > max){ max = array[i]; }}Syste...
2018-07-27 15:38:00
86
转载 循环结构
1.循环概述 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环语句,当反复执行这个循环体时,需要再合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去, 形成死循环. 2.循环条件的基本组成部分 1).初始化语句:再循环开始最初执行,而且只做唯一一次.2).条件判断:如果成立,则循环继续;如果不成立,则循环退出...
2018-07-27 15:35:00
157
转载 选择结构
.if选择结构 if选择结构是根据条件判断之后再做处理的一种语法结构. if(条件){ 代码块 //条件成立后要执行的代码,可以使一条语句,也可以是一组语句 } 2.if-else选择结构: 语法: if (条件){ //代码块1 }else{ 代码块2 ...
2018-07-18 18:24:00
95
转载 变量,数据类型和运算符
1.变量 计算机使用内存来记忆大脑运算时要使用的数据. 如何存储一个数据? 答:"根据数据类型为它在内存中分配一块空间,然后数据就可以放进这块空间中." 分配的空间过小会导致数据无法储存. 根据内存地址可以找到这块内存空间的位置,也就找到了存储的数据. 内存地址非常不好记,因此,我们给这块内存空间起一个别名,通过使用别名找到对应空间存储的数据. 变量是一个数据空间的表示. ...
2018-07-18 18:03:00
66
转载 Java基础
1.发展历史 1995 jdk1.0 jdk5.0 (1.5) jdk6 jdk7 jdk8 jdk7开始: String 类型也可以作为switch( byte/short/int/ char / enum 枚举类型 ) {} 2. 三方面技术 JavaSE JavaEE JavaME 3. 三种注释 单行// ...
2018-07-17 17:17:00
53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人