多线程的实现方式(继承父类和实现接口)三种 1. 继承父类Thread,重写run()方法 【实现】 java1.5后 java.util.concurrent(concurrent:并发) atomic:原子 ,AtomicInteger:原子引用 1.volatile java虚拟机提供的轻量级 ...
分类:
编程语言 时间:
2019-08-27 01:01:02
阅读次数:
120
学习java虚拟机 - 类加载机制 一、是什么 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言里面,类型的加载、链接、初始化过程都是在程序运行期间完成的,Java里天生可以动态扩展 ...
分类:
编程语言 时间:
2019-08-27 00:41:06
阅读次数:
73
Java语言的特点: (1)Java语言是一种面向对象的编程语言 (2)简单、高效、稳定、安全性高 (3)Java语言是一种与平台无关的编程语言,因为其自身提供程序运行的解 释环境 (4)支持多线程处理 (5)Java语言是一种面向网络的高级语言 Java两种核心机制 (1)Java虚拟机JVM(J ...
分类:
其他好文 时间:
2019-08-25 18:04:10
阅读次数:
63
java虚拟机将内存分为哪些区域? 根据Java SE7版本的Java虚拟机规范,虚拟机管理的内存包括5个运行时数据区域: 1. 程序计数器 2. 虚拟机栈 3. 本地方法栈 4. 方法区 5. 堆 运行时数据区各部分的 作用 ? 一个线程所执行的字节码的行号指示器。 字节码解释器会通过改变计数器的 ...
分类:
编程语言 时间:
2019-08-25 15:39:05
阅读次数:
114
6种线程状态: NEW:至今尚未启动的线程 RUNNABLE:正在 java 虚拟机中执行的线程 BLOCKER:受阻塞并等待某个监视器锁的线程 TIMED_WAITING:在指定的等待时间内都是处于休眠的状态 WAITING:无限期地休眠 TERMINATED:已退出的线程 ...
分类:
编程语言 时间:
2019-08-25 12:31:08
阅读次数:
105
1.第一个翻译官(JVM) java的世界中,所有语言需要通过jvm(Java虚拟机翻译)”翻译“。因此我们制定了各种各样的规则。这样jvm才能正确的”翻译“,否则jvm是不能正确的工作,因为它不认识。翻译官有了,那么怎么进行数据交流呢。因此java中定义了各种各样的数据结构 2.基本数据类型 3. ...
分类:
编程语言 时间:
2019-08-24 00:00:00
阅读次数:
92
起源 1960年Lisp语言: 第一门真正使用内存动态分配和垃圾回收的语言。 运行时数据区域 1.程序计数器 Program Counter Register 1. 当前线程所执行的字节码的行号指示器。 2. 字节码解释器的工作是通过改变这个计数器的值去选取下一条需要执行的字节码指令。 3. 每条线 ...
分类:
编程语言 时间:
2019-08-23 22:21:15
阅读次数:
112
《深入理解 Java 虚拟机》学习 垃圾回收算法 1. 说明 程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭,这几个区域的内存分配和回收都具备确定性 Java 堆和方法区这部分内存的分配和回收都是动态的,垃圾收集器所关注的是这部分内存 新生代和老年代 Java 中的堆是 JVM 所管 ...
分类:
编程语言 时间:
2019-08-23 13:20:24
阅读次数:
83
在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进 ...
分类:
编程语言 时间:
2019-08-23 09:18:38
阅读次数:
211
一、Java异常 在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,例如用户的坏数据、试图打开一个不存在的文件等。为了能够及时有效地处理程序中的运行错误,Java 专门引入了异常类。 二、Java常见异常分类 三、为什么产生异常 在 Java 中一个异常的产生,主要有 ...
分类:
编程语言 时间:
2019-08-21 23:05:34
阅读次数:
105