一、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%\bin;%JAVA_HOME%\jre\bin; , 必须是英文格式,选中该行,上移到最上方,点击确定。

        

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

        

      Tips:Java 1.5 版本之后不需要设置 classpath环境变量,如果需要设置环境变量,新建变量 Classpath,变量值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.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、用记事本打开,在文件中输入以下文本并保存。

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

  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个包)

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

    

Java 初识的更多相关文章

  1. JAVA 初识类加载机制 第13节

    JAVA 初识类加载机制 第13节 从这章开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class文件,再由虚拟机 ...

  2. java——初识

    java是现在最火的高级编程语言之一,功能强,应用广. java可以做什么? 1. 开发桌面应用程序 2. 开发面向Internet的应用程序 开发java程序的基本步骤: 1. 编写源程序:mypr ...

  3. Java初识与配置环境

    Java初识 Java简介 Java是一门面向对象的程序设计语言.功能强大并且简单易用,极好的实现了面向对象理论.允许程序以类似人类的思维方式进行复杂的编程. Java具有简单性.面向对象.分布式.健 ...

  4. 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序

    006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...

  5. 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介

    005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...

  6. 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构

    004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...

  7. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  8. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  9. 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学

    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...

  10. Java初识

    基础概念 特点: 完全面向对象,动态 解释性,简单.易移植,跨平台 安全健壮,高性能 多线程,分布式 三种核心机制: Java虚拟机 Java Virtual Machine 垃圾收集机制 Garba ...

随机推荐

  1. CMD窗口恢复默认设置

    CMD全称Command,是Windows系统下自带的类DOS系统,在日常工作中,有时候设置会损害CMD窗口的默认,导致浏览效果不佳,这时候需要有办法恢复到默认设置.在注册表中删除以下文件夹即可:HK ...

  2. struts2学习2

    拦截器 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implements Interceptor { @ ...

  3. Scrapy的中间件(二)

    爬虫中间件 爬虫中间件的用法与下载器中间件非常相似,只是它们的作用对象不同.下载器中间件的作用对象是请求request和返回response:爬虫中间件的作用对象是爬虫,更具体地来说,就是写在spid ...

  4. CF1245E:Hyakugoku and Ladders

    CF1245E:Hyakugoku and Ladders 题意描述: 给你一个\(10*10\)的矩阵,矩阵描述如下 最开始的时候你在左下角,你的目标是到达左上角. 你可以走路径或者爬梯子. 路径的 ...

  5. 为什么两个一样的对象,用===打印是false

    对象的地址(变量名)存在栈中,对象的引用指向堆中,比较对象的时候,是比较对象的引用是否相等.obj和obj1的引用地址分别指向堆中的两块数据,所以不相等.

  6. 网络协议 7 - UDP 协议

    网络协议五步登天路,我们一路迈过了物理层.链路层,今天终于到了传输层.从这一层开始,很多知识应该都是服务端开发必备的知识了,今天我们就一起来梳理下.     其实,讲到 UDP,就少不了 TCP.这俩 ...

  7. ECMAScript6之Class

    1.Class的基本语法 1.1简介 基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰.更像面向对象编程的语法而 ...

  8. python总结二

    1.在命令行:dd是删除光标所在的那一整行 yy是复制光标所在的那一整行 p是将已复制的数据在光标的下一行粘贴 P是将已复制的数据在光标的上一行粘贴 2.在命令行中查找的话 从上往下查找:/ 从下往上 ...

  9. AQS源码的简单理解

    概念 AQS全称 AbstractQueuedSynchronizer. AQS是一个并发包的基础组件,用来实现各种锁,各种同步组件的.它包含了state变量.加锁线程.等待队列等并发中的核心组件. ...

  10. 《HeadFirts设计模式》笔记

    定义 在某种情境下,针对某些问题的某种解决方案. 设计模式 1.可拓展性强,方便维护,能够应付变化. 何时使用设计模式 设计之前,还有在重构的时候. OOP 可复用,可扩充,可维护 设计模式原则 1. ...