摘要:
start():启动线程 start方法启动一个新线程,start方法首先调用才能创建子线程,不能重复使用 public synchronized void start() { group.add(this); boolean started = false; try { start0(); sta 阅读全文
摘要:
线程状态:(六种) public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED; } NEW:新建状态 用new创建的线程处于新建状态,此时他和其他的Java对象一样,仅仅在堆中分配了内存 Runabl 阅读全文
摘要:
概念: 进程是计算机上正在执行的一个独立的应用程序,进程是一个动态概念,必须是进行状态。如果一个应用程序没有启动,那就不是进程:进程是资源的分配的基本单位(内存、进程ID(PID))。 线程是组成进程的基本单位,可以完成特定的功能,一个进程是有一个或者多个线程组成的,线程是资源调度的单位。 区别: 阅读全文
摘要:
并发与并行是为了最大化计算机的使用效率。 并发与并行的区别: 并发是指多个线程操作同一个资源,不是同时执行,而是交替执行,单核CPU,只不过因为CPU的时间片很短,速度太快,看起来是同时执行(张三、李四厨师,共用一口锅炒菜,交替执行)。 并行是真正同时执行,多核CPU。每个线程使用一个单独的CPU的 阅读全文
摘要:
JVM的内存划分: 方法区:是线程共享的,常量静态变量的JIT(即时编译器)编译后代码也在方法区存放。用来存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆得一个逻辑部分,但是他却有个别名Non-Heap(非堆),目的是为了与Java堆区 阅读全文
摘要:
输入一个数n,计算其阶乘的结果:value = 1*2*3*4......*(n-1)*n。 循环求解:(是很好理解的) private static int facyorialValue(int n) { int value = 1; for (int i = 1; i <= n; i++) { 阅读全文
摘要:
Java源文件 ——>编译器 ——>字节码文件 (.class文件)——>JVM ——>机器码,每种平台的解释器是不同的,但是实现的虚拟机是相同的,当一个程序从开始运行,这使得虚拟机就开始实例化了,多个程序启动就会存在多个虚拟机实例。程序退出或者关闭,则虚拟机的实例消亡,多个虚拟机实例之间数据不能共 阅读全文
摘要:
--java跨平台性 能跨平台的是java程序,而不是JVM。 其中JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。我们编写的java源码,编译后会生成一种 .class的字节码文件。java虚拟机就是负责将字节码文件翻译成特定的机器码然后运行,也就是说 阅读全文
摘要:
File类是对文件系统中的文件和文件夹进行封装的对象 绝对路径:带有前缀字符串(盘符) Windows :d:\\ Linux :/ (推荐使用后者)相对路径:不带盘符 ./test/test1.txt 当前路径 "." 父路径 ".." File类的构造函数1. File (String path 阅读全文
摘要:
采用集合实现: import java.util.*; public class MapDemo { public static void main(String[] args) { Random random = new Random(); int[] arr = new int[10];//存储 阅读全文