Java简介与JDK的安装_001

Java基础知识

一、初识java

1.1.简介

1.1.1.概念、历史、特点

  • 一门面对对象的高级程序设计语言

  • 历史

    • 原名OAK,1991年,由Sun公司推出,詹姆斯.戈士林亲手设计,他完成了Java的编译器和虚拟机
    • 1994年将目标转向为internet,1995年,正式改名Java
    • 于2009年被Oracle贵司收购
  • 特点

    • 通过解释方式执行语言,语法规则类似C++
    • 跨平台,一次编写,到处运行
    • 语言简洁得多,可靠性、安全性更高

1.1.2.工作流程

  • 为什么跨平台?

    • 程序不直接作用于操作系统,,而是作用于操作系统上的JVM(java虚拟机),只需要操作系统上有相应的虚拟机就可以执行java程序
  • 机器码

    • 目前绝大多数的设备使用的都是机器码(二进制编码)
    • 极少部分设备使用光子机器码
  • 字节码

    • 一种针对JVM而开发的编码
    • 目前也有极少数的设备可以直接使用字节码,而不需要借助JVM将字节码解释成二进制编码后运行
  • JVM(java虚拟机)

    • 一种运行java字节码的虚拟计算机,附着在具体地1操作系统上,比如win系统、Linux系统、Mac系统、安卓系统等
    • 作用:将字节码解释成二进制编码,是java程序一次编写到处运行的关键
    • 过程
      • 加载代码
      • 校验代码
      • 执行代码并生成二进制编码
  • 工作流程图示

    JDK编译器
    执行
    执行
    .java源代码
    .class字节码
    win系统JVM
    二进制编码
    在win系统运行
    linux系统JVM
    在Linux系统运行
    能直接解释java字节码的CPU直接运行

1.1.3.应用

  • 桌面应用系统开发
  • 嵌入式系统开发
  • 电子商商务应用
  • 企业级应用开发
  • 交互式系统开发
  • 分布式系统开发
  • 多媒体系统开发
  • web应用系统开发
  • 动画游戏设计、图形图像
  • 消费类设备:为手机、电脑等提供应用程序
  • 安卓系统的软件开发主要用到的就是java

1.1.4.开发工具

  • eclipse软件:大型企业基本上用这个,集成度高,高智能
  • idea软件:大多数工作人员用的软件,集成度高,高智能,分社区版和旗舰版(收费,较社区版功能更全)
  • sublime软件:
    • 集成度较低,推荐初学者使用,便于初学者对代码的记忆理解更为深刻
    • 面试时候,一张纸,一支笔,需要自己写,若平时学习阶段过于依赖集成度高的开发工具,面试时容易在细节上受阻
  • netbeans软件:一般用于等级考试
  • JBuilder软件

1.1.5.eclipse版本

  • Java SE

    • Java的标准版本,主要用于桌面应用程序的开发,Java的基础
    • 语言基础、数据库连接性操作、输入输出、网络通信、多线程等技术
    • 学习,等级考试,应用等
  • Java EE

    • Java的企业版,主要用于企业级分布式的网络程序,包含Java SE全部功能
    • 如电子商务网站和ERP(企业资源规划)系统,其核心为企业Java组件模型EJB
    • image-20220225114413425
  • Java ME

    • 主要用于嵌入式系统开发
    • 如掌上电脑、手机等移动通信设备,现在大部分手机都支持Java

1.1.6.API文档(java编程字典)

Application Programming Interface,应用程序编程接口,Java编程的字典,类的继承结构、成员变量、构造方法、静态成员的描述信息和详细说明等内容

  • 分类:在线和离线两种

  • 网址api在线查看(请点击)

  • 离线下载(请点击)

    downloads-java se-java se 8 documentation

-downlload-接受协议-jdk-8u65-docs-all zip

1.1.7.java语言特点

  • 简单

    • 语法规则与C++类似
    • 在C++基础上进行简化和提高
      • 如Java采用接口代替多重继承,并取消指针,因为指针和多重继承使程序变得复杂
      • Java通过通过垃圾自动收集,简化程序员资源释放管理工作
    • 资源多:Java提供了丰富的类库和API文档以及第三方开发包,另外还有大量的基于Java的开源项目,现在JDK(Java开发者工具箱)也开放源代码了,读者可以通过分析项目的源代码,从而提高自己的编程水平
  • 面向对象

    • Java的语言基础,万物皆对象,语法中不能在类外面单独定义数据和函数
    • Java语言最外部的数据类型是对象,所有元素均通过类和对象来访问
  • 分布性

    • 操作分布:在多个不同的主机上布置相关的操作
    • 数据分布:将数据分别存放在多个不同的主机上
    • URL(统一资源定位符):Java通过URL对象访问对象,访问方式与访问本地系统相同
  • 可移植性

    • Java具有与体系结构无关特性,故可以移植到网络上不同的计算机
    • Java类库可针对不同平台接口,故类库也可以移植
  • 解释型

    • 字节码:字节码独立于平台,携带了许多编译信息,使得连接过程更加简单,开发过程迅速
    • Java虚拟机:运行Java需要解释器,任何移植了Java虚拟机(解释器)的设备均可以用Java字节码进行解释运行
  • 安全性

    • 没有C语言的指针和内存释放等语法,避免了用户对内存的非法操作
    • Java程序代码经代码校验、指针校验等很多测试后才能运行
    • 未经允许的Java程序不可能出现损害系统平台的行为
    • 使用Java可以编写出防病毒和防修改的系统
  • 健壮性

    • 检查程序在编译时的错误并消除错误
    • 类型检查便于用户检查出许多开发早期时出现的错误
    • 集成开发工具使编译和运行Java程序更加容易(eclipse/netbeans)
  • 多线程

    • 应用程序在同一时间内可以并行执行多项任务
    • 相应的同步机制可以不同线程准确地共享数据
    • 带来更好的交互能力和实时行为
  • 高性能

    • 编译后的字节码在解释器中运行,速度比大多数交互式应用程序快很多
    • 字节码在程序运行(JVM)时被翻译成特定平台的机器指令,进一步提高运行速度
  • 动态

    • 动态调整库中方法和变量的增加,而客户端无需作任何更改
  • 垃圾回收机制

    • 对内存的释放和回收是自动进行,有效解决内存泄漏和无效内存的使用
    • 减轻程序员负担,提高工作效率

1.1.8.JDK安装与配置和环境变量

背景:Java的JDK又称Java SE(以前称J2SE),是Sun公司的产本,由于Sun公司已经被Oracle收购,因此JDK可以在Oracle公司的官方网站

请点击下一行

jdk下载官网

  • 建议安装在默认的C盘地址中,该路径下最稳定

  • 配置环境变量(配置环境变量的通用操作)

    • 找到该路径,并点击此处,将路径复制
    • image-20220301112619936
    • 复制路径
      • C:\Program Files\Java\jdk-16\bin
    • 此电脑-属性-环境变量-系统变量-双击path-新建-粘贴(JDK的bin路径)
  • 检验环境变量是否成功

  • 在doc界面,输入

    • javac
    • java
    • java -version
  • Microsoft Windows [版本 10.0.17763.1577]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    C:\Users\Administrator>javac
    用法: javac <options> <source files>
    其中, 可能的选项包括:
      @<filename>                  从文件读取选项和文件名
      -Akey[=value]                传递给注释处理程序的选项
      --add-modules <模块>(,<模块>)*
            除了初始模块之外要解析的根模块; 如果 <module>
                    为 ALL-MODULE-PATH, 则为模块路径中的所有模块。
      --boot-class-path <path>, -bootclasspath <path>
            覆盖引导类文件的位置
      --class-path <path>, -classpath <path>, -cp <path>
            指定查找用户类文件和注释处理程序的位置
      -d <directory>               指定放置生成的类文件的位置
      -deprecation                 输出使用已过时的 API 的源位置
      --enable-preview             启用预览语言功能。要与 -source 或 --release 一起使用。
      -encoding <encoding>         指定源文件使用的字符编码
      -endorseddirs <dirs>         覆盖签名的标准路径的位置
      -extdirs <dirs>              覆盖所安装扩展的位置
      -g                           生成所有调试信息
      -g:{lines,vars,source}       只生成某些调试信息
      -g:none                      不生成任何调试信息
      -h <directory>               指定放置生成的本机标头文件的位置
      --help, -help, -?            输出此帮助消息
      --help-extra, -X             输出额外选项的帮助
      -implicit:{none,class}       指定是否为隐式引用文件生成类文件
      -J<flag>                     直接将 <标记> 传递给运行时系统
      --limit-modules <模块>(,<模块>)*
            限制可观察模块的领域
      --module <模块>(,<模块>)*, -m <模块>(,<模块>)*
            只编译指定的模块,请检查时间戳
      --module-path <path>, -p <path>
            指定查找应用程序模块的位置
      --module-source-path <module-source-path>
            指定查找多个模块的输入源文件的位置
      --module-version <版本>        指定正在编译的模块版本
      -nowarn                      不生成任何警告
      -parameters                  生成元数据以用于方法参数的反射
      -proc:{none,only}            控制是否执行注释处理和/或编译。
      -processor <class1>[,<class2>,<class3>...]
            要运行的注释处理程序的名称; 绕过默认的搜索进程
      --processor-module-path <path>
            指定查找注释处理程序的模块路径
      --processor-path <path>, -processorpath <path>
            指定查找注释处理程序的位置
      -profile <profile>           请确保使用的 API 在指定的配置文件中可用
      --release <release>
            为指定的 Java SE 发行版编译。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16
      -s <directory>               指定放置生成的源文件的位置
      --source <release>, -source <release>
            提供与指定的 Java SE 发行版的源兼容性。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16
      --source-path <path>, -sourcepath <path>
            指定查找输入源文件的位置
      --system <jdk>|none          覆盖系统模块位置
      --target <release>, -target <release>
            生成适合指定的 Java SE 发行版的类文件。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16
      --upgrade-module-path <path>
            覆盖可升级模块位置
      -verbose                     输出有关编译器正在执行的操作的消息
      --version, -version          版本信息
      -Werror                      出现警告时终止编译
    
    
    C:\Users\Administrator>java
    用法:java [options] <主类> [args...]
               (执行类)
       或  java [options] -jar <jar 文件> [args...]
               (执行 jar 文件)
       或  java [options] -m <模块>[/<主类>] [args...]
           java [options] --module <模块>[/<主类>] [args...]
               (执行模块中的主类)
       或  java [options] <源文件> [args]
               (执行单个源文件程序)
    
     将主类、源文件、-jar <jar 文件>-m 或
     --module <模块>/<主类> 后的参数作为参数
     传递到主类。
    
     其中,选项包括:
    
        -cp <目录和 zip/jar 文件的类搜索路径>
        -classpath <目录和 zip/jar 文件的类搜索路径>
        --class-path <目录和 zip/jar 文件的类搜索路径>
                      使用 ; 分隔的, 用于搜索类文件的目录, JAR 档案
                      和 ZIP 档案列表。
        -p <模块路径>
        --module-path <模块路径>...; 分隔的目录列表, 每个目录
                      都是一个包含模块的目录。
        --upgrade-module-path <模块路径>...; 分隔的目录列表, 每个目录
                      都是一个包含模块的目录, 这些模块
                      用于替换运行时映像中的可升级模块
        --add-modules <模块名称>[,<模块名称>...]
                      除了初始模块之外要解析的根模块。
                      <模块名称> 还可以为 ALL-DEFAULT, ALL-SYSTEM,
                      ALL-MODULE-PATH.
        --list-modules
                      列出可观察模块并退出
        -d <module name>
        --describe-module <模块名称>
                      描述模块并退出
        --dry-run     创建 VM 并加载主类, 但不执行 main 方法。
                      此 --dry-run 选项对于验证诸如
                      模块系统配置这样的命令行选项可能非常有用。
        --validate-modules
                      验证所有模块并退出
                      --validate-modules 选项对于查找
                      模块路径中模块的冲突及其他错误可能非常有用。
        -D<名称>=<>
                      设置系统属性
        -verbose:[class|module|gc|jni]
                      为给定子系统启用详细输出
        -version      将产品版本输出到错误流并退出
        --version     将产品版本输出到输出流并退出
        -showversion  将产品版本输出到错误流并继续
        --show-version
                      将产品版本输出到输出流并继续
        --show-module-resolution
                      在启动过程中显示模块解析输出
        -? -h -help
                      将此帮助消息输出到错误流
        --help        将此帮助消息输出到输出流
        -X            将额外选项的帮助输出到错误流
        --help-extra  将额外选项的帮助输出到输出流
        -ea[:<程序包名称>...|:<类名>]
        -enableassertions[:<程序包名称>...|:<类名>]
                      按指定的粒度启用断言
        -da[:<程序包名称>...|:<类名>]
        -disableassertions[:<程序包名称>...|:<类名>]
                      按指定的粒度禁用断言
        -esa | -enablesystemassertions
                      启用系统断言
        -dsa | -disablesystemassertions
                      禁用系统断言
        -agentlib:<库名>[=<选项>]
                      加载本机代理库 <库名>, 例如 -agentlib:jdwp
                      另请参阅 -agentlib:jdwp=help
        -agentpath:<路径名>[=<选项>]
                      按完整路径名加载本机代理库
        -javaagent:<jar 路径>[=<选项>]
                      加载 Java 编程语言代理, 请参阅 java.lang.instrument
        -splash:<图像路径>
                      使用指定的图像显示启动屏幕
                      自动支持和使用 HiDPI 缩放图像
                      (如果可用)。应始终将未缩放的图像文件名 (例如, image.ext)
                      作为参数传递给 -splash 选项。
                      将自动选取提供的最合适的缩放
                      图像。
                      有关详细信息, 请参阅 SplashScreen API 文档
        @argument 文件
                      一个或多个包含选项的参数文件
        -disable-@files
                      阻止进一步扩展参数文件
        --enable-preview
                      允许类依赖于此发行版的预览功能
    要为长选项指定参数, 可以使用 --<名称>=<>--<名称> <>。
    
    
    C:\Users\Administrator>java version
    错误: 找不到或无法加载主类 version
    原因: java.lang.ClassNotFoundException: version
    
    C:\Users\Administrator>java -version
    java version "16" 2021-03-16
    Java(TM) SE Runtime Environment (build 16+36-2231)
    Java HotSpot(TM) 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)
    
    C:\Users\Administrator>
    
    
    
    
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@yanyu666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值