01认识Java

前言

再有两个月就秋招,要复习之前学过的东西了。我一直没写过博客,就借着复习把知识点整理成文章发出来,一是为了巩固自己的知识,二是希望能和友友们一起交流。

01认识Java

关于Java语言本身有哪些是我们要了解,并且能给面试官流利的讲出来的呢?

面试不就是吹牛逼吗?把这些东西都背背,到时候不至于和面试官没话讲。

Java是如何实现可移植性的呢?

可移植的意思就是,我们写的Java程序可以放到多个平台去运行,比如Linux或者Windows。实现可移植性的本质就在于不直接使用平台,而是在平台上装一个虚拟机,让虚拟机去运行程序,这样我们只需要面向虚拟机开发程序,然后让虚拟机去匹配不同的平台,从而实现了程序的可移植性。Java也是这样做的,JVM就是Java提供的用来运行Java程序的虚拟机,开发者只需要面向JVM进行开发,然后由JVM去适配不同的平台,从而实现Java程序的可移植性。

JVM、JRE、JDK都分别表示什么?

JVM(Java Virtual Machine,Java虚拟机):Java程序的运行平台,负责将Java的字节码(class文件)解释为机器码(0101二进制那种)并执行。

JRE(Java Runtime Environment,Java运行时环境):包含JVM和运行Java程序时所需要的一些类库。

JDK(Java Development Kit,Java开发工具集):包含JRE和开发Java程序所需要的一些工具和类库

说一下Java语言有什么特点。

那就说6个吧。

  1. Java是面向对象的编程语言,这使Java开发的代码有着更好的结构定义,更加易于维护。
  2. 可移植性,基于JVM实现,能够做到一次编译,到处运行。
  3. 引用传递,当时学习C语言时遇到指针很头大,但是Java中没有指针的概念,是通过引用来解决内存处理问题的,用起来更简单。
  4. 适合分布式计算,Java语言设计的初衷就是为了更好的解决网络通信问题,所以它的设计结构有着高性能的分布式计算的能力,并且还有很强的网络吞吐力。
  5. 多线程编程支持,Java在多线程处理方面性能很强,并且给开发者提供了JUC多线程开发框架,用起来很舒服。
  6. 函数式编程,虽然Java是一门面向对象的编程语言,但是Java支持函数式编程(Lambda表达式),在某些地方使用函数式编程能让代码变的更加简洁。
讲一下JDK有哪些经典的版本吧。

95年,JDK1.0发布,标志着Java诞生。

05年,JDK1.5推出,带来新特性有泛型、自动装箱与拆箱、增强for循环、枚举、可变参数、静态导入等。

14年,JDK1.8推出(*),支持Lambda表达式、Stream API、新的日期和时间API等。

18年,JDK11推出(*),提供了HTTP Client API、ZGC等,是长期维护版。

19年,JDK13推出,增加了yield关键字和多行字符串定义支持等。

CLASSPATH环境属性和JAVAHOME环境属性是干什么用的?

CLASSPATH:

开启JVM进程需要一个明确的类加载路径,这个类加载路径就是通过CLASSPATH环境属性指定的,默认情况下会指向当前目录。

JAVAHOME:

该环境属性定义的是JDK的程序目录。项目开发中,一些依赖Java环境的应用可以通过JAVAHOME找到要使用的JDK。比如Tomcat,它是基于Java的web容器,它的运行必须要具有Java的支持,所以你如果不配置JAVAHOME,你的Tomcat是跑不起来的。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值