9. java基础知识(上)

news/2024/11/8 20:29:13 标签: java, 笔记

文章目录

  • 一、java是怎么执行的?说好的.exe呢?
    • 1. 了解
    • 2. java代码怎么运行?
      • 补充:
    • 3. .exe和.class的比对
  • 二、idea左侧目录
  • 三、package -- 本质上是一个文件夹(或目录)
  • 四、简单程序讲解
    • 快捷键
  • 五、注释
    • 1. 单行注释
    • 2. 段落注释
    • 3. 方法注释
    • 4. 类注释
    • 5. 代码
    • 6. 好处
  • 六、文档
    • 1. 自己生成文档
      • ① 举例
      • ② 效果演示
    • 2. 官方文档
      • ① 举例(以random()方法为例)
    • 3. 注意
  • 七、内容出处

javaexe_1">一、java是怎么执行的?说好的.exe呢?

1. 了解

① 编译运行java代码需要的3个核心东西:jdk(java的开发工具,编写代码用的就是这个)、jre(运行环境,给用户用的。开发人员执行的话也需要)、jvm(java虚拟机)
这三者的关系:jdk包含jre, jre包含jvm
② 虚拟机的作用:在一个电脑上能运行其它电脑的系统,而且这两个系统互不影响。
java有虚拟机的作用就是为了跨平台java源码编译后生成的.class文件说白了就是一个可执行文件,借助java内置的小型虚拟机(也就是jvm)就可以再任意系统上执行。简单来说就是,当前windows上这个java源代码编译好的.class文件拿到linux、mac上也能用。但是.exe文件就不行了,它是windows特有的,把.exe文件拖到linux上就不能运行。

java_7">2. java代码怎么运行?

        我们知道c语言源码编译后会生成.exe机器码文件,双击就可以运行。但是java源码编译后会生成.class字节码文件, 双击以后没有反应。甚至windows上.exe文件类型直接就是应用程序,而.class文件的文件类型是CLASS文件。
在这里插入图片描述
        那java代码是怎么运行的呢?
