1.1 java属于解释执行还是编译执行
首先,我们要知道解释执行和编译执行的区别:
解释执行——程序运行时,将源文件逐行解释为机器语言执行
编译执行——程序运行前,将源文件全部编译为机器语言再执行
而Java是一种特殊的解释型语言(首先将java的类文件编译成jvm能识别的字节码文件,然后针对热点方法,利用JTT即时编译技术,编译执行,而对于非热点方法,采用的则是解释执行),整体过程如下:Java文件在运行前先被编译(工具:javac.exe)成字节码文件(class文件),然后在虚拟机中被解释(工具:java.exe或javaw.exe(非阻塞执行))运行。
1.2 java的语言特性
java属于面向对象语言,具备封装,继承,多态三大特性。
封装:每个类不对外暴露其构造和实现,只展示自身的功能与作用
继承:同一父类的子类共同持有父类的公有(非private)资源
多态:同一父类的子类对于父类公有方法或资源,可以具备不同的表达方式
1.3 java语言的版本特性
a: JDK1.1
1、反射
2、内部类
b: JDK1.2
1、集合API(Map,List,Set)
c: JDK1.4
1、IO API
2、文本正则表达式
3、xml
4、日志Api
d: JDK1.5
1、自动装箱与拆箱:
2、枚举(常用来设计单例模式)
3、静态导入
4、可变参数
5、内省
e: JDK1.6
1、Web服务元数据
2、脚本语言支持
3、JTable的排序和过滤
4、更简单,更强大的JAX-WS
5、轻量级Http Server
6、嵌入式数据库 Derby
f: JDK1.7
1、switch中可以使用字串了
2、运用List tempList = newArrayList<>(); 即泛型实例化类型自动推断
3、语法上支持集合,而不一定是数组
4、新增一些取环境信息的工具方法
5、Boolean类型反转,空指针安全,参与位运算
6、两个char间的equals
7、安全的加减乘除
8、map集合支持并发请求,且可以写成 Map map ={name:"xxx",age:18};
g: JDK1.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()方法会返回该对象。)
h:JDK1.9
1、Jigsaw 项目;模块化源码
2、简化进程API
3、轻量级 JSON API
4、钱和货币的API
5、改善锁争用机制
6、代码分段缓存
7、智能Java编译, 第二阶段
8、HTTP 2.0客户端
9、Kulla计划: Java的REPL实现
1.4 Java语言的平台分类
1.5 jdk文件目录
-bin目录: JDK开发工具的可执行文件
-lib目录: 开发工具使用的归档包文件
-jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,
但不包含开发环境中的开发工具
-demo: 含有源代码的程序示例
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术。
1.6 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.7 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安全稳定
1.8 java为什么能火
说性能,java弱于C,说编码复杂度,java不如py,当为啥java能稳坐编程语言宝座这么多年?首先我们从学习者角度从发,学习java,我们拥有丰富的资源,用人单位聘用java人数也最多,而且java具备丰富的生态系统,几乎每个功能点,都有相应的解决方案,不需要自己费心费力去创造。再从公司角度出发,java稳定,安全可靠,而且采用JIT技术后性能与C比也弱不了多少,而且java的项目结构,更适合团队协作,以及后期扩展。
由此,综合考量,java更加适合想要从事编程的人来学习,也适合公司进行项目开发管理,所以java必须火。
更多推荐
JAVA基础(一)——什么是java
发布评论