JAVA基础一——什么是java

1.1  java概述

        Java是一种特殊的解释型语言(编译型语言:在程序执行前,有一个单独的过程,将程序直接编译成机器语言,以后运行时都不用再编译;解释型语言:在程序运行时,将源文件解释成机器语言),Java文件在运行前先被编译(工具:javac.exe)成字节码文件(class文件),然后在虚拟机中被解释(工具:java.exejavaw.exe(非阻塞执行))运行。

1.1.1 java语言的由来

        詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun(Stanford University Network,斯坦福大学网络公司) )公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

1.1.2 java语言的版本特性

       96年SUN JDK 1.0 class VMWare、Visual

       97年JDK 1.1:具有AWT、内部类、JDBC、RMI、反射

       98年JDK 1.2:有JIT解析器、精确内存管理、提升GC性能

       2000年JDK 1.3:Hotspot发布默认的虚拟机

       2002年JDK 1.4:引入处理文本的正则表达式、XML和XSLT库、SSL支持、日志API与加密支持

       2004年JDK 1.5:具有泛型、注解、装箱、枚举、可变长的参数、foreach循环等

       JDK 1.6:具有脚本语言支持、JDBC 4.0

       JDK 1.7:延时推出,G1,动态语言增强、64位系统中的压缩指针、NIO 2.0

       2014 JDK 1.8:lambda表达式、语法增强、java类型增强,实现在JVM中运行JavaScript

       2016 JDK1.9:模块化

主要变更

1.5

1.自动装箱与拆箱:
2.
枚举(常用来设计单例模式)
3.
静态导入
4.可变参数
5.
内省
1.6
1.Web服务元数据
2.
脚本语言支持
3.JTable
的排序和过滤
4.
更简单,更强大的JAX-WS
5.
轻量级Http Server
6.
嵌入式数据库 Derby
1.7
1.
switch中可以使用字串了
2.
运用List tempList = newArrayList<>(); 即泛型实例化类型自动推断
3.
语法上支持集合,而不一定是数组
4.
新增一些取环境信息的工具方法
5.Boolean
类型反转,空指针安全,参与位运算
6.
两个char间的equals
7.
安全的加减乘除
8.map
集合支持并发请求,且可以写成 Map map ={name:"xxx",age:18};
1.8
1.
允许在接口中有默认方法实现
2.
Lambda表达式
3.
函数式接口
4.
方法和构造函数引用
5. Lambda
的范围
6.
内置函数式接口
7. Streams
8. Parallel Streams
9. Map
10.
时间日期API
11. Annotations
12.Optional(这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。)
1.9
1. Jigsaw
项目;模块化源码
2.
简化进程API
3.
轻量级 JSON API
4.
钱和货币的API
5.
改善锁争用机制
6.
代码分段缓存
7.
智能Java编译, 第二阶段
8. HTTP 2.0
客户端
9. Kulla
计划: JavaREPL实现

1.1.3 Java语言的平台分类

      JAVA基础一——什么是java_第1张图片

1.1.4 jdk文件目录

-bin目录: JDK开发工具的可执行文件 
-lib目录: 开发工具使用的归档包文件
-jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,
        但不包含开发环境中的开发工具
-demo: 含有源代码的程序示例
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术。

1.1.5 java源程序与类class的关系

a、Java源程序的文件名一定要和文件中某个类名称一致(运行异常,找不到main函数)

b、public类的名称一定与Java源程序的文件名一致(否则,编译异常)

c、一个Java源程序可获得一个或多个字节码文件

1.2 JVM、JRE、JDK关系

1.2.1 什么是跨平台?

平台:指的是操作系统(Windows,Linux,Mac)

跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行

原理:不同的编译器对于不同平台,获取后的class文件在相同JVM中运行

1.2.2 JVM、JRE 、JDK说明

A:什么是JVM

JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台

B:什么是JRE(运行环境

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

               JRE:JVM+类库+运行工具(java.exe。 

C:什么是JDK(开发环境

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 运行工具(java.exe 打包工具(jar.exe)

D:为什么JDK中包含一个JRE

             JDK若无JRE则缺少虚拟机,而开发完的程序,需要运行一下看看效果。

E:JDK,JRE,JVM的作用和关系

JDK包含JRE 和开发工具包              JRE包含 核心类库和JVM

F:环境配置注意事项

JRE不可以安装在JDK内部(javac无法执行),CLASSPATH最好不配置

1.3  JAVA与其他语言对比

1.3.1 JAVA与C对比

        1、JAVA面向对象,C面向过程

        2、JAVA跨平台,C需要重新编译

        3、JAVA没有指针,无法高效运算

        4、JAVA能自动垃圾回收

        5、JAVA无法直接管理内存

        6、JAVA没有预处理器

1.3.2 JAVA与C++

        1、JAVA采用值传递

        2、JAVA不能多继承

        3、JAVA无法重载运算符

1.3.3 JAVA与PHP

        1、JAVA是静态语言,PHP是动态语言

        2、JAVA支持多线程,PHP不支持

总结:PHP快捷 、C高性能、JAVA安全稳定

    


你可能感兴趣的:(java基础知识)