Java 初识

一、Java 简介

  1、什么是 Java

    Java 语言是美国 Sun 公司(Stanford University Network),在1995年推出的高级的编程语言,所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

    Java 是一门设计语言。

    扩展:

    语言:

      •  自然语言:人类听懂的语言(汉语,英语....)
      •     机器语言:计算机能听懂的语言(二进制 0,1)
      •     程序设计语言:由字符串组成的文本文件,有固定的语法(C、C++、Java、VB、汇编.......)程序语言是我们对计算机发号施令的工具。

    程序(源文件)是由字符串组成的文本文件。

    程序的运行:机器码文件(二进制文件)

  2、Java 的历史背景

    •    Java 之父:詹姆斯.高斯林
    •     1995年:Java 诞生
    •     1996年:发布 1.0 版本
    •     1997年:发布 1.1 版本
    •     1998年:发布 1.2 版本
    •     1999年:SUN公司发布 Java的三个版本:标准版,企业版和微型版(J2SE、J2EE、J2ME)
    •     2000年:发布 1.3 版本
    •     2002年:发布 1.4 版本
    •     2004年:发布 5 版本(重大更新)
    •     2006年:发布 6 版本
    •     2009年:Oracle 公司收购 Sun 公司,并于 2011 年发布 Java 7版本;
    •     2014年:发布 Java 8 版本(重大更新)
    •     2017年:发布 Java 9 版本
    •     2018年:发布 Java 10 版本

  3、Java 的应用领域

    Java 语言主要应用在互联网程序的开发领域,以及服务器后台处理大数据的存储,查询,数据挖掘等也有很多应用。主要应用领域有:

    •    桌面应用开发
    •    嵌入式系统开发
    •    电子商务应用
    •    企业级应用开发
    •    交互式系统开发
    •    多媒体系统开发
    •    分布式系统开发
    •    web 应用系统开发

  4、Java 的版本

    按照应用范围分为 3 个版本:

    (1)Java EE版(Java Standard Edition)Java 标准版

      Java 的标准版,主要用于桌面应用程序的开发,同时也是 Java 的基础,包含Java 语言基础,JDBC操作,I/O操作,网络通信,多线程等技术。

    (2)Java SE版(Java Enterprise Edition)Java 企业版

      Java 的企业版,主要用于开发企业级分布式的网络程序,如电子商务和 ERP系统。

    (3)Java ME版(Java Micro Edition)Java 小型版

      该版本主要用于嵌入式系统开发,支持Java程序运行在移动终端上的平台,如手机,掌上电脑登移动通信电子设备。

  5、Java API 文档

    API 的全称是 Application Programming Interface,即应用程序编程接口。Java API 文档是 Java 程序开发补课缺少的编程词典,里面记录了 Java 语言中海量的 API,主要包括类的继承结构、成员变量和成员方法、构造方法,静态成员的详细说明和描述信息。 API文档

二、Java 特性

  1、跨平台(可移植性)

    Java 程序具有与体系结构无关的特性,可以方便地移植到网络上的不同计算机中。可以运行不同的操作系统,服务器,数据库中。

  2、简单性

    语法简单明了,容易掌握(相对于 C 语言,C++来说)

  3、纯面向对象的语言(OOP)

    Java 是一种纯面向对象的程序设计语言。Java 语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。

  4、分布性

    Java 的分布性包括操作分布和数据分布,可以在不同的主机上布置不同的操作和存放不同的数据。

  5、解释型

    Java 程序需要解释器,任何移植了Java解释器的计算机或其他设备都可以用 Java 字节码进行解释执行。字节码独立于平台,使得开发更加迅速。

  6、安全性

    Java 程序代码经过代码校验,指针校验等很多测试步骤才能运行,所以未经允许的 Java 程序不可能出现损害系统的行为。

  7、健壮性

    Java 程序在编写多方面的,可靠的应用程序,Java 将检查程序在编译和运行时的错误,并消除错误。

  8、多线程

    多线程机制能够使应用程序在同一时间执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据,使用多线程,可以带来更好的交互能力和实时行为。

  9、高性能

    Java 编译后的字节码是在解释器中运行的。字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。

  10、动态性

    Java 可以动态调整库中方法和增加变量,客户不需要任何更改,在 Java 中进行动态吊证是非常简单和直接的。

