Java底层知识学习:Bytecode and JMM】的更多相关文章

最近在跟着耗子哥的程序员练级指南学习Java底层知识,结合<深入理解Java虚拟机>这本书在看,写笔记,看资料,成长中…… 目前看完了第二章JMM和各内存区OOM的情况 一篇图文并茂介绍字节码的文章: https://mahmoudanouti.wordpress.com/2018/03/20/introduction-to-java-bytecode/ 18-07-31更新: 现在已经看完了前五章,从第六章开始,六七八章开始涉及Class的文件构成是什么?类加载的五个步骤“加载.验证.准备.…
Java 字节码相关 字节码编程,也就是动态修改或是动态生成 Java 字节码.Java 的字节码相当于汇编,其中的一些细节. Java Zone: Introduction to Java Bytecode ,这篇文章图文并茂地讲述了 Java 字节码的一些细节. IBM DeveloperWorks: Java bytecode ,讲 Java 字节码的文章. Java Bytecode and JVMTI Examples,这是一些使用 JVM Tool Interface 操作字节码的比…
GUI开发 先前用Java编写GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).现在多用Swing.Swing可以看作是AWT的改良版,而不是代替AWT,是对AWT的提高和扩展.所以,在写GUI程序时,Swing和AWT都要作用.它们共存于Java基础类(Java Foundation Class,JFC)中. AWT依赖于主平台绘制用户界面组件:而Swing有自己的机制,在主平台提供的窗口中绘制和管理界面组件.Swing与AWT之间的最明显的区别是界面组…
在云笔记项目中,补充了部分反射的知识,反射这一部分基础知识非常重要,前面学习的框架Spring和MyBatis读取xml配置文件创建对象,以及JDBC加载驱动等都用了反射,但只知道有这个东西,具体不知道怎么用,大概的原理是怎么样的,现在简单的记录下 什么是反射 反射(Reflection)是Java提供的动态执行机制,可以动态加载类,动态创建对象,动态获取类信息,比如接口信息,方法信息,属性信息,构造信息等.并可以通过获取到的信息动态创建对象,动态调用方法等.如果想更好的感受反射,可以从静态执行…
本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运行在服务端.在我一开始学习JavaScript时候,曾经以为JavaScript除了借助java推广自己,在语言层面其实没多少相似性.但当真正学了java之后 发现,JavaScript和java的基础知识是有很多难以想象的相似性的.我猜测或许JavaScript设计者当初起名字为JavaScrip…
面向对象部分 首先要了解面向对象的思想,与C#一致,都是面向对象的语言 访问修饰符 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private 私有的,在同一类内可见. 默认的 在同一包内可见.默认不使用任何修饰符 子类继承使用"extend",而不是C#中的 ":" class Dog class Teddy extends Dog 子类方法的访问范围只能比父类方法的访问范围大 变量的作用域分为四个级别: 类…
部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Java web开发,这个系列主要记录个人学习过程以及遇到的问题. 参考教程:http://www.weixueyuan.net/java/rumen/ 环境配置: JDK 1.7 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/…
1.什么是Java编程语言 Java是:一种编程语言.一种开发环境.一种应用环境.一种部署环境 2.Java编程语言的主要目标 (1)提供一种解释环境为:提高开发速度.代码可移植性.使用户能运行不止一个活动线程.当程序运行时,能动态支持程序改变.提供更好的安全性       提高开发速度──消除编译─链接—装载—测试周期.       代码可移植性──使操作系统能为运行环境做系统级调用 为运行不止一个活动线程的程序提供了一种方式 通过允许下载代码模块,从而当程序运行时也能动态支持程序改变. 为那…
IO操作 5个重要的类分别是:InputStream.OutStream.Reader.Writer和File类 面向字符的输入输出流 输入流都是Reader的子类, CharArrayReader 从字符数组读取的输入流 BufferedReader 缓冲输入字符流 PipedReader 输入管道 InputStreamReader 将字节转换到字符的输入流 FilterReader 过滤输入流 StringReader 从字符串读取的输入流 LineNumberReader 为输入数据附加…
线程(续) 线程同步 当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用.达到此目的的过程叫做同步(synchronization) 可以用两种方法同步化代码.两者都包括synchronized关键字的运用 同步方法 在某一时刻,必须限制只有一个线程可以支配它.为此,只需在方法定义前加上关键字synchronized synchronized void call(String msg) { //TO DO } 同步语句 类似C#中的lock(),将需要同步的代…