在VScode上演示:① 调出终端:Ctrl + ~ ② 编译源码:javac Test.java(执行完该命令会生成相应的.class文件。③ jvm执行字节码文件:java Test(这里其实默认执行的是.class文件。把.class文件删除以后,再执行java Test就会报错)
        直接java Test.java也可以生成正确结果,只不过这样的话我们就看不到它的.class文件了。因为此时.class文件被放到内存里了。
        ideajava代码编译后的.class文件在target目录里。
在这里插入图片描述
在这里插入图片描述

补充:

        idea里可以看到.class文件里的内容好像涉及到了反编译部分的知识。
        昨天用VScode写代码时不知道误点了什么东西,之后就可以看到.class文件里的内容。但是依旧看不了,exe文件里的内容。
在这里插入图片描述
在这里插入图片描述
        反编译这里我也不是很了解,一开始我还以为是可以通过点击.class文件这里的运行按钮就可以反向生成.java文件,后来试了一下,发现不是。
在这里插入图片描述
解决方案:禁用下面这个插件,然后重启VScode就可以了。
在这里插入图片描述
在这里插入图片描述

3. .exe和.class的比对

在这里插入图片描述
在这里插入图片描述
验证.exe文件可以双击运行,.class文件不可以。上述c的源码是我在网上随便找的一个烟花代码,这个代码的运行时间长。我之前是自己写了一个Hello Word的代码,因为代码执行时间太短,终端还没打开代码就运行完了,所以双击运行时会发现终端一闪而过。

二、idea左侧目录

在这里插入图片描述
① .idea存放的是idea的配置文件
② out是输出文件,运行代码后自动产生,里面存放各种.class文件
③ src下面存放源代码,我们写的代码就保存在这里
④ .iml里面写的是idea的配置信息
⑤ External Libraries:存放的是jar包

三、package – 本质上是一个文件夹(或目录)

在这里插入图片描述
在这里插入图片描述
① com:域名
② practice:公司名
③ demo:包名(一个包其实就是一个文件夹),指出这个包是干什么用的。

四、简单程序讲解

在这里插入图片描述
在这里插入图片描述

快捷键

① 查找快捷键:file -> settings -> keymap:查找快捷键
在这里插入图片描述
② 运行代码: Shift + F10
在这里插入图片描述
③ 隐藏/显示左侧目录栏:alt + 1
④ 建包建类快捷键:alt + insert
⑤ 上下移动:Ctrl + ↑ / ↓(有的可能是Ctrl + n/p)
⑥ 对齐:Ctrl + Alt + L(注意一定是大写L)
⑦ 查看源码:Ctrl + 左键单击
⑧ 将(number1, number2)补齐成int sum = sum(number1, number2):ctrl + alt + v
⑨ 自动帮我们检测离我们最近的变量生成输出语句:soutv + Tab / 回车
        如果无法使用,可以检查一下是否和别的软件的快捷键冲突了。

五、注释

1. 单行注释

在这里插入图片描述

2. 段落注释

在这里插入图片描述

3. 方法注释

在这里插入图片描述
可以折叠起来,单击左边的小箭头就行
在这里插入图片描述
鼠标悬浮在上面可以显示详细信息
在这里插入图片描述
main函数里调用一下,发现按住Ctrl键不动,然后将鼠标悬浮在方法名上也可以显示该方法的参数信息
在这里插入图片描述
         Ctrl + 左键点击方法名sum,还可以快速跳转到对应的方法位置(快捷键那里提过)
以文档形式显示方法参数:file -> settings -> keymap -> 输入doc -> 发现快捷键是Ctrl + Q
在这里插入图片描述
在这里插入图片描述
         还可以设置文档的位置和属性之类的东西。例如:勾选完这个以后,下次鼠标放到方法名上,相应文档就可以显示出来
在这里插入图片描述

4. 类注释

在这里插入图片描述
相关博客

5. 代码

java">// 说白了, 就是用来定位的, 就是说你的Main.java文件在哪?
// 目前以src为基准开始寻找
package com.practice.demo;

// 公共的  类(别) 类名
/**
 * @author hhh
 * @since 1.9
 * @version 1.0
 */
public class Main {
    // 单看void main()这不就c语言里的main函数么
    // 只不过c里定义了返回值类型int
    // String[] args:命令行参数, 照着写就行
    // 程序入口点
    public static void main(String[] args) {
        sum(3,4);
        // 类似c语言里的printf()
        // ln类似于c里的\n:换行
        System.out.println("Hello world!");
        // 类似c里的函数调用
        int number1 = 1;
        int number2 = 2;
        System.out.println(sum(number1, number2));

        System.out.println(Math.random());
    }

    /**
     * 该方法传递2个int类型参数,用来求和
     * @param numberA 第一个加数
     * @param numberB 第二个加数
     * @return 返回一个求和后的结果
     */
    public static int sum(int numberA, int numberB){

        return numberA + numberB;
    }
}

// 单行注释(快捷键:Ctrl + /)

/*
    段落注释(输入/*以后回车就会自动补齐另一半)
 */


6. 好处

可以帮助我们生成自己的文档。

六、文档

注释和文档之间是相辅相成的关系

1. 自己生成文档

① 举例

① 打开终端
在这里插入图片描述
② 输入命令pwd:展示当前路径
在这里插入图片描述

③ 输入命令ls:查看当前文件夹下内容
在这里插入图片描述
④ 输入命令 cd src/ :进入src文件夹下
在这里插入图片描述
⑤ 输入命令ls:查看当前文件夹下内容
在这里插入图片描述
⑥ 输入命令 cd com/practice/demo:进入demo文件夹下
在这里插入图片描述
⑦ 输入命令 ls:查看当前文件夹下内容
在这里插入图片描述
在这里插入图片描述
⑧ 输入命令 javadoc Main.java:生成文档
在这里插入图片描述
        上述问题解决方案:1. java -version:查看当前jdk是否安装 2. 为相应版本的jdk配置环境变量(添加完环境变量后需要重启一下PowerShell窗口) 3. 如果还是不行,就用 &‘jdk路径\bin\javadoc’ Main.java命令代替javadoc Main.java
⑨ 结果展示
在这里插入图片描述
在这里插入图片描述

② 效果演示

① 打开index.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
        我们可以发现这个页面里的内容跟Main.java里注释的内容一模一样。例如:
在这里插入图片描述
在这里插入图片描述

2. 官方文档

java官方文档:跟我们说一下相关库、方法怎么用

① 举例(以random()方法为例)

① 在main函数里写一个random()相关的输出语句
在这里插入图片描述
② 按住Ctrl键不动, 然后左键单击random(),就可以看到该函数的官方解释
在这里插入图片描述
③ 左键单击左侧铅笔符号,切换到我们常见的注释形式(此步可忽略)
在这里插入图片描述
在这里插入图片描述
④ 步入正题:以文档形式查看
⑤ 翻到当前Math.java页面的顶部,查看一下random()方法在哪个包里(准确来说是找一下Math包在哪个包里)
在这里插入图片描述
⑥ 进入官方文档
在这里插入图片描述
⑦ 点击左上角的java.lang
在这里插入图片描述
⑧ 接着可以在左下角一个一个找到Math包
简便方法:Ctrl + f -> 输入Math -> 两次回车 -> 锁定到Math包
在这里插入图片描述
⑨ 左键点击进入Math包
⑩ 同理,快速找到random()方法
在这里插入图片描述
        我们可以发现该文档里的注释跟上面②③步里的注释内容一模一样。

3. 注意

        生成文档时一定不要在源代码里生成,一定要另外指定一个目录,否则会影响到src目录。我们上述例子就是直接在源代码里生成文档,这些文档全都在src目录下。
        可以在根目录下创建一个docs文件夹,用于存放文档。

七、内容出处

java


http://www.niftyadmin.cn/n/5744399.html

相关文章

生鲜果蔬配送小程序开发指南万象生鲜系统来教你

近期,叮咚卖菜系统,美团的小象超市公布利润报表,多前置仓模式话题大家有开始重点关注起来了,在当今快节奏的生活中,人们对于生鲜果蔬的需求日益增长,同时也对购物的便捷性提出了更高要求。生鲜果蔬配送小程…

linux笔记(DNS)

一、概念 DNS(Domain Name System)DNS 是一种分布式网络目录服务,主要用于将人类易于记忆的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)。它就像是互联网的电话簿&a…

