1.1 Java简介
Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
Java分为三个体系:
-
JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
-
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
-
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com Java语言共同创始人之一:詹姆斯·高斯林 (James Gosling),被称为“Java之父”
1.2 Java能做什么
Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、淘宝、物流系统、网银系统、OA系统等等,以及服务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。还有桌面程序、APP、网页应用、嵌入式开发等等。
1.3 Java主要特性
-
Java语言是简单的:
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
-
Java语言是面向对象的:
Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
-
Java语言是分布式的:
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
-
Java语言是健壮的:
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
-
Java语言是安全的:
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
-
Java语言是体系结构中立的:
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
-
Java语言是可移植的:
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
-
Java语言是解释型的:
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以实现这个Java代码在任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
-
Java是高性能的:
与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
-
Java语言是多线程的:
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
-
Java语言是动态的:
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
1.4 Java语言跨平台原理
1. JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM之上
2. 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
1.4 JRE和JDK
-
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 -
JDK (Java Development Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装JRE
即可。
我们想要开发一个全新的Java程序,那么必须安装JDK
。
三者关系: JDK > JRE > JVM
1.5 配置环境变量
为了开发方便,我们想在任意的目录下都可以使用JDK的开发工具,则必须要配置环境变量,配置环境变量的意义在于告诉操作系统,我们使用的JDK开发工具在哪个目录下。
1、右键【我的电脑】,选择【属性】
2、选择【高级系统设置】
3、选择【环境变量(N)】
5、新建系统环境变量
6、配置系统Path路径(选中path,进行编辑)
其中,%JAVA_HOME%读取的就是刚才配置的系统环境变量中JAVA_HOME的路径,后面紧跟着\bin,就是定位到了对应的JDK安装的bin目录下,因此,我们在任意位置都能找到bin目录下的相关java指令了。
6、效果验证
安装完JDK,并完JDK环境变量的配置后,我们可以在任意路径下(打开命令行)进行测试,验证是否正确。
至于为何非要配JAVA_HOME而不直接配bin目录,是因为这样才能使Eclipse等IDE自动找到JDK的位置。Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。