三、Java 语言开发环境搭建

  1、Java 虚拟机 ——— JVM

    •  JVM(Java Virtual Machine):Java 虚拟机,简称 JVM,是运行所有 Java 程序的假想计算机,是Java程序的运行环境,是 Java 最具有吸引力的特性之一,编写的 Java 代码,都允许在 JVM 之上。
    •     跨平台:任何软件的运行,都必须运行在操作系统之上,而我们用 Java 编写的软件可以运行在任何的操作系统上,这个特性称为 Java 语言的跨平台特性。该特性是又 JVM实现的,我们编写的程序运行在 JVM 上,而 JVM运行在操作系统上。

    

    如果所示,Java 虚拟机本身不具备跨平台的功能,每个操作系统都有不同版本的虚拟机。

  2、JRE 和 JDK

    •      JRE(Java Runtime Environment):是Java 程序的运行时环境,包含 JVM 和运行所需要的核心类库。(JRE = JVM + 核心类型)
    •      JDK (Java Development Kit):是Java 程序开发工具包,包含 JRE 和 开发人员使用的工具。(JDK = JRE + 开发工具集)

   Tips:想要运行一个已有的 Java程序,只需按照 JRE 即可,想要开发一个全新的 Java 程序,必须安装 JDK。 

   

    Tips:JDK > JRE > JVM 

  3、JDK 安装图解

      (1)  点击下一步进行安装

     

    (2)更改安装路径

      

    (3)选择安装路径

      

    (4)点击确定,安装完成。

    Tips :安装路径中,不要包含中文和空格。

  4、配置环境变量

     (1)Java_HOME 环境变量的配置

      配置环境变量作用

      开发 Java 程序,需要使用 JDK 中提供的工具,工具在 JDK 安装目录的 bin 目录下。如果想使用这些工具,就要先进入到bin 目录下,这个过程就会非常的麻烦。如果不进入目录,这些工具就不能使用,会报错。

      为了开发方便,想在任意的目录下都可以使用 JDK 的开发工具,则必须配置环境变量,配置环境变量的意义,在于告诉操作系统,我们使用的 JDK开发工具在哪个目录下。

      配置环境变量步骤:(win10版本)

      1、文件资源管理器--> 此电脑鼠标右键-->选择 属性

        

      2、选择 高级系统设置 --> 选择环境变量

        

      3、点击下方系统变量的 新建,创建新的环境变量,变量名输入 JAVA_HOME ,变量值输入 JDK 的安装目录。

        

      4、选择 Path 环境变量,双击或点击编辑

        

      5、点击新建,输入 %JAVA_HOME%in;%JAVA_HOME%jrein; , 必须是英文格式,选中该行,上移到最上方,点击确定。

        

      6、环境变量配置完成,重新开启 DOS命令行,在任意目录输入 javac / java 命令查看是否配置成功。

        

      Tips:Java 1.5 版本之后不需要设置 classpath环境变量,如果需要设置环境变量,新建变量 Classpath,变量值为 .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar; 注意不要漏掉变量值中的符号,最后点击确定。

      Classpath ->到哪里找需要执行的.class文件.前面是一个点[.]再加一个分号[;]再以分号结束[;]
      为什么要加点[.]在编译java文件时,如javac xxx.java 即会在当前目录下生成xxx.class文件,
      然后再用java xxx执行,系统会在当前目录下找xxx.class文件,所以要加点,代表是在当前目 录下找class文件来执行。

四、Java 运行机制及运行过程

  1、Java 语言最主要的特点

    (1)特点一:面向对象

       两个基本概念:类、对象

       三大特性:封装、继承、多态(抽象)

    (2)特点二:健壮性

       吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。

    (3)特点三:跨平台性

      程序员使用程序设计语言所写的文件称为源文件,而提交给计算机,运行的时候是机器码文件。

      转换机制:

      •  编译型:将源文件直接编程成机器码,一次编译,多次执行。执行效率高,不可跨平台。(C语言,C++)
      •    解释型:将源文件一行一行解释,一行一行执行。不同的操作系统具备不同的解释器。运行效率低,可以跨平台。(Python,jJavaScript,shell)
      •    半编译半解释型:Java语言。先编译,后解释。
        •  将源文件编译成字节码文件(平台中独立文件 .class文件)(可跨平台)
        •     将字节码文件进行解释执行

      由java源文件编译成的字节码文件可以在任意平台上运行。Java之所以有这种跨平台的特性,归功于java虚拟机,java虚拟机屏蔽了底层操作系统的差异。

      跨平台通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”一次编写,处处运行。

          任何软件的运行,都必须运行在操作系统之上,而我们用 Java 编写的软件可以运行在任何的操作系统上,这个特性称为 Java 语言的跨平台特性。

          该特性是又 JVM实现的,我们编写的程序运行在 JVM 上,而 JVM运行在操作系统上。

      原理:Java程序不是直接运行在操作系统上,而是运行在JVM(Java Virtual Machine)。不同的操作系统平台,可以安装不同的JVM,程序员不用管,程序员只要关注自己的Java程序就可以。

      

  2、Java 两种核心机制

  (1)Java 虚拟机(Java Virtal Machine)

    JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。

    对于不同的平台,有不同的虚拟机。

    Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

    

  (2)垃圾收集机制(Garbage Collection)

      1)不再使用的内存空间应回收—— 垃圾回收

      在C/C++ 等语言中,由程序员负责回收无用内存。

      在 Java 语言中消除了程序员回收无用内存空间的责任,它提供一种系统级线程跟踪存储空间的分配情况,并在 JVM 空闲时,检查并释放那些可被释放的存储空间。

      2)垃圾回收在 Java 程序运行过程中自动进行,有自己的一套算法,程序员无法精确控制和干预。

