String的不可变,String类为什么要被设计为是final的,Java String的可变性,Byte,Short,Integer,Long,Double,Float,Character,Boolean 八种基本数据的包装类,enum枚举类型 不变性分析 ...
分类:
编程语言 时间:
2018-07-26 10:48:45
阅读次数:
175
javac指令和 java指令:javac负责 将源文件编译成 字节码文件 (.class) , 编译时要指明 .java后缀,不能省略java指令 负责 将 字节码文件 转为 机器码, 对其进行运行, java指令后的 字节码文件 省略 .class后缀 直接操作 javac 对源文件进行编译的弊 ...
分类:
编程语言 时间:
2018-07-25 20:46:22
阅读次数:
176
前面我们说到多线程带来的风险,其中一个很重要的就是安全性,因为其重要性因此,放到本章来进行讲解,那么线程安全性问题产生的原因,我们这节将从底层字节码来进行分析。 一、问题引出 先看一段代码 运行结果:仔细发现,出现了两个84,但代码想要的结果是,每个线程每次执行,就在原来的基础上加一。因此,这里就是 ...
分类:
编程语言 时间:
2018-07-25 00:54:36
阅读次数:
260
一.运行时数据区 1.线程共享和线程私有: 01.线程共享: 堆,方法区 02.线程私有: 虚拟机栈,本地方法栈,程序计数器 2.程序计数器 当前线程执行字节码文件的行号指示器 能够在线程切换之后,找到自己正确的位置 是唯一一个不会导致内存泄漏(OutOfMemory,OOM)的区域 3.虚拟机栈: ...
分类:
其他好文 时间:
2018-07-24 13:10:51
阅读次数:
136
类加载器将字节码文件加载到内存中,同时在方法区中生成对应的java.land.class对象 作为外部访问方法区的入口。 类加载器的层次结构: 引导类加载器《 扩展类加载器《 引用程序类加载器《 自定义类加载器 1、引导类加载器加载jre/lib/rt.jar包下加载核心类库 2、扩展类加载器 负责 ...
分类:
编程语言 时间:
2018-07-22 00:17:20
阅读次数:
179
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。 Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编 ...
分类:
编程语言 时间:
2018-07-20 21:41:48
阅读次数:
240
前言 简单的针对JAVA虚拟机(JVM)相关知识做一个总结,从此章开始这是一个系列文章,包括内容有; 1 前端编译,AOT(静态编译),JIT即时编译 2 字节码文件的结构,类加载机制以及运行时内存区域 3 关于对象的创建,内存的分配,访问的定位,判断对象是否可用,内存的回收 4 对象内存分配及垃圾 ...
分类:
其他好文 时间:
2018-07-18 17:19:46
阅读次数:
147
javap: 反编译工具, 可用来查看java编译器生成的字节码 参数摘要: -help 帮助 -l 输出行和变量的表 -public 只输出public方法和域 -protected 只输出public和protected类和成员 -package 只输出包,public和protected类和成 ...
分类:
编程语言 时间:
2018-07-17 00:12:07
阅读次数:
341
下载地址: "网盘下载" jQuery是目前应用最广泛的JavaScript框架之一,已经成为微软ASP.NET、Visual Studio和诺基亚Web Run Time等主流开发平台的重要组成部分。借助jQuery的魔力,数十行JavaScript代码可以被神奇地压缩成区区几行,诸多Web开发人 ...
分类:
Web程序 时间:
2018-07-14 18:25:06
阅读次数:
236
方式1:通过Object类的getObject()方法 方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单)。 方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可) 注意:第三种 ...
分类:
编程语言 时间:
2018-07-11 12:39:56
阅读次数:
189