@Author : By Runsen

本专栏是零基础学java的第一篇

Java入门和环境安装(一)

文章目录

  • 1、Java入门
    • 1.1 了解Java
    • 1.2 选择Java版本
    • 1.3 下载jdk
  • 2、Java面试题
    • 2.1 JVM JDK 和 JRE的区别
    • 2.2 Oracle JDK 和 OpenJDK 的对比

1、Java入门

1.1 了解Java

Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。

我先把Java特性:都列举出来,下面专栏的文章都是基于Java特性的

  • 面向对象(封装,继承,多态)
  • 平台无关性(JVM运行.class文件)
  • 语言(泛型,Lambda)
  • 类库(集合,并发,网络,IO/NIO)
  • JRE(Java运行环境,JVM,类库)
  • JDK(Java开发工具,包括JRE,javac,诊断工具)

1.2 选择Java版本

Java 8是于2014年3月14号发布。从Java 8开始开发代号已经弃用了,所以从Java 8之后已经没有官方的开发代号了。

我们来看看Java SE的历史:

  • JDK Beta - 1995JDK 1.0 -
  • 1996年1月JDK 1.1
  • 1997年2月J2SE 1.2
  • 1998年12月J2SE 1.3
    • 2000年5月J2SE 1.4
  • 2002年2月J2SE 5.0
  • 2004年9月Java SE 6
  • 2006年12月Java SE 7
  • 2011年7月Java SE 8(LTS)
  • 2014年3月Java SE 9
  • 2017年9月Java SE 10(18。3)
  • 2018年3月Java SE 11(18.9 LTS)
  • 2018年9月Java SE 12(19。3)

目前Java 14 GA(General Availability) 版本已经于2020年3月17日发布。

Java的一共有三个版本,分别是JavaSE,JavaME和JavaEE。

  • JavaSE:标准版(桌面应用程序)
  • JavaME:嵌入式开发(手机、家电)(不是很了解)
  • JavaEE:企业级开发(服务器开发、web开发)(Out了)

我们使用的JavaSE,你可以下面Java11或者Java8版本进行学习,不建议下载Java14进行学习。

1.3 下载jdk

下载jdk这个很简单,你可以查看百度教程: https://jingyan.baidu.com/article/e75aca85b29c3b142edac6a8.html

菜鸟教程:https://www.runoob.com/java/java-environment-setup.htm

这两个教程不错。

这里提下需要设置环境变量,

JAVA_HOME  :C:\Program Files\Java\jdk1.7.0_04

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

设置完成后,直接java -version查看Java版本。

2、Java面试题

下面写下Java面试题,经常出现,大家需要搞定。

2.1 JVM JDK 和 JRE的区别

我们日常会接触到 JRE(Java Runtime Environment)或者 JDK(Java Development Kit)。 JRE,也就是 Java 运行环境,包含了 JVM 和 Java 类库,以及一些模块等。而 JDK 可以看作是 JRE 的一个超集,提供了更多工具,比如编译器、各种诊断工具等。

Java虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。

什么是字节码?采用字节码的好处是什么?

在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。

Java 程序从源代码到运行一般有下面3步:

Java虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。

JDK是Java Development Kit,它是功能齐全的Java SDK。它拥有JRE所拥有的一切,还有编译器(javac)和工具(如javadoc和jdb)。它能够创建和编译程序。

JRE 是 Java运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java虚拟机(JVM),Java类库,java命令和其他的一些基础构件。但是,它不能用于创建新程序。

简单来说,JRE可以支撑Java程序的运行,包括JVM虚拟机(java.exe等)和基本的类库(rt.jar等),JDK可以支持Java程序的开发,包括编译器(javac.exe)、开发工具(javadoc.exe、jar.exe、keytool.exe、jconsole.exe)和更多的类库(如tools.jar)等。

2.2 Oracle JDK 和 OpenJDK 的对比

上面我们安装的是Oracle JDK ,也就是sunjdk。

Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一次;

OpenJDK是Java SE Platform Edition的免费开源实现。它最初于2007年发布,是Sun Microsystems于2006年开始开发的结果。

OpenJDK主要用于linux系统,在响应性和JVM性能方面,Oracle JDK与OpenJDK相比提供了更好的性能;