五、第一个 Java 文件

  1、编写第一个 Java 程序文件,新建一个文本文件,完整的文件名修改为 HelloWorld.java,其中文件名为 HelloWorld,后缀名为 .java。

  2、用记事本打开,在文件中输入以下文本并保存。

1 public class HelloWorld {
2    public static void main(String[] args) {
3        System.out.println("Hello world!");  
4    }  
5 }

   3、每一个 Java 文件都是一个 Java类,一个类的组成主要由下面几部分组成:

    •  关键字  class
    •     类名: HelloWorld ,文件名必须和类的名字是一致的,注意大小写。
    •     内容:{}
    •     主函数: main函数,主函数是一个程序的入口函数,程序执行就是执行主函数,主函数执行完了,程序也就执行完了。JVM在运行的时候,都是从 main 方法开始执行的。(可以没有主函数一个类中)
    •     一个源文件中可以定义多个类,编译之后都会生成一个 .class 文件,但是只能定义一个公开类,且公开类的类名和文件名完全一致,公开类用 public 修饰。
    •     Java 程序的基本组成单元是,类中又包括属性方法两部分,每一个应用程序都必须包含一个 main() 方法,含有 main() 方法的类称为主类

   4、编译:编写好的 Java 文件 JVM 看不懂,也就不能运行,需要将写好的 Java 源文件,编译成 JVM可以看懂的 字节码文件。

    在 DOS 命令行中,进入 Java 源文件的目录,使用 javac 命令进行编译。(源文件名不区分大小写,但是建议注意大小写)

    命令:

javac  Java源文件名.java

    编译成功后,命令行没有任何提示,在源文件的目录中就会有一个和 源文件同名的 .class 文件,这个文件就是编译后的文件,是Java的可运行文件,称为字节码文件。

   5、运行程序

    在 DOS 命令行中,进入 java 源文件的目录,使用 java 命令进行运行。(字节码文件名(类名),严格区分大小写。)

    命令:

java  类名(类名与源文件不一致,非公开类)
java  源文件名(类名与源文件名一致,公开类)

     运行的时候切记不要给文件添加后缀名

  Tips: 编译和运行

    编译:是指将编写的  java 源文件翻译成 JVM 认知的 class 文件,在这个过程中,javac 编译器会检查我们所写的程序时候错误,有错误就会提示出来,如果没有错误就会编译成功。

    运行:是指将 class 文件交给 JVM 去运行,此时 JVM就会执行我们写的程序。

  6、包

    (1)包的作用

        ① 避免类的重名问题

        有了包后,类的名称就比较长了,类的全名称就变成了: 包.类名

java.util.Scanner :Scanner类的全名称
java.lang.String:String类的全名称
java.lang.System:System类的全名称
java.lang.Math:Math类的全名称

        ② 分类组织管理众多的类

java.io:和IO(输入输出)有关
java.util:和各种常用工具类有关
java.lang:核心系统类
java.net:和网络编程有关
java.sql:和数据库编程有关

        ③ 用于访问权限控制

        如果某个类或某个方法的权限修饰符省略,那么就仅限于本包使用。

    (2)如何声明包

       语法格式:

package 包名;

              注意:

         ① 一个 .java 源文件只能有一句

         ② 必须在源文件的代码首行 

         ③ package 关键字:类似于文件夹,用于管理字节码文件,必须写在源文件的第一行。并且可以有多层包。(0~1个包)

       包名的命名规范:

         ① 所有单词都小写,每个单词之间用 . 分割

         ② 习惯上用公司的域名倒置 + 模块名

    (3)如何编译带包的类

        编译带包的类语法:

javac -d . 源文件名.java (自动生成目录结构)

    (4)如何运行带包的类

        运行带包的类语法:

java 包名.类名(全限定名)

    (5)如何使用其他包的类

       前提:被使用的类或成员的权限修饰符的允许跨包使用

       语法:

使用全名称:包.类名
使用import语句 + 简名称	

       说明:

        ① import 语句是写在 package 语句与 class 声明之间的

        ② 导包语句可以很多句,导入不同包的类

        ③ java.lang 包中的类可以不适用 import 语句,直接使用简名称

        ④ 可以同时导入一个包中的很多类,如 import 包.*;

        ⑤ 如果出现了不同的包,但是类名相同

          例如: java.util.Date 与 java.sql.Date;

          此时只能一个选择使用全名称,一个使用简名称,不能同时使用简名称

         import 关键字:当一个类中需要引用另外一个类的方法,需要引用对应的包。(0~n个包)

        注意:如果有多个包结构是相同的,用 * 代替该包结构下的所有类。 

     

原文地址:https://www.cnblogs.com/niujifei/p/11196716.html