"高尚,到卑劣地伪装。"
一、Java简介
Java是一种同C++/C一样,经久不衰的优秀语言,它具有赏心悦目,易于理解的语义。不仅如此,Java是一个有着一系列计算机软件和规范形成的体系,有良好的语言生态。这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
(1)Java语言特性
①简单性:
Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。恐怕学过C的会对指针十分头疼,学过C++的估计会对虚继承(支持多继承的弊端)头疼。
②面向对象:
Java同C++一样,都是一种面向对象的优秀语言。
③分布式(微服务):
Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
④健壮性:
Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
⑤安全性:
Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统
⑥解释性:
Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。
⑦多线程性:
多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
等等,本段只列举了几个特点。
(2)Wrice once,Run anywhere
不同于C\C++,Java可能没有严格按照,预处理、编译、汇编、链接,而是通过Java开发环境自带的编译器(JDK),生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。
Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。正因为有这个特性精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
而且其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行。
由此,Java程序的运行,其实是依赖自己的虚拟机(JVM)。
二、Java环境安装
(1)JDK、JVM
上述提到最多的就是这两个东东,那么这两个是什么呢?怎么安装呢?
JDK:Java SE Development Kit Java开发工具.
JRE : Java Runtime Environment Java运行环境.
如果要从事Java编程,则需要安装JDK(编译要求),如果仅仅是运行一款Java程序则JRE(运行要求)就满足要求。
(2)IDEA
除开直接去下载JDK,还有种方法就是去IDEA官网下载:IDEA集成开发环境
(3)Java环境变量配置
当我们下载好了JDK后,可以打开cmd命令行,看看是否配置了系统的环境变量。
Java环境环境变量配置:
JAVA_HOME:
值为JDK的安装目录。
CLASS_PATH:
是Java环境配置中要设置的一个环境变量,就是.class文件的路径,表示JVM从哪里去寻找要运行的class文件,CLASSPATH = D:\java表示执行java命令时去D:\java目录中去找需要被执行的class文件并运行。
PATH:变量值中 追加Java命令的路径,能够直接使用JDK中提供的命令。
JAVA_HOME:
PATH;
CLASSPATH:
三、开启第一个Java程序
那么我们的java环境也就搭建完成了。下面我们来写一个作为程序员打开编程大门的程序吧~
(1)运行HelloWorld.java
我们在java目录下创建一个xxx.java文件,如何让这个文件运行起来呢?我们知道,编译java源代码,需要的是javac,会把java源码转换成xxx.class的字节码格式,此时需要在JVM虚拟机上才能运行起来。
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello Wolrd");
}
}
(2)Java编写规范
括号规范:
只能存在一个public class且该类名同文件名相同:
也许你会惊呼,如果你习惯于使用C\C++进行编程,为什么Java中的main函数会放在一个类里面。并且这个类名和文件名相同。
我们先来看看不同的情况,
此时public class类名和文件名不同,此时是不让编译过的。
我们只好改回原来的类名。此时能够正常编译。
那是否可以存在多个public class?
答案是不行的,不能存在多个public class类。
我们此时就能编译过了。
(3)如何理解字节码文件?
在上个程序中,我们实现了两个类。用javac进行编译时,就为我们生成了两个类名同文件名的字节码文件。但是,这有什么用?它有什么好处,才让那些大佬们选择这样的设计?
我们在编写C\C++代码时,要使用cout流插入,因此需要引入头文件#include<iostream>.那么在该程序预处理阶段时,这个头文件会直接在顶部将里面的函数声明全部展开。即便我没有调用cin,该函数的声明仍然会被放在源代码展开里。
因此,java中的xx.class设计,是为了避免这样的多余代码,而是选择"按需取用"的方式。
(4)JDK编码
当我们输入一串中文的注释时,发现无法编译这是什么问题呢?
一旦看到出现乱码时,我们可以将这问题的缘故放到编码格式的不同上去看待。JDK选择的编码格式为GBK,但是windows选择的编码格式通常为utf-8。我们只需要在编译时,更换编码格式即可。
总结:
①JDK、JRE、JVM之间的关系?
②xxx.java如何运行起来?经由javac完成编译,形成xxx.class,最后使用java xxx运行代码程序。
③在一个java文件中只允许出现一个public class类,并且该类名需要同文件名一样。每个类都有自己 的方法(函数)。
④JDK默认的编码格式是GBK,Windows默认的编码格式为UTF-8.
本篇就到此结束了,感谢你的阅读。
祝你好运,向阳而生~