一、初识java
1、java是什么
(1)Java 是一种计算机编程语言
- 编程是把我们的要求和想法,按照能够让计算机看懂的规则和约定编写出来。编程的结果就是一些计算机能够看懂并能够执行和处理的东西,我们把它叫做软件或者程序。事实上,程序就是我们对计算机发出的命令集(指令集)。
- 语言是用来交流的,和你说的汉语很向,但是汉语是人与人交流,java是一种人与计算机交流的语言。换句话说把我们的要求和想法用Java 表达出来,那么计算机能看懂,就能够按照我们要求运行,而这个过程就是我们说的使用Java 编程,所以我们讲Java 是一种计算机编程语言。
- 为了让计算机看懂,Java 会有一系列的规则和约定,这些就是Java 的语法。
(2)Java 是一种软件开发、运行、部署的平台
简单来说,我们可以用java语言开发出应用程序,部署并运行在安装有java环境的计算机上。
2、Java 能干什么
(1)桌面级应用
先解释一下桌面级应用:简单的说就是主要功能都在我们本机上运行的程序,比如word 、excel 等运行在本机上的应用就属于桌面应用,尤其是需要跨平台的桌面级应用程序,但是目前使用java做桌面级开发的场景确实越来越少。
(2)企业级应用
先解释一下企业级应用:简单的说就是大规模的应用,一般使用人数较多,数据量较大,对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求。
这是目前Java 应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用,企业信息化,也包括电子政务等,领域涉及:办公自动化OA,客户关系管理CRM,人力资源HR,企业资源计划ERP 、知识管理KM、供应链管理SCM 、企业设备管理系统EAM 、产品生命周期管理PLM 、面向服务体系架构SOA 、商业智能BI、项目管理PM、营销管理、流程管理WorkFlow 、财务管理……等等几乎所有你能想到的应用。
其实这个概念已经慢慢淡化了,我们现在进入了互联网时代,一个软件的体量已经不能同日而语,现在的软件需要支持更高的并发,追求更稳定的效果。
(3)嵌入式设备
包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字电视、机顶盒、电冰箱)、汽车电子设备等都是近年以来热门的Java 应用领域,尤其是手机上的Java 应用程序和Java 游戏,更是普及。
(4)大数据领域产品
很多大数据领域使用的软件都是java编写的,所有java学习也是大数据学习的基础。
3、Java 历史
(1)简介
在上世纪90 年代初,sun 公司有一个叫做Green 的项目,目的是为家用消费电子产品开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流。
詹姆斯·高斯林(JamesGosling)等人基于C++ 开发一种新的语言Oak(Java 的前身)。Oak 是一种用于网络的精巧而安全的语言。Sun 公司曾依此投标一个交互式电视项目,但结果是被SGI 打败,Sun 打算抛弃Oak。随着互联网的发展,Sun 看到了Oak 在计算机网络上的广阔应用前景,于是改造Oak,在1995 年5 月以“Java”的名称正式发布,从此Java 走上繁荣之路。
当然提到Java 历史,不得不提的一个故事就是Java 的命名。开始“Oak”的命名是以项目小组办公室外的树而得名,但是Oak 商标被其他公司注册了,必须另外取一个名字,传说有一天,几位Java 成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java( 爪哇)咖啡,有一个人灵机一动说就叫Java 怎样,得到了其他人的赞同,于是,Java 这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真。
4、Java语言的特点
Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。
Java 语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点,下面针对这些特点进行逐一介绍。
(1)面向对象
Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,Java 只支持类之间的单继承,但是可以使用接口来实现多继承。使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。
(2) 平台无关性
平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。
Java 语言使用 Java 虚拟机机制屏蔽了具体平台的相关信息,使得 Java 语言编译的程序只需生成虚拟机上的目标代码,就可以在多种平台上不加修改地运行。
(3) 简单性
Java 语言的语法与 C 语言和 C++ 语言很相近,使得很多程序员学起来很容易。对 Java 来说,它舍弃了很多 C++ 中难以理解的特性,如操作符的重载和多继承等,而且 Java 语言不使用指针,加入了垃圾回收机制,解决了程序员需要管理内存的问题,使编程变得更加简单。
(4)解释执行
Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。
(5)多线程
Java 语言是多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。
(6)分布式
Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。
(7) 健壮性
Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。
(8)高性能
Java 的高性能主要是相对其他高级脚本语言来说的,随着 JIT(Just in Time)的发展,Java 的运行速度也越来越高。
(9)安全性
Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防止恶意代码的攻击。除了 Java 语言具有许多的安全特性以外,Java 还对通过网络下载的类增加一个安全防范机制,分配不同的名字空间以防替代本地的同名类,并包含安全管理机制。
二、java环境搭建
主要内容:搭建java环境,编写第一个java程序,学习变量
1、安装java
(1) 下载java
java8下载地址Java Downloads | Oracle,根据不同系统选择下载包下载安装。
我们能看到目前java的版本已经更新到了java16,但是企业中常用的还是java8,所以我们的学习也是建立在java8的基础之上,后期会推出一些新版本的新特性课程。
安装java8,这里我们全程下一步。系统会默认将jdk安装至"C:\Program Files\Java"目录下。
输入:
"C:\Program Files\Java\jdk1.8.0_221\bin\javac"
有内容即可。
输入:
"C:\Program Files\Java\jdk1.8.0_221\bin\java" -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
可查看当前的jdk的版本。
(2)目录结构
我们会发现最外层的目录有一个jdk,有一个jre。
JDK 基本介绍
JDK 的全称(Java Development Kit Java 开发工具包) JDK = JRE + java 的开发工具 [java, javac,javadoc,javap 等] 2) JDK 是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了 JRE。所以安装了 JDK,就不用在单独 安装 JRE 了。
JRE 基本介绍
- JRE(Java Runtime Environment Java 运行环境) JRE = JVM + Java 的核心类库[类]
- 包括 Java 虚拟机(JVM Java Virtual Machine)和 Java 程序所需的核心类库等,如果想要运行一个开发好的 Java 程序, 计算机中只需要安装 JRE 即可。
JDK、JRE 和 JVM 的包含关系
- JDK = JRE + 开发工具集(例如 Javac,java 编译工具等)
- JRE = JVM + Java SE 标准类库(java 核心类库)
- 如果只想运行开发好的 .class 文件 只需要 JRE
2、第一个java程序
(1)HelloWorld
(1)安装notepad++,当然你也可以用txt写。
https://en.softonic.com/download/notepad-plus/windows/post-download
下载,双加安装就可以了,比安装英雄联盟简单多了,这里楠哥已经给你准备好了。
(2)新建文本使用notepad++打开,里输入以下代码
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
//println和print的区别
println是输出之后换行
(3)运行这个程序
编译(compilation , compile)
编译就是把高级语言变成计算机可以识别的二进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
我们写的helloworld对我们人类而言是友好的,但是对一计算机并不友好。
java语言需要特性的java编译器进行编译,这个编译器在哪里,就在咱们解压的文件夹里javac文件。
"C:\Program Files\Java\jdk1.8.0_221\bin\javac" HelloWorld.java
java文件经过编译之后会成为一个class文件,这个文件就是二进制的文件,将来他要加载到内存运行。
编译后的文件
运行
"C:\Program Files\Java\jdk1.8.0_221\bin\java" HelloWorld
发现helloworld被打印了出来,运行成功。
但是我们每一次运行一个java程序都要指定java的安装目录是不是有点太麻烦了,于是我们引出了环境变量的概念。
3、环境搭建
什么是环境
我们在地球上生活,环境给我们提供了空气,提供了水,提供了食物,正是由于有了环境的馈赠我们才能得以生存。
同样,一个用java写的程序也要有自己的运行环境,有环境才能生存。
能让所有的java程序自动的找到自己的环境,而不是手动的指定。
我们已经知道了编译java代码需要 javac
运行java程序 需要java
其实这就是我们java环境所必须的一部分,至少编译的的时候不用可以去找。
(1)环境变量
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关。比如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找。
环境变量在哪里配置
我的电脑——>右键属性
选择环境变量:
在系统环境变量中有一个Path,这里边配置了很多路径。
(2)回归本初
怎么使用cmd打开微信,其实这个咱们第一天就已经学过了,但是我今天想,不进入这个目录就能打开。
其实只需要两步骤,一:配置环境变量中的path,添加微信的路径的名称。二:在cmd中输入微信的可执行文件名字即可。
(3)配置java的环境变量
好了之后,我么就可以这样玩了:
javac HelloWorld.java
java HelloWorld
是不是很简单呢?