程序运行所需的内存空间,有些是不能在编译期就能确定,得要在运行期根据实际运行状况动态地在系统中创建。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结... ...
分类:
编程语言 时间:
2019-09-22 14:41:36
阅读次数:
90
1.特点 跨平台(操作系统) 面向对象 简单性(多继承,指针) 健壮性(垃圾回收,异常处理) 多线程 大数据开发相关 2.运行机制 1. JVM(JAVA 虚拟机 Virtual Machine),可以在平台上用自带虚拟机翻译成对应语言。 JVM 把源文件.java 编译成字节码.class 2. ...
分类:
编程语言 时间:
2019-09-20 16:51:19
阅读次数:
64
1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多。一些下拉上滑、双指缩放快速打字等操作,安卓的流畅度都表现比较糟糕,但是,对于App使用过程是否流畅,一直没有一个可靠的指标将用户的 ...
分类:
移动开发 时间:
2019-09-19 10:36:53
阅读次数:
143
线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。Java 虚拟机允许应用程序并发地运行多个执行线程。 Thread类:该类的对象代表一个 ...
分类:
编程语言 时间:
2019-09-18 12:58:54
阅读次数:
228
什么是Java虚拟机类加载机制? 虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类加载的时机 类的生命周期是从类被加载到虚拟机的内存中,到卸载出内存为止。 类的生命周期: 加载 loading 验证 ...
分类:
编程语言 时间:
2019-09-18 01:24:46
阅读次数:
109
都可以修饰类、方法、成员变量。static可以修饰类的代码块,final不可以。static不可以修饰方法内的局部变量,final可以。 static修饰表示静态或全局,被修饰的属性和方法属于类,可以用类名.静态属性 / 方法名 访问static修饰的代码块表示静态代码块,当Java虚拟机(JVM) ...
分类:
其他好文 时间:
2019-09-15 22:34:36
阅读次数:
110
参考资料:GC算法分类-https://zhuanlan.zhihu.com/p/41666328 《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代 gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。 对象内存分配跟使用的垃圾收集器有关,默认是在 ...
分类:
编程语言 时间:
2019-09-15 17:08:04
阅读次数:
110
JDK和JRE的区别 JRE: Java Runtime EnvironmentJDK:Java Development Kit JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK是j ...
分类:
其他好文 时间:
2019-09-13 17:49:05
阅读次数:
93
在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进 ...
分类:
编程语言 时间:
2019-09-13 12:51:40
阅读次数:
65