由于synchronized关键字锁对象的添加与释放我们并不明确,java为我们提供了一个Lock接口
Lock接口源自JDK5,其有三个直接实现类,分别是 :
ReentrantLock,ReentrantReadWriteLock.ReadLock,ReentrantReadWriteLock.WriteLock
其中后两个是ReentrantReadWriteLock的嵌套类
synchronized线程同步
多线程同时执行的时候,如果没有设置同步。那么由于CPU操作的原子性
假设某个共享成员被访问一次就自增一次或自减一次
在作数据操作的时候,可能某几个线程拿到的是同一个值,这显然不是我们想要的
Runnable接口
通过继承Thread类实现一个线程对象存在一个弊端,那就是java的单继承问题
以及继承方式实现多线程需要实例多个对象,这些对象之间如果要做到数据共享只能通过静态的方式
Runnable接口有效的解决了这些问题
线程练习
这是和线程相关的练习题,共分为...
Thread类
Thread 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程
这个类直接继承自Object并实现Runnable接口,是线程类的顶级父类
版本源自JDK1.0
线程概叙
进程与线程概叙
要想了解多线程必须要知道线程的原理,而线程是依赖于进程的存在故而要先把进程弄明白
快速排序(quickSort)
快速排序思想
取序列中的第一个元素,并将它移动到它应该处在的位置上
并且它前面的元素都小于它,后面的元素都大于它
之后再对前后两部分进行相同逻辑的递归,整个数组就排好序了
JDK环境搭建
在我基本掌握了hexo的最基础操作步骤之后,对自己学习的知识点作了一番梳理.
java是我接触计算机编程正式开始学习的第一门语言,那么就先开始学习的第一步.
搭建JDK环境,在这之前。先就计算机作了一个最基本的概叙
JavaHello与JDK环境搭建
在我基本掌握了hexo的最基础操作步骤之后,对自己学习的知识点作了一番梳理.
java是我接触计算机编程正式开始学习的第一门语言,那么就先开始学习的第一步.
搭建JDK环境,在这之前。先就计算机作了一个最基本的概叙
计算机入门,JVM_JRE_JDK
计算机软件开发
什么是软件?
一系列按照指定顺序组织的计算机数据(也就是信息-->二进制)与指令(处理数据的方式)的集合常见软件 :
系统软件 :
DOS(Disc Operate System)、Windows、Liux、Mac...
最早期是DOS后期出现了方便操作的图形化操作系统
应用软件 :
扫雷、百度网盘、QQ...什么是开发?
就是制作软件,将一系列数据与指令结合起来人机交互
软件的出现实现了人与计算机之间更好的交互交换方式
图形化界面(Graphical User Interface GUI)这是最常见的,简单直观、容易上手
命令行方式(Command Line Interface CLI)这需要一个控制台,输入特定指令。比较麻烦,需要记住一些命令计算机语言
语言
是传递信息用于沟通的一种方式计算机语言
人与计算机进行信息交流的方式,计算机语言非常多,例如: C、C++、JavaJava语言
是SUN(Stanford University Network 斯坦福大学网络公司)1995年推出的高级编程语言特点
开源 : 是一种面向Internet的语言
跨平台 : 简单易学、安全可靠、完全面向对象、与平台无关(由JVM保证)
原理 : 不同的平台安装对应的JVM,由JVM解析Java程序。三大技术架构
J2EE(Java 2 Platform Enterprise Edition)企业版 : 为企业环境应用程序提供的方案
J2SE(Java 2 Platform Standard Edition)标准版 : 为开发桌面以及商务应用程序提供的方案
J2ME(Java 2 Platform Micro Edition)小型版 : 为开发电子消费产品与嵌入式提供的方案
JDK5.0以后改名为(JAVAEE,JAVASE,JAVAME) 主要是JAVAEE,小型开发对于Android以及IOS有自己的开发软件JRE与JDK
JRE(Java Runtime Environment java运行时环境)
由JVM(Java Virtual Machine Java虚拟机)与程序运行的核心类库组成,要运行一个开发好的Java程序只需要JRE即可
JDK(Java Development Kit java开发工具包)
由JRE与Java开发工具组成,开发工具 : 运行工具(java.exe),编译工具(javac.exe),打包工具(jar.exe),文档工具(javadoc.exe)...JDK下载 : www.oracle.com
常见DOS命令与快捷键操作
DOS命令 :
打开DOS窗口 : win键或者点击任务栏的开始,在搜索框输入cmd
运行程序 : 以.exe后缀文件为例(直接到程序所在的目录键入程序名称即可),比如运行(java.exe)-->(java)
盘符切换 : (盘符:) 例如 C:
列出当前目下的文件与文件夹 : (dir)
创建目录 : (md 目录名) make directory
删除目录 : (rd 目录名) remove directory,被删除的目录下没有任何文件或文件夹,否则失败。回收站是没有目录的
进入指定目录 : (cd 目录名)
回退到上级目录 : (cd..)
回退到根目录 : (cd\) 也就是当前盘符路径
删除文件 : (del) 回收站是没有文件的
退出dos命令行 : (exit)
批量删除 : (del *.txt) 其中的*代表通配符,*.txt代表所有.txt文件。如果是所有文件-->(*)
...
帮助 : (help) 所有的命令信息,那么查找(cd)命令的详细信息(help cd) 一般来说系统中的帮助不是(help)就是(?)
快捷键 :
全选 Ctrl+A
复制 Ctrl+C
粘贴 Ctrl+V
剪切 Ctrl+X
撤销 Ctrl+Z
保存 Ctrl+S环境变量
执行一个应用程序,默认是要进入该程序所在的目录然后运行。
但是也可以然它在任意位置都能运行,比如(notepad)Windows系统自带的记事本设置Java环境变量
鼠标右键点击(我的电脑)-->高级系统设置-->环境变量-->系统变量-->变量名为Path
在这列信息里面添加JDK的bin(binary)目录路径信息(绝对路径),例如 C:\Program Files\Java\jdk-9\bin
这里要注意与其他信息用(;)隔开
重新打开dos窗口,键入javac回车。如果以下信息
那么表示设置成功了