一、Java入门和环境安装相关推荐

  1. Java入门及环境搭建idea安装和简单使用

    Java入门及环境搭建 什么是Java Java Java是一门新的语言特点是: 语法有点像c 没有指针 没有内存管理 真正的可移植性,编写一次,到处运行. 面向对象 类型安全 高质量的类库 - Ja ...

  2. 【Java全栈学习笔记:第一阶段:JavaSE】:Java入门及环境搭建

    Java全栈课程网站: KuangStudy JavaSE课程地址: 狂神说Java 参考书籍:Java大学实用教程(第四版) 目录 Java入门及环境搭建 Java帝国的诞生 Java发展 Java ...

  3. Java入门与环境搭建

                                                                                         Java入门与环境搭建 软件 ...

  4. 从 X 入门Pytorch——环境安装建议,Tensor多种构造方式,Tensor的基本操作

    本文参加新星计划人工智能(Pytorch)赛道: https://bbs.csdn.net/topics/613989052 满打满算,入门CV的坑已经快一年了,现在忙着换模型,加模块,看效果. 但是 ...

  5. mysql tomocat vs2005_C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

    要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置好JDK环境.Mysql服务.Tomcat 服务 目的: 解决客户在安装软件的复 ...

  6. ubuntu java ide,ubuntu 环境 安装 C++ IDE Eclipse

    ubuntu下的c/c++开发IDE环境搭建: 1.准备工作 JDK(点击就可以链接到下载地址).Eclipse.我的两个包:eclipse-inst-linux64.tar.gz,jdk-8u65- ...

  7. java简介以及环境安装

    java2标准版, JavaSE,桌面程序,控制台开发 java2标准版, JavaME,嵌入式开发,手机,小家电 java2标准版,JavaEE,E企业级开发,服务器,WEB端,服务端 [外链图片转 ...

  8. java一键_Java环境安装-Java环境一键安装下载免安装版-西西软件下载

    Java环境一键安装,一键安装包,安装Java环境,无需用户手动安装操作,非常便利,由论坛大神整合,双击运行程序可一键配置环境,可以根据需求来进行选择.本次带来Java环境一键安装工具下载,需要配置J ...

  9. jfreechart java配置_JFREECHART环境安装配置

    [环境:操作系统Centos 7 64-bit3台节点 ip        主机名   10.91.99.101 master10.91.99.102 slave110.91.99.103 slave ...

最新文章

  1. 《自然语言处理中的因果推理》综述论文,以色列理工谷歌等13位NLP大牛阐述因果推理NLP的估计、预测、解释和超越...
  2. java 链表反转_LeetCode206 实现单链表的反转
  3. Linux服务器开发之:chmod()函数,chmod命令,以及文件屏蔽umask命令,程序修改umask,详细介绍+案例演示
  4. linux下安装mysql-5.6.41
  5. PYPL 12月榜单发布,编程语言、IDE与数据库市场如何?
  6. linux 测试程序性能,推荐一款Linux系统的性能测试软件
  7. 优秀学生专栏——孙振涛
  8. 设计模式(结构型模式)——装饰模式(Decorator)
  9. python 小说数据挖掘_Python 中的实用数据挖掘
  10. 计算机应用考试上机试,电大计算机应用考试机试实操ABCD.docx
  11. 《YOLO系列原理实战笔记》高清.pdf
  12. Python基础项目:超市购物管理系统
  13. Android的当前应用启动第三方应用(跨软件启动页面)
  14. [BUG 记录] Ubuntu下Tesla M40与其他N卡共存安装
  15. 【C++编程题】字符串子串替换
  16. 声明:博客内容不得用于商业用途,仅做学习交流。
  17. 遭遇盗取网络游戏帐号木马等
  18. css3绘制的钢琴代码
  19. skewx 字体模糊_为什么网站设计宋体消除锯齿要用无,而其他字体如黑体用平滑,还有英文字体要用那种消除锯齿方式?...
  20. 移植AT91Bootstrap1.15

热门文章

  1. oracle一个表更新另一个表多列,oracle sql更新表中多列值,值是从其它表中查询(select)得出...
  2. sap 获取计划订单bapi_sapbapi的清单.doc
  3. 双击背面截图_ios14怎么轻点双击背面截屏 敲击苹果手机背部截图设置教程
  4. es6 Map、Set和Array.from()
  5. android里面画布快照,自定义 View - Canvas - 画布操作和快照
  6. 【atcoder】GP 2 [agc036C]
  7. 16 input默认样式清除
  8. 【BCFTOOLS】按样本拆分VCF文件
  9. More is better
  10. 利用bind搭建dns