Java学习笔记1——Java介绍

JVM、JRE与JDK区别

1、JVM(Java Virtual Machine):Java的虚拟机,使得Java程序可以在各个平台上运行,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码)
2、JRE(Java Runtime Enviroment):Java程序运行时环境,包括JVM和运行时需要的核心类库
3、JDK(Java Development Kit):Java开发的工具包,包括JRE和开发人员使用工具。其中开发工具:编译工具(javac.exe)、和运行工具(java.exe)
JDK、JRE、JVM关系
4、扩展点
字节码:在 Java 中,JVM 可以理解的代码就叫做 字节码 (即扩展名为 .class 的⽂件),它不⾯向任何特定的处理器,只⾯向虚拟机。Java 语⾔通过字节码的⽅式,在⼀定程度上解决了传统解释型语⾔执⾏效率低的问题,同时⼜保留了解释型语⾔可移植的特点。所以 Java 程序运⾏时⽐⾼效,⽽且,由于字节码并不针对⼀种特定的机器,因此,Java 程序⽆须重新编译便可在多种不同操作系统的计算机上运⾏。
Java 程序从源代码:
在这里插入图片描述
.class文件到机器码 这⼀步。在这⼀步 JVM 类加载器⾸先加载字节码⽂件,然后通过解释器逐⾏解释执⾏,这种⽅式的执⾏速度会相对⽐᫾慢。⽽且,有些⽅法和代码块是经常需要被调⽤的(也就是所谓的热点代码),所以后⾯引进了 JIT(Just-In-Time Compiler即时编译器) 编译器,⽽ JIT 属于运⾏时编译。当 JIT 编译器完成第⼀次编译后,其会将字节码对应的机器码保存下来,下次可以直接使⽤。⽽我们知道,机器码的运⾏效率肯定是⾼于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语⾔。

Java 和 C++的区别?

  • 都是⾯向对象的语⾔,都⽀持封装、继承和多态
  • Java 不提供指针来直接访问内存,程序内存更加安全
  • Java 的类是单继承的,C++ ⽀持多重继承;虽然 Java 的类不可以多继承,但是接⼝可以多继承。
  • Java 有⾃动内存管理机制,不需要程序员⼿动释放⽆⽤内存
  • 在 C 语⾔中,字符串或字符数组最后都会有⼀个额外的字符‘\0’来表示结束。但是Java 语⾔中没有结束符这⼀概念。这是⼀个值得深度思考的问题,具体原因推荐看这篇章:
    https://blog.csdn.net/sszgg2006/article/details/49148189

Oracle JDK 和 OpenJDK 的对比

Oracle JDK 版本构建过程基于 OpenJDK 7 构建,只添加了⼏个部分,即Oracle JDK 包括了Open JDK.
OpenJDK 项⽬主要基于 Sun 捐赠的 HotSpot 源代码。

Java SE、Java EE、Java ME区别

安装了JSK对3种版本都支持
1. Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。

2. Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。一般学习就学习EE

**3. Java ME(Java Platform,Micro Edition)。**这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

说得更简单点

Java SE 是做电脑上运行的软件。

Java EE 是用来做网站的-(我们常见的JSP技术)

Java ME 是做手机软件和嵌入式的。

参考:
1、http://developer.51cto.com/art/200906/130215.htm
2、JavaGuide公众号JAVA面试突击文档
3、黑马教学视频

才开始学习JAVA,笔记有不对的地方,大家多多指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值