文章目录
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文件被放到内存里了。
idea里java代码编译后的.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文件夹,用于存放文档。