购物网站线下推广办法,android开发应用,新余建网站,想转行做网站我是一个计算机专业研0的学生卡蒙Camel#x1f42b;#x1f42b;#x1f42b;#xff08;刚保研#xff09;
记录每天学习过程#xff08;主要学习Java、python、人工智能#xff09;#xff0c;总结知识点#xff08;内容来自#xff1a;自我总结网上借鉴#xff0…我是一个计算机专业研0的学生卡蒙Camel刚保研
记录每天学习过程主要学习Java、python、人工智能总结知识点内容来自自我总结网上借鉴
希望大家能一起发现问题和补充也欢迎讨论文章目录 Java基础概念和常识Java的语言特点JVM、JDK、JRE三者关系Java的解释器和编译器AOT技术Java和C的区别 Java基础概念和常识
Java的语言特点
平台无关性Java的“编写一次运行无处不在”哲学是其最大的特点之一。Java编译器将源代码编译成字节码bytecode该字节码可以在任何安装了Java虚拟机JVM的系统上运行。面向对象Java是一门严格的面向对象编程语言几乎一切都是对象。面向对象编程OOP特性使得代码更易于维护和重用包括类class、对象object、继承inheritance、多态polymorphism、抽象abstraction和封装encapsulation。内存管理Java有自己的垃圾回收机制自动管理内存和回收不再使用的对象。这样开发者不需要手动管理内存从而减少内存泄漏和其他内存相关的问题。
JVM、JDK、JRE三者关系
关系图 JVMJava 虚拟机Java Virtual Machine, JVM是运行 Java 字节码的虚拟机。 作用将Java字节码(java编译器生成)解释或编译成机器码并且执行。 功能内存管理、垃圾回收、安全性等 JDK JDKJava Development Kit是一个功能齐全的 Java 开发工具包供开发者使用用于创建和编译 Java 程序。它包含了 JREJava Runtime Environment以及编译器 javac 和其他工具如 javadoc文档生成器、jdb调试器、jconsole监控工具、javap反编译工具等。 JRE是Java运行时环境是Java程序运行所需的最小环境。它包含了JVM和一组Java类库用于支持Java程序的执行。JRE不包含开发工具只提供Java程序运行所需的运行环境。 Java的解释器和编译器
编译型编译型语言会通过编译器将源代码一次性翻译成可被该平台执行的机器码。一般情况下编译语言的执行速度比较快开发效率比较低。解释型解释型语言会通过解释器一句一句的将代码解释interpret为机器代码后再执行。解释型语言开发效率比较快执行速度比较慢。 在字节码(.class)到机器码的过程中会有解释和编译两种方式
在这一步 JVM 类加载器首先加载字节码文件然后通过解释器逐行解释执行这种方式的执行速度会相对比较慢。有些方法和代码块是经常需要被调用的(也就是所谓的热点代码)所以后面引进了 JITJust in Time Compilation 编译器而 JIT 属于运行时编译。
AOT技术
JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation) 。和 JIT 不同的是这种编译模式会在程序被执行前就将其编译成机器码属于静态编译。 优点 相比JIT效率更高。 AOT 避免了 JIT 预热等各方面的开销可以提高 Java 程序的启动速度避免预热时间长。 缺点 AOT 编译无法支持 Java 的一些动态特性如反射、动态代理、动态加载、JNIJava Native Interface等。
Java和C的区别 编译与解释 Java编译解释共存一处编译随处运行。 c是编译型的换个操作系统要重新编译。 内存访问 Java 不提供指针来直接访问内存程序内存更加安全。 C提供指针访问内存 继承 Java 的类是单继承的但是java接口可以多继承 C 支持多重继承(一个类可以从多个基类派生) 垃圾回收 Java 有自动内存管理垃圾回收机制(GC)不需要程序员手动释放无用内存。 重载 Java只支持方法重载 C支持方法重载和操作符重载