一、what-什么是Java?
Java是一种面向对象的编程语言,其他面向对象的编程语言还有C#,C++,Python,Python,golang,VB等。
1、和其他语音对比
对比项\语言 | C | C++ | Java |
上线时间 | 1972年 | 1979年 | 1995年 |
特点 | 面向过程 | 面向对象 | 面向对象 |
特点 | 不需要任何运行环境; 编译简单,产生少量机器码; 移植性; 丰富的数据结构; 丰富的运算符; | 完全兼容C语言; 数据封装和隐藏; 继承; 多态; | 适合大型软件的设计和开发; 一次编译,到处执行; 封装; 继承; 多态; 简单; 自动垃圾回收; |
缺点 (三种语言对比) | 不适合大型项目; 封装性差,复用性差,不安全; 语法限制不严格; 对数组下标越界不作检查; 指针,可操作硬盘,不安全; 手动释放内存; | 支持多继承; 学习成本相较Java较高; 手动释放内存; | 运行速度相对较慢(多一层jvm)但随着对jvm的优化,性能已经提升; 不能直接操作底层; 没有指针,不够灵活; |
* 缺点这一栏,主要想突出该语言的特点在一些情况下可能产生的问题。个人认为缺点和优点都是相较的,最适合研发场景需要的就是最好的。
2、Java语言的特点
Java是用C++实现的,保留了C++的优点,如面向对象;丢弃了指针等容易使程序崩溃的内容,提升了语言的健壮性;去掉了头文件,指针,结构,联合等,学习起来更简单;通过jvm实现平台无关性;支持数据分布和操作分布,提供一整套网络类库,开发人员可以利用类库进行网络程序设计,方便地实现Java语言的分布式特性;对数组和字符串访问越界检查,并提供异常处理,可靠性高;天然支持多线程;支持网络编程;Java的编译器将源码(.java)编译成字节码(.class),字节码(.class)由解释器翻译成二进制码,使程序执行。同时Java支持即时编译JIT(把热点代码编译成本地相关的机器码保存下来,下次可减少编译时间,直接执行)。
3、JDK,JRE
JDK:Java development kit -Java开发工具,包含Java语言、Java虚拟机、Java类库,是支持Java程序开发的最小环境。
JRE:Java runtime environment -Java运行环境,包含JavaSE中核心类库API和Java虚拟机,简单理解为JVM+核心类库API。
JVM(Java Virtual Machine)Java虚拟机,运行于各种操作系统Linux,Windows,Solaris等之上,执行编译好的Java字节码class文件。
JDK= JRE+一些工具类
4、Java基础 (后面的文章会一一讲到)
语法基础;
面向对象;
Exception;
Array;
基础类;
I/O Stream;
Collection /Generic;
Thread;
TCP、UDP;
GUI;
Meta data;
Regular Expression;
5、Java的发展体系
JDK初步:作为其他方向的基础;
JavaWeb编程:针对Web程序;
J2EE:企业级应用
二、where-用在什么地方?
三、when-什么时候用?
任何时候,都可以考虑使用Java作为开发语言。
四、who-什么人使用?
有一定计算机基础,理解能力。
五、why-为什么用Java?
1、面向对象;
2、具备平台无关性,提供程序运行的解释环境,一次编译,导出执行-JVM;
3、健壮性,吸收了C/C++的特点,去掉了影响健壮性的部分(如指针,内存申请和释放)-垃圾收集;
4、内置安全;
Java的核心机制:JVM,垃圾收集机制。
JVM屏蔽了底层运行平台的差异,使开发专注在应用开发。JVM将源代码编译成.class文件,由JVM将字节码编译成对应的操作系统能执行的文件,该操作系统只需要安装对应的JVM即可,实现一次编译,到处执行。对比C/C++,只能一次将代码编译成对应的操作系统能执行的文件,操作系统不一样时,需要重新编译。JVM就相当于Java程序的操作系统,JVM的可执行文件是.class文件。需要注意的是,JVM为Java程序屏蔽了操作系统的差异,但不同的操作系统需要运行不同的JVM。
六、how-如何使用?
具体安装流程,网上的优秀文章多,本文将不再赘述。可以阅读:
Java基础:Java开发环境下载以及安装【详细】_jdk1.8.0_251_1024de小shen的博客-CSDN博客 等博客。
值得注意的是,在配置时,关于path和classpath。
path:系统路径,Windows系统执行命令查找路径;
classpath: 类路径,Java文件编译和执行查找class文件命令的查找路径;
以上就是我对Java总体上的了解,感谢大家的阅读。