如何使用Visual Studio Code进行Java编程

简介: 任何一个程序员都有自己喜爱的编辑器、工具、开发利器,有这样一群人,对于vim这种上古神器难以...

 image.gif

作者:魔王不造反

https://zhuanlan.zhihu.com/p/35176928

任何一个程序员都有自己喜爱的编辑器、工具、开发利器,有这样一群人,对于 vim 这种上古神器难以驾驭、IDE 又太笨重,这时候多了一个选择 vscode!!!

vscode 重新定义了编辑器,它开源、免费、Runs everywhere,是一款介于 IDE 和编辑器之间的产物,我们不能用 IDE 的所有特性都往它身上压,如果都可以的话不就是 IDE 吗?不就是吗?所以用起来的感觉你懂的,美滋滋(๑•̀ㅂ•́) ✧

那么这家伙都有什么牛逼之处呢?

特性

    • 微软开发,软件质量没的说
    • 高颜值,界面非常漂亮,允许自定义更改
    • 插件超级多,开发者很愿意接受它
    • 对我天朝程序员友好,你懂的
    • 启动速度比 atom 快,资源占用少
    • 跨平台的特性能没有吗?能吗?
    • 对各种编程语言支持良好(当然我只试过java/node/go/python)
    • 自动补全、代码高亮、代码跳转...
    • 集成终端好用,可以用 code 命令打开文件/文件夹
    • debug 功能好用(简直是 mini 的 IDE)
    • ( ⊙ o ⊙ )啊!特性太多了我实在写不完

    说了这么多你一定迫不及待想尝试吧~ (也许并不是)那现在

    安装 vscode

    我知道在座的各位其实根本不用我教你怎么安装,因为它是傻瓜式安装啊!它家的官网是 code.visualstudio.com/,你只需要在首页下载符合你操作系统的软件即可。

    支持 WindowsLinuxMac

    了解 vsccde

    为什么要了解它呢?你不了解它的组成就不知道怎么把它用好(高能型大佬除外)。

    布局

    image.gif

    上面是 vscode 的布局,和大多数编辑器一样,分为

      • Editor 用来编辑文件的主体区域。可以并排打开三个编辑器。
      • Side Bar 包含不同的像浏览器一样的视图来协助来完成工程。
      • Status Bar 展示当前打开的工程和正在编辑的文件的信息。
      • View Bar 在最左手边,帮助切换视图以及提供额外的上下文相关的提示,比如激活了Git的情况下,需要提交的变化的数目。

      在我看来学习一款编辑器并不用像学习编程语言那样,按照某个教程把所有的功能都学会,我更喜欢探索性的尝试自己需要的那些东西,比如在 View Bar 中如何的5个功能,其实点一点就大概明白什么意思了,查阅文字资料只是让自己更精确的掌握使用姿势。

      配置

      vscode 的用户配置分3个级别,分别是默认配置、全局配置和工作区配置,优先级也依次递增。对于团队项目,一些规范可以通过项目目录下建一个 .vscode/setting.json 文件进行配置,比如:

      // tab长度 
      "editor.tabSize": 2, 
      // 启用后,将在保存文件时剪裁尾随空格。 
      "files.trimTrailingWhitespace": true, 
      // 配置 glob 模式以排除文件和文件夹。 
      "files.exclude": { 
        "**/.git": true, 
        "**/.svn": true, 
        "**/.DS_Store": true, 
        "**/.idea": true 
      },

      image.gif

      这个配置我一般是不用的,只用用户配置,反正电脑就一个用户。配置一下字体大小、自动保存等。

      必装插件

        1. Beautify:代码高亮
        2. Terminal:直接唤起终端
        3. Project Manager:多个项目切换
        4. Auto Close Tag:标签自动闭合(其实我觉得可以内置的)

        怎么安装呢?

        image.gif

        在扩展输入框里输入你想用的插件就可以了,当然它还会经常推荐给我们排行比较高的插件,可以尝试安装,安装完成后重新加载编辑器就可以使用了。

        常用快捷键

        下面这些快捷键是我常用的,如果你想看更全的可以看看 VS Code有哪些常用的快捷键

          • 向上向下复制一行:Shift+Alt+Up 或 Shift+Alt+Down
          • 注释代码: cmd + /
          • 切换侧边栏: cmd + b
          • 文件夹中查找: cmd + shift + f
          • 查找替换: cmd + shift + h
          • 重构代码: fn + F2
          • 代码格式化: Shift+Alt+F,或 Ctrl+Shift+P 后输入 format code

          Ctrl+P 模式: (Mac 是 CMD+P)

            • 直接输入文件名,快速打开文件
            • > 显示并运行命令
            • : 跳转到行数,也可以Ctrl+G直接进入(Mac 是 CMD+G)
            • @ 跳转到symbol(搜索变量或者函数),也可以Ctrl+Shift+O直接进入
            • @: 根据分类跳转symbol,查找属性或函数,也可以Ctrl+Shift+O后输入:进入
            • # 根据名字查找symbol,也可以Ctrl+T

            配置 Java 环境

            先安装 Java 语言相关的插件 4 枚

              1. Language Support for Java(TM) by Red Hat
              2. Debugger for Java
              3. Java Test Runner
              4. Maven for Java

              有人想问了,妈耶还要4个插件,这么麻烦的吗?

              第一个插件干嘛的?运行 Java 代码的,第二个呢?调试的,不调试可以不装,第三个运行单元测试,不测试可以不装,第四个建议装上,一个标准化的 Java 工程一定不是几个文件组成,maven 是在Java环境下构建应用程序的软件(本地要先安装哦)。

              这时候还需要配置一下 java.home,我的是

              "java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home",

              image.gif

              大功告成,现在你可以在 vs code 下创建一个 Mmp.java 开始写 Hello vscode! 了。

              public class Mmp {
                public static void main(){
                  System.out.println("Hello vscode!");
                }
              }

              image.gif

              点击 调试 或者按下 F5 运行这久经码场的输出语句。具体操作见文章底部视频。

              代码定位

              image.gif

              按住 ctrl 键鼠标悬停在类上面会有类描述,点击即可进入类定义处,方法也是同样。

              代码重构

              image.gif代码重构

              很强大的一个地方就是我们有时候会修改字段、方法的名称。

                1. 找到所有的引用: Shift + F12
                2. 同时修改本文件中所有匹配的: Ctrl+F12
                3. 重命名:比如要修改一个方法名,可以选中后按 F2,输入新的名字,回车,会发现所有的文件都修改了
                4. 跳转到下一个 ErrorWarning:当有多个错误时可以按 F8 逐个跳转
                5. 查看 diff:在 explorer 里选择文件右键 Set file to compare,然后需要对比的文件上右键选择 Compare with file_name_you_chose

                运行 SpringBoot 项目

                下载一个 SpringBoot 的示例工程

                git clone https://github.com/JavaExamples/spring-boot-helloworld.git
                code spring-boot-helloworld

                image.gif

                什么? git 还不会

                image.gifimage.gif

                启动调试,选择 Java 语言,会提示我们 launch.json 文件是下面这样的

                {
                    // 使用 IntelliSense 了解相关属性。 
                    // 悬停以查看现有属性的描述。
                    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
                    "version": "0.2.0",
                    "configurations": [
                        {
                            "type": "java",
                            "name": "Debug (Launch)-Application<spring-boot-helloworld>",
                            "request": "launch",
                            "cwd": "${workspaceFolder}",
                            "console": "internalConsole",
                            "stopOnEntry": false,
                            "mainClass": "hello.Application",
                            "projectName": "spring-boot-helloworld",
                            "args": ""
                        },
                        {
                            "type": "java",
                            "name": "Debug (Attach)",
                            "request": "attach",
                            "hostName": "localhost",
                            "port": 0
                        }
                    ]
                }

                image.gif

                主要看 mainClass,只有第一次生成这个文件,确认后点击 调试 即可看到控制台日志

                image.gif

                尝试 Lombok

                这个家伙你用不用都无妨,反正我是挺喜欢的。这里就不啰嗦到底干嘛的,简单来说就是我可以用一个 @Data 注解帮我自动生成(编译后生成)gettersettertoStringequalshashCode 这些方法,反正多花时间写这些代码也不会提高你的能力,修改的时候还要多花时间,完全没!必!要!好吗?

                按照官方的文档我尝试了不在 maven 环境下是行不通的!行不通的。如果你可以的话在文章评论下告诉我哈~

                所以我们安装一个 Lombok Annotations Support for VS Code 就可以了。

                在 maven 工程中添加 lombok 依赖

                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.16.20</version>
                    <scope>provided</scope>
                </dependency>

                image.gif

                试一下吧

                image.gif

                image.gif

                点个赞,证明你还爱我

                相关文章
                |
                12天前
                |
                设计模式 安全 Java
                Java编程中的单例模式:理解与实践
                【10月更文挑战第31天】在Java的世界里,单例模式是一种优雅的解决方案,它确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的实现方式、使用场景及其优缺点,同时提供代码示例以加深理解。无论你是Java新手还是有经验的开发者,掌握单例模式都将是你技能库中的宝贵财富。
                18 2
                |
                7天前
                |
                JSON Java Apache
                非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
                UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
                |
                14天前
                |
                Java API Apache
                Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
                【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
                70 5
                |
                9天前
                |
                安全 Java 编译器
                JDK 10中的局部变量类型推断:Java编程的简化与革新
                JDK 10引入的局部变量类型推断通过`var`关键字简化了代码编写,提高了可读性。编译器根据初始化表达式自动推断变量类型,减少了冗长的类型声明。虽然带来了诸多优点,但也有一些限制,如只能用于局部变量声明,并需立即初始化。这一特性使Java更接近动态类型语言,增强了灵活性和易用性。
                92 53
                |
                8天前
                |
                存储 安全 Java
                Java多线程编程的艺术:从基础到实践####
                本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
                |
                5天前
                |
                监控 安全 Java
                Java中的多线程编程:从入门到实践####
                本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
                |
                7天前
                |
                存储 缓存 安全
                在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
                在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
                20 2
                |
                8天前
                |
                Java UED
                Java中的多线程编程基础与实践
                【10月更文挑战第35天】在Java的世界中,多线程是提升应用性能和响应性的利器。本文将深入浅出地介绍如何在Java中创建和管理线程,以及如何利用同步机制确保数据一致性。我们将从简单的“Hello, World!”线程示例出发,逐步探索线程池的高效使用,并讨论常见的多线程问题。无论你是Java新手还是希望深化理解,这篇文章都将为你打开多线程的大门。
                |
                9天前
                |
                安全 Java 编译器
                Java多线程编程的陷阱与最佳实践####
                【10月更文挑战第29天】 本文深入探讨了Java多线程编程中的常见陷阱,如竞态条件、死锁、内存一致性错误等,并通过实例分析揭示了这些陷阱的成因。同时,文章也分享了一系列最佳实践,包括使用volatile关键字、原子类、线程安全集合以及并发框架(如java.util.concurrent包下的工具类),帮助开发者有效避免多线程编程中的问题,提升应用的稳定性和性能。 ####
                36 1
                |
                12天前
                |
                存储 设计模式 分布式计算
                Java中的多线程编程:并发与并行的深度解析####
                在当今软件开发领域,多线程编程已成为提升应用性能、响应速度及资源利用率的关键手段之一。本文将深入探讨Java平台上的多线程机制,从基础概念到高级应用,全面解析并发与并行编程的核心理念、实现方式及其在实际项目中的应用策略。不同于常规摘要的简洁概述,本文旨在通过详尽的技术剖析,为读者构建一个系统化的多线程知识框架,辅以生动实例,让抽象概念具体化,复杂问题简单化。 ####