CSS画icon图标系列(一)

目录 前言: 一、向右箭头 1.原理: 2.代码实现 3.结果展示: 二、钟表 1.原理: 2.代码展示: 3.最终效果: 三、小手机 1.原理: 2.代码展示: 3.最后效果: 四、结…

内外连接【MySQL】

文章目录 表的内外连接内连接外连接 表的内外连接 显示SMITH的名字和部门名称 内连接 第一种写法,用笛卡尔积 mysql> select emp.ename,dept.dname from emp,dept where emp.deptnodept.deptno ; -------------------- | ename | dname | ------------…

鸿蒙ArkTS中的获取网络数据

一、通过web组件加载网页 在C/S应用程序中,都有网络组件用于加载网页,鸿蒙ArkTS中也有类似的组件。   web组件,用于加载指定的网页,里面有很多的方法可以调用,虽然现在用得比较少,了解还是必须的。   演…

Python基础学习_01释、变量、计算、打印

目录 1、注释 2、数字和数学计算 3、变量 4、字符串 5、打印 6、本节总结 1、注释 • 什么是注释? 1)注释就是用自然语言向代码阅读者说明代码的功能和意义 • 注释 1)单行注释使用 # 为开头;并且不能换行…

js实现的彩虹汉诺塔游戏

一个七层的汉诺塔&#xff0c;对应彩虹七色&#xff0c;选中每层来移动到对应塔柱。 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>彩虹汉诺塔游戏</title><style>#game-container…

第六章:DNS域名解析服务器

第六章&#xff1a;DNS域名解析服务器 一、DNS简介 DNS是互联网商的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网。DNS系统使用的网络查询&#xff0c;有监听的prot&#xff0c;端口为53域名可分为三大类&…