JAVA基础知识(一)

Java基础知识(一)


前言

由于博主已经大三了,即将面临毕业找工作的难题~~,所以希望能够通过写一系列的java基础知识的博客来帮助自己复习,当然如果能帮助到想要学习java的小伙伴就更好了QWQ
(本文的大部分知识点都出自于SnailClimb大神,大神的github地址: https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/basis/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md#11-java-%E5%85%A5%E9%97%A8%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5%E4%B8%8E%E5%B8%B8%E8%AF%86 )


提示:以下是本篇文章正文内容

一、JAVA的特点是什么?

1.简单易学
2.面向对象(封装继承多态)
3.依赖jvm而实现的平台无关性
4.可靠性
5.安全性(其中有一点是因为java未提供指针访问内存,所以相对    于c而言 程序能存更加安全)
6.支持网络内存并且便于进行网络编程。
7.相对而言效率并不是很高(代码量少并不意味着效率高!python   的效率更低!之后会单独有文章写为什么java的效率与c++低很   多)
8.多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
9.编译与解释共存

二、关于JDK、JRE和JVM

JDK 是 Java Development Kit 缩写,即JAVA开发工具,相比于JRE而言,他包含了JRE拥有的一切,并且额外包含了JAVAC编译器和一些JAVA工具(javadoc、jdb等等),

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

一般来说,如果仅仅需要运行JAVA程序的话,只需要安装有JRE就可以了,如果需要开发JAVA程序,则需要安装JDK,当然也有例外,例如,如果要使用 JSP 部署 Web 应用程序,那么从技术上讲,您只是在应用程序服务器中运行 Java 程序。(应用程序服务器会将jsp文件转为java servlet,并且需要jdk来编译servlet)。

重点:JVM(JVM很重要,详细的会在之后的文章说)
Java 虚拟机(JVM)是运行 Java 字节码的虚拟机(又称为JAVA核心虚拟机)。Java虚拟机是java具有跨平台性(平台无关性)的核心,jvm针对不同的平台有着特定的实现,通过先将java文件编译成class文件,然后再将class文件解释成机器码这种方式,保证了在不同平台的相同输入有相同输出这一特性。

字节码:在JAVA中。JVM可以理解的代码就被称为是字节码(class文件),字节码并不面向任何处理器、操作系统,只面向虚拟机。

Java的编译解释过程图解:
在这里插入图片描述

为什么java是编译与解释共存?

   首先,我们要先知道什么是编译型语言,什么是解释型语言?
简单地说,编译型语言即编译器一次性将源码编译成可以被机器执行的机器码,而解释型语言则是编译器将源码逐行翻译并且立即执行。
   如上图解,我们可以发现,java在处理源代码时需要先将源码编译成class文件,然后再将class文件翻译成机器码并执行。而在此过程中,源码–>class类似编译型语言,class–>机器码类似解释型语言,所以java编译与解释并存。(后来java引入了JIT编译器,这个过程略有改变)

三、JAVA和C++的对比(简略)

1.二者都是面向对象的语言(封装、继承和多态)
2.相比于c++,java 的执行效率较低
3.由于java并提供指针来访问内存,所以java的程序内存相对更为安全一些
4.java拥有多线程机制,而c++并无内置的多线程机制
5.java拥有内存垃圾自动回收机制(GC),而c++没有
6.java的只支持单继承,而c++的类支持多继承(值得注意的是。java的借口可以多继承)
7.Java中没有结束符这一概念


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值