• java语言入门(一)之JAVA语言基的概述


    JVM与垃圾收集机制

    Java语言的特点:跨平台性

    原因:因为可以在每个不同平台下载jvm

    核心机制-Java虚拟机

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

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

    只有某平台提供了对应了java虚拟机,Java程序才可以在此平台运行

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

    核心机制-垃圾回收

    不在使用的内存空间应回收-垃圾回收

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

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

            垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

    Java程序还会出现内存泄漏和内存溢出问题吗?Yes!

    JDK、JRE、JVM的关系

    什么是JDK、JRE

    JDK

    JDK是提供Java开发人员使用的,其中包含了java的开发工具,也包括了JJRE。所以安装了JDK,就不用在单独安装JRE了

    其中的开发工具:编译工具(javac.exe)打包工具(jar.exe)等

    JRE

    包括Java虚拟机和java程序所需要的核心类库等。如果想要运行一个开发的Java程序,计算机只想要安装JRE即可。

    JDK、JRE、JVM的关系

    JDK=JRE+开发工具集

    JRE=JVM+Java SE标准类库

     官方网址:

            www.oracle.com

            java.sun.com

    安装JDK

            傻瓜式安装,下一步即可。

            建议:安装路径不要有中午或者空格等特殊符号

            如果操作系统是64位的,软件尽量选择支持64位的

            当前提示安装JRE时,正常在JDK安装的时候已经安装过了,但是为了后续使用Eclipse等开发工具不报错,建议也根据提示安装JRE。

    JDK的安装

    下载JDK

    下载路径:
    链接:Java Downloads | Oracle

    根据电脑的系统选择对应的版本,其中x86表示32位系统,x64表示64位系统。 

          JDK安装步骤

           双击下载下来的安装文件, 点下一步

         

           这里我们可以选择安装路径,也可以默认安装。如果更改路径最好不要放在中文或者带空格的目录下,以免将来出现不必要的麻烦。

           点击下一步就开始安装了

           设置环境变量

        桌面“我的电脑”右击,选择“属性”打开“系统控制面板”选择“高级系统设置”

    进入之后选择高级系统设置,然后选择环境变量

    在打开的环境变量对话框后,单击下方【系统变量】下的【新建】按钮;

    然后输入JAVA_HOME,对应的变量值为你jdk安装的目录。

    点击确定。

    然后新建变量名:classpath 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar点确定

    然后在系统变量中找到名为“Path”的变量并双击,新建变量为 %JAVA_HOME%\bin

    确定以后,分别输入“java”、“java -version”(java -version代表你安装的java的版本)和javac,若都正常运行则代表java已经正确安装。

    验证jdk

    点击【开始】菜单,收入cmd进入命令模式,输入“java -version”可以查看安装版本

    注释

    java规范有三种注释方式

            单行注释

            多行注释

            文档注释

    什么是单行注释和多行注释

    //这是单行注释

    /*

    *这是多行注释

    */

    单行注释和多行注释的作用

    1.对说写的程序进行解释说明,增强可读性,方便自己,方便别人

    2.调试所写的代码

    单行注释和多行注释的特点:

    单行注释和多行注释,注释了的内容不参与编译。换句话说,编译以后生产的.class结尾的字节码文件中不包含注释掉的文字或者信息

    文档注释(java特有)

    文档注释格式

    /**

    @author 指定java程序的作者

    @version指定源文件的版本

    **/

    注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。

    操作方式(小黑窗口)

    javadoc -d myHello -author -version Helloava.java

    多行注释使用的注意点

    多行注释不能嵌套使用

    Java API的文档

    API是JAVA提供的基本编程接口

    JAVA语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

    下载API

    https://www.oracle.com/technetwork/javase/downloads/index.html

    JDK8的下载地址:Java Development Kit 8 Documentation

    JDK17离线下载地址为:https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html

    点击 Download

    进行下载离线版本。

    解压之后, 可以看到文档详细内容。 进入到 docs 目录。 index.html 就是文档主页。 直接用浏览器打开就好了。

    打开之后的效果, 和上面在线的 API 文档是一致的。推荐使用该方式进行查看 API。用于开发和调试。

    我们学习的时候, 不可能是从 API 文档的最顶部往下学习。 这样学习的效率太低。 就相当于你要背单词从 abandon 开始。然后再也走不出去。

    从 JDK 9 开始,JDK 都是模块化的工程。 所以 Java 开发者就根据功能而已进行了模块化的划分。

    学习任何一个技术, 首先就是要看技术的相关介绍, 并且是大局观的介绍。 只有这样你才能知道这个技术是什么, 能做什么, 能做成什么样。 看文档也是。

    我们简单的翻译一下文档:

    一开始说了本文档主要包含两部分的内容。

    一部分是 Java SE,另一个部分是:JDK

    Java SE

    Java 平台标准版 (Java SE) API 定义了用于通用计算的核心 Java 平台。 这些 API 位于名称以 java 开头的模块中。

    Java SE 主要包含以下模块:

    JDK

    Java 开发工具包 (JDK) API 特定于 JDK,需要注意的是该模块不一定在 Java SE 平台的所有实现中都可用。也就是说不同版本的 JDK 针对这些模块接口实现是不一致的。使用的时候需要注意。 这些 API 位于名称以 jdk 开头的模块中。

    JDK 主要包含以下模块:

    除了这两部分, 还有一部分是只有一个内容就是和智能卡相关的。

    需要注意的是:当前描述适用于 JDK 11+ 的版本。 主要以 JDK 17 的版本进行讲解描述。

    几种检索方式:

    index: 这里可以查看指定字符开头的类和接口。

    如果想看所有的。 可以使用 All Classes and Interfaces 。

    打开之后的页面为:

    这个时候, 可以通过右侧的 search 进行搜索。 如果只记得某个类的开头, 或者其中一部分。 可以使用这个快速的定位到你需要的内容上。

    我们看一下之前错误的提示异常类。 NoClassDefFoundError

    从这可以看到他是在 java.lang 的下面。 并且 java.lang 是在 java.base 的模块下, 一次记不住没关系, 多看多练几次就熟能生巧了。

    第一个Java程序的总结

    1.java程序编写-编译-运行的过程

    编写:我们将编写的java代码保存在“.java”结尾的源文件中

    编译:使用javac.exe命令编写我们的java源文件。格式:javac源文件名.java

    运行:使用java.exe命令解释运行我们的字节码文件。格式:java 类名

    2.在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public的。

    而且要求声明为public的类的类名必须与源文件名相同。

    3.程序的入口main()方法。格式都是固定的。

    public static void main(String[]args){

            //public static void main(String a[]){//arguments:参数

    }

    4.输出语句

    System.out.print();//只输出数据

    System.out.println();//先输出数据,然后换行

    5.每一行的执行语句都会以";"结束

    6.编译过程:编译以后,会生成一个或者多个字节码文件。字节码文件的文件名与java源文件中的类名相同。

  • 相关阅读:
    NFNet:NF-ResNet的延伸,不用BN的4096超大batch size训练 | 21年论文
    多线程之间获取不到值的问题
    物联网 MQTT 协议
    已经安装了torch,但是安装tochvision出现,no module named ‘torch‘
    Compose加载本地图片和网络图片
    MATLAB R2018b安装教程
    银河麒麟服务器版v4安装程序缺少依赖包,改为利用手机联网在线安装
    【一、灵犀考试系统项目设计、框架搭建】
    【MC教程】iPad启动Java版mc(无需越狱)(保姆级?) Jitterbug启动iOS我的世界Java版启动器 PojavLauncher
    【中国知名企业高管团队】系列22:滴滴
  • 原文地址:https://blog.csdn.net/weixin_53998054/article/details/126805694