标题
线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针,程序技术器),但代码区是共享的,即不同的线程可以执行同样的函数.
多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是允许单个线程创建多个并行执行的线程来完成各自的任务.
冒泡法的排序原理:冒泡法的思想是将相邻的两个位置的数据进行比较,如果前面的位置的数据大于后面的位置的数据,则将两位置的数据进行交换,未排序元素中最大的数便会像一个气泡一样一路向后冒,最后将其放在末排序数据的末尾,使其已排序数据的首位,时间复杂度o(n^2)空间复杂度0(1).
将a下所有的目录的文件复制到b: cp -r a b
- JRE:java Runtime Environment
- JRE是java的运行环境,包含了java虚拟机,java基础类库,使用java语言编写的程序的运行环境
- JDK:java Development Kit JDK包含了JRE同时还包含了编译java程序所需的开发工具包,是提供程序员使用的还有javac,等
- java的跨平台:java的源程序先经过javac编译期编译成.class文件,然后运行在jvm上,java解释器会将其解释成对应平台的机器执行,所谓java跨平台就是在不同的平台安装了不同的jvm,而不同的平台生成的.class是一样的而.class文件再由对应的平台的jvm解释成对应的平台机器码执行
- 都是Throwable的子类 1Exception(异常)是程序本身可以处理的异常. 2Error (错误)是程序无法处理的错误,这些错误表示故障发生在虚拟机自身,或者发生在虚拟机执行应用时,一般不需要程序处理. 3,执行异常:除了ERRor ,RuntimeException及其子类,其他的exception类及其子类都属于检查异常,这种异常的特点java编译器会检查它,也就是,当程序中可能出现这类异常,要么用try -catch语句捕获它要么用throws字句声明抛出他,否则编译不会通过. 4非检查异常:包括运行时异常和错误.
- 线程的可用状态:
(1)新建(new) 新创建了一个线程对象
(2)可运行(runnable):线程对象创建后,其他线程调用了该对象的start()方法,该状态的线程位于可以运行的线程池中,等待被线程调度选中,获取cpu的使用权.
(3)运行(running):可运行状态(runnable)的线程获取了cpu的时间篇(timeslice),执行程序代码.
(4)阻塞(block):阻塞状态是指线程因为某一种原因放弃了cpu的使用权,也即让出了cpu timeslice,暂停运行,直到线程进入可以运行(runnable)状态,才有机会获得cpu tiimeslce转到运行(running)状态,阻塞情况分为三种:
(1)等待阻塞:运行的线程执行o.wait方法,jvm会把线程放入等待序列(waitting queue)中
(2)同步阻塞:运行的线程获取对象的同步锁时,若该同步锁被别的线程占用,则jvm会把线程放入锁池中
(3)其他阻塞:运行(running)线程执行Thread.sleep或t.join方法,或者发出了I/O请求,jvm会把该线程为阻塞状态.当sleep()状态超时,join()等待线程终止或者超时,或者I/o处理完毕时,线程进入可以运行的(runnable)状态
5.死亡(dead)线程run(),main()方法执行结束后,或者异常推出了run()方法则改线程结束生命周期,死亡的线程不会再次复生.