第04章 IDEA的安装与使用

news2024/12/24 21:46:34

在这里插入图片描述
【Why IDEA ?】
在这里插入图片描述在这里插入图片描述

【注】JetBrains官方说明:

尽管我们采取了多种措施确保受访者的代表性,但结果可能会略微偏向 JetBrains 产品的用户,因为这些用户更有可能参加调查。

此外,2022年,某美国软件开发商在对近千名专业的Java开发者调研后,发布了《2022年Java开发者生产力报告》。报告提到:JetBrains 的 IntelliJ IDEA是最受欢迎的 Java IDE,占 48%,其次是 Eclipse,占 24%,Visual Studio Code 占 18%。
本着"工欲善其事必先利其器"的精神,本章从IDEA的介绍、安装、设置入手,讲解IDEA中项目的创建、快捷键与模板的使用、断点调试、常用插件等。

一 认识IntelliJ IDEA

1.1 JetBrains 公司介绍

IDEA,是 JetBrains (https://www.jetbrains.com/)公司的产品,该公司成立于2000年,总部位于捷克的布拉格,致力于为开发者打造最高效智能的开发工具。
在这里插入图片描述公司旗下还有其它产品,比如:

  • WebStorm:用于开发 JavaScript、HTML5、CSS3 等前端技术
  • PyCharm:用于开发 python
  • PhpStorm:用于开发 PHP
  • RubyMine:用于开发 Ruby/Rails
  • AppCode:用于开发 Objective - C/Swift
  • CLion:用于开发 C/C++
  • DataGrip:用于开发数据库和 SQL
  • Rider:用于开发.NET
  • GoLand:用于开发 Go

用于开发 Android的Android Studio,也是Google 基于 IDEA 社区版进行迭代的。
在这里插入图片描述

1.2 IntelliJ IDEA 介绍

IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,目前已经(基本)代替了Eclipse的使用。IDEA 在业界被公认为是最好的 Java 开发工具(之一),因其功能强悍设置人性化,而深受Java、大数据、移动端程序员的喜爱。

IntelliJ IDEA 在 2015 年的官网上这样介绍自己:

Excel at enterprise, mobile and web development with Java, Scala and Groovy,with all the latest modern technologies and frameworks available out of thebox.

在这里插入图片描述

1.3 IDEA的主要优势:(vs Eclipse)

功能强大:

① 强大的整合能力。比如:Git、Maven、Spring等
在这里插入图片描述② 开箱即用的体验(集成版本控制系统、多语言支持的框架随时可用,无需额外安装插件)

符合人体工程学:

① 高度智能(快速的智能代码补全、实时代码分析、可靠的重构工具)。
② 提示功能的快速、便捷、范围广。
在这里插入图片描述③ 好用的快捷键和代码模板。

④ 精准搜索。

1.4 IDEA 的下载

  • 下载网址: https://www.jetbrains.com/idea/download/#section=windows
  • IDEA 分为两个版本: 旗舰版(Ultimate)社区版(Community)
  • IDEA的大版本每年迭代一次,大版本下的小版本(如:2023.x)迭代时间不固定,一般每年3个小版本。
    在这里插入图片描述

两个不同版本的详细对比,可以参照官网:
https://www.jetbrains.com/idea/features/editions_comparison_matrix.html

官网提供的详细使用文档:
https://www.jetbrains.com/help/idea/meet-intellij-idea.html

二 卸载与安装

2.1 卸载过程

这里以卸载IntelliJ IDEA 2020.1版本为例说明。在【控制面板】找到【卸载程序】
在这里插入图片描述右键点击或左键双击IntelliJ IDEA 2020.1进行卸载:
在这里插入图片描述如果需要保留下述数据,就不要打√。如果想彻底删除IDEA所有数据,那就打上√。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
软件卸载完以后,还需要删除其它几个位置的残留:
在这里插入图片描述
在这里插入图片描述

2.2 安装前的准备

在这里插入图片描述

  • 64 位 Microsoft Windows 11、10、8
  • 最低 2 GB 可用 RAM,推荐 8 GB 系统总 RAM
  • 2.5 GB 硬盘空间,推荐 SSD
  • 最低屏幕分辨率 1024x768

从安装上来看,IntelliJ IDEA 对硬件的要求似乎不是很高。可是在实际开发中并不是这样的,因为 IntelliJ IDEA 执行时会有大量的缓存、索引文件,所以如果你正在使用 Eclipse / MyEclipse,想通过 IntelliJ IDEA 来解决计算机的卡、慢等问题,这基本上是不可能的,本质上你应该对自己的硬件设备进行升级。

2.3 安装过程

1、下载完安装包,双击直接安装
2、欢迎安装
在这里插入图片描述3、是否删除电脑上低版本的IDEA(如果有,可以选择忽略)
在这里插入图片描述

  • 如果电脑上有低版本的IDEA,可以选择删除或保留。
  • 这里没有卸载旧版本,如果需要卸载,记得勾选下面的保留旧的设置和配置。
    4、选择安装目录
    在这里插入图片描述
    5、 选择安装目录,目录中要避免中文和空格。
    在这里插入图片描述
    6、创建桌面快捷图标等
    在这里插入图片描述
    确认是否与.java、.groovy、.kt 格式文件进行关联。这里建议不关联。

7、在【开始】菜单新建一个文件夹(这里需要确认文件夹的名称),来管理IDEA的相关内容。
在这里插入图片描述在这里插入图片描述8、完成安装
在这里插入图片描述9、重启以后,单击登录。

2.4 注册

首先,需要通过用户协议:
在这里插入图片描述
是否同意发送用户数据(特性、使用的插件、硬件与软件配置等),建议选择:不发送。
在这里插入图片描述接着,会提示我们进行注册。

  • 选择1:试用30天。在IDEA2022.1.2版本中,需要先登录,才能开启试用。
    在这里插入图片描述
    选择2:付费购买旗舰版
    在这里插入图片描述在这里插入图片描述

2.5 闪退问题

问题描述:2022.1启动不了,双击桌面图标,没有响应。

解决办法:
打开C:\Users\songhk\AppData\Roaming\JetBrains\IntelliJIdea2022.1\idea64.exe.vmoptions 这个文件。
在这里插入图片描述内容如下所示:
在这里插入图片描述
删除红框的数据以后,再登录即可正常进入。
在这里插入图片描述
原因:之前使用过的比如2021.2.2版本,pojie了。新版IEDA太智能了,把现有的启运参数也都复制过去了。又因为最新的IDEA,不兼容pojie程序-javaagent:D:\develop_tools\IDEA\IntelliJ IDEA 2021.2.2\bin\jetbrains-agent.jar了,所以报错了,所以JVM结束了,所以没有启动画面,凉凉了。

三 HelloWorld的实现

3.1 新建Project - Class

新建module :
在这里插入图片描述
选择JDK(因为的idea版本最高能导入的JDK版本为14,所以我用的为JDK8)
![在这里插入图片描述](https://img-blog.csdnimg.cn/fe5b7709165742cf9407ace49ef1a41e.png
新建模块名称和路径
在这里插入图片描述
创建java类
在这里插入图片描述在这里插入图片描述

3.2 编写代码

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!!!!");
    }
}

3.3 运行

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

四 JDK相关设置

4.1 项目的JDK设置

File-->Project Structure...-->Platform Settings -->SDKs
在这里插入图片描述
在这里插入图片描述

  • 注1:SDKs全称是Software Development Kit ,这里一定是选择JDK的安装根目录,不是JRE的目录。
  • 注2:这里还可以从本地添加多个JDK。使用“+”即可实现。

4.2 out目录和编译版本

File-->Project Structure...-->Project Settings -->Project
在这里插入图片描述

五 详细设置

5.1 如何打开详细配置界面

5.1.1 显示工具栏

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

5.2 系统设置

5.2.1 默认启动项目配置

在这里插入图片描述
启动IDEA时,默认自动打开上次开发的项目?还是自己选择?
如果去掉Reopen projects on startup前面的对勾,每次启动IDEA就会出现如下界面:
在这里插入图片描述

5.2.2 取消自动更新

Settings–>Appearance & Behavior->System Settings -> Updates
在这里插入图片描述
默认都打√了,建议检查IDE更新的√去掉,检查插件更新的√选上。

5.3 设置整体主题

5.3.1 选择主题

在这里插入图片描述

5.3.2 设置菜单和窗口字体和大小

在这里插入图片描述

5.3.3 设置IDEA背景图

在这里插入图片描述

5.4 设置编辑器主题样式

5.4.1 编辑器主题

在这里插入图片描述

5.4.2 字体大小

在这里插入图片描述
更详细的字体与颜色如下:
在这里插入图片描述

温馨提示:如果选择某个font字体,中文乱码,可以在fallback font(备选字体)中选择一个支持中文的字体。

5.4.3 注释的字体颜色

在这里插入图片描述

  • Block comment:修改多行注释的字体颜色
  • Doc Comment –> Text:修改文档注释的字体颜色
  • Line comment:修改单行注释的字体颜色

5.5 显示行号与方法分隔符

在这里插入图片描述

5.6 代码智能提示功能

在这里插入图片描述

IntelliJ IDEA 的代码提示和补充功能有一个特性:区分大小写。 如果想不区分大小写的话,就把这个对勾去掉。建议去掉勾选

5.7 自动导包配置

5.7.1 默认需要自己手动导包,Alt+Enter快捷键

在这里插入图片描述

5.7.2 自动导包设置

  • 动态导入明确的包:Add unambiguous imports on the fly,该设置具有全局性;
  • 优化动态导入的包:Optimize imports on the fly,该设置只对当前项目有效;
    在这里插入图片描述

5.8 设置项目文件编码(一定要改)

在这里插入图片描述说明: Transparent native-to-ascii conversion主要用于转换ascii,显式原生内容。一般都要勾选。

5.9 设置控制台的字符编码

在这里插入图片描述

5.10 修改类头的文档注释信息

在这里插入图片描述比如:

/**
@ClassName ${NAME}
@Author ${USER}
@Date ${DATE} ${TIME}
@Version 1.0
@Description TODO
**/

常用的预设的变量,这里直接贴出官网给的:

${PACKAGE_NAME} - the name of the target package where the new class or interface will be created. 
${PROJECT_NAME} - the name of the current project. 
${FILE_NAME} - the name of the PHP file that will be created. 
${NAME} - the name of the new file which you specify in the New File dialog box during the file creation. 
${USER} - the login name of the current user. 
${DATE} - the current system date. 
${TIME} - the current system time. 
${YEAR} - the current year. 
${MONTH} - the current month. 
${DAY} - the current day of the month. 
${HOUR} - the current hour. 
${MINUTE} - the current minute. 
${PRODUCT_NAME} - the name of the IDE in which the file will be created. 
${MONTH_NAME_SHORT} - the first 3 letters of the month name. Example: Jan, Feb, etc. 
${MONTH_NAME_FULL} - full name of a month. Example: January, February, etc.

5.11 设置自动编译

Settings-->Build,Execution,Deployment-->Compiler
在这里插入图片描述

5.12 设置为省电模式 (可忽略)

在这里插入图片描述
IntelliJ IDEA 有一种叫做省电模式的状态,开启这种模式之后 IntelliJ IDEA 会关掉代码检查代码提示等功能。所以一般也可认为这是一种阅读模式,如果你在开发过程中遇到突然代码文件不能进行检查和提示,可以来看看这里是否有开启该功能。

5.13 取消双击shift搜索

因为我们按shift切换中英文输入方式,经常被按到,总是弹出搜索框,太麻烦了。可以取消它。
在这里插入图片描述

  • 方式1:适用于IDEA 2022.1.2版本

在2022.1版本中,采用如下方式消双击shift出现搜索框:搜索double即可,勾选Disable double modifier key shortcuts,禁用这个选项。
在这里插入图片描述

  • 方式2:适用于IDEA 2022.1.2之前版本

双击shift 或 ctrl + shift + a,打开如下搜索窗口:
在这里插入图片描述
选择registry…,找到"ide.suppress.double.click.handler",把复选框打上勾就可以取消双击shift出现搜索框了。
在这里插入图片描述

六 工程与模块管理

6.1 IDEA项目结构

层级关系:

project(工程) - module(模块) - package() - class()

具体的:

一个project中可以创建多个module
一个module中可以创建多个package
一个package中可以创建多个class

这些结构的划分,是为了方便管理功能代码。

6.2 Project和Module的概念

在 IntelliJ IDEA 中,提出了Project和Module这两个概念。
在这里插入图片描述在 IntelliJ IDEA 中Project是最顶级的结构单元,然后就是Module。目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是按功能划分的,比如:user-core-module、user-facade-module和user-hessian-module等等,模块之间彼此可以相互依赖,有着不可分割的业务关系。因此,对于一个Project来说:

  • 当为单Module项目的时候,这个单独的Module实际上就是一个Project。
  • 当为多Module项目的时候,多个模块处于同一个Project之中,此时彼此之间具有互相依赖的关联关系。
  • 当然多个模块没有建立依赖关系的话,也可以作为单独一个“小项目”运行。

6.3 Module和Package

在一个module下,可以声明多个包(package),一般命名规范如下:

1.不要有中文
2.不要以数字开头
3.给包取名时一般都是公司域名倒着写,而且都是小写

七 快捷键的使用

7.1 常用快捷键

7.1.1 通用型

说明快捷键
复制代码-copyctrl + c
粘贴-pastectrl + v
剪切-cutctrl + x
撤销-undoctrl + z
反撤销-redoctrl + shift + z
保存-save allctrl + s
全选-select allctrl + a

7.1.2 提高编写速度(上)

说明快捷键
智能提示-editalt + enter
提示代码模板-insert live templatectrl+j
使用xx块环绕-surround with …ctrl+alt+t
调出生成getter/setter/构造器等结构-generate …alt+insert
自动生成返回值变量-introduce variable …ctrl+alt+v
复制指定行的代码-duplicate line or selectionctrl+d
删除指定行的代码-delete linectrl+y
切换到下一行代码空位-start new lineshift + enter
切换到上一行代码空位-start new line before currentctrl +alt+ enter
向上移动代码-move statement upctrl+shift+↑
向下移动代码-move statement downctrl+shift+↓
向上移动一行-move line upalt+shift+↑
向下移动一行-move line downalt+shift+↓
方法的形参列表提醒-parameter infoctrl+p

7.1.3 提高编写速度(下)

说明快捷键
批量修改指定的变量名、方法名、类名等-renameshift+f6
抽取代码重构方法-extract method …ctrl+alt+m
重写父类的方法-override methods …ctrl+o
实现接口的方法-implements methods …ctrl+i
选中的结构的大小写的切换-toggle casectrl+shift+u
批量导包-optimize importsctrl+alt+o

7.1.4 类结构、查找和查看源码

说明快捷键
如何查看源码-go to class…ctrl + 选中指定的结构 或 ctrl+n
显示当前类结构,支持搜索指定的方法、属性等-file structurectrl+f12
退回到前一个编辑的页面-backctrl+alt+←
进入到下一个编辑的页面-forwardctrl+alt+→
打开的类文件之间切换-select previous/next tabalt+←/→
光标选中指定的类,查看继承树结构-Type Hierarchyctrl+h
查看方法文档-quick documentationctrl+q
类的UML关系图-show uml popupctrl+alt+u
定位某行-go to line/columnctrl+g
回溯变量或方法的来源-go to implementation(s)ctrl+alt+b
折叠方法实现-collapse allctrl+shift+ -
展开方法实现-expand allctrl+shift+ +

7.1.5 查找、替换与关闭

说明快捷键
查找指定的结构ctlr+f
快速查找:选中的Word快速定位到下一个-find nextctrl+l
查找与替换-replacectrl+r
直接定位到当前行的首位-move caret to line starthome
直接定位到当前行的末位 -move caret to line endend
查询当前元素在当前文件中的引用,然后按 F3 可以选择ctrl+f7
全项目搜索文本-find in path …ctrl+shift+f
关闭当前窗口-closectrl+f4

7.1.6 调整格式

说明快捷键
格式化代码-reformat codectrl+alt+l
使用单行注释-comment with line commentctrl + /
使用/取消多行注释-comment with block commentctrl + shift + /
选中数行,整体往后移动-tabtab
选中数行,整体往前移动-prev tabshift + tab

7.1.7 Debug快捷键

说明快捷键
单步调试(不进入函数内部)- step overF8
单步调试(进入函数内部)- step intoF7
强制单步调试(进入函数内部) - force step intoalt+shift+f7
选择要进入的函数 - smart step intoshift + F7
跳出函数 - step outshift + F8
运行到断点 - run to cursoralt + F9
继续执行,进入下一个断点或执行完程序 - resume programF9
停止 - stopCtrl+F2
查看断点 - view breakpointsCtrl+Shift+F8
关闭 - closeCtrl+F4

7.2 查看快捷键

7.2.1 已知快捷键操作名,未知快捷键

在这里插入图片描述

7.2.2 已知快捷键,不知道对应的操作名

在这里插入图片描述

7.3 自定义快捷键

在这里插入图片描述

7.4 使用其它平台快捷键

苹果电脑或者是用惯Eclipse快捷的,可以选择其他快捷键插件。
在这里插入图片描述

八 IDEA断点调试(Debug)

8.1 为什么需要Debug

编好的程序在执行过程中如果出现错误,该如何查找或定位错误呢?简单的代码直接就可以看出来,但如果代码比较复杂,就需要借助程序调试工具(Debug)来查找错误了。

运行编写好的程序时,可能出现的几种情况:
> 情况1:没有任何bug,程序执行正确!

====================如果出现如下的三种情况,都又必要使用debug=============================
> 情况2:运行以后,出现了错误或异常信息。但是通过日志文件或控制台,显示了异常信息的位置。
> 情况3:运行以后,得到了结果,但是结果不是我们想要的。
> 情况4:运行以后,得到了结果,结果大概率是我们想要的。但是多次运行的话,可能会出现不是我们想要的情况。
        比如:多线程情况下,处理线程安全问题。

8.2 Debug的步骤

Debug(调试)程序步骤如下:
1、添加断点
2、启动调试
3、单步执行
4、观察变量和执行流程,找到并解决问题

8.2.1 添加断点

在源代码文件中,在想要设置断点的代码行的前面的标记行处,单击鼠标左键就可以设置断点,在相同位置再次单击即可取消断点。
在这里插入图片描述

8.2.2 启动调试

IDEA提供多种方式来启动程序(Launch)的调试,分别是通过菜单(Run –> Debug)、图标(“绿色臭虫”等等
在这里插入图片描述

8.2.3 单步调试工具介绍

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

  • Step Over(F8):进入下一步,如果当前行断点是调用一个方法,则不进入当前方法体内
  • Into(F7):进入下一步,如果当前行断点是调用一个自定义方法,则进入该方法体内
  • Force Step Into(Alt +Shift + F7):进入下一步,如果当前行断点是调用一个核心类库方法,则进入该方法体内
  • Step Out(Shift + F8):跳出当前方法体
  • Run to Cursor(Alt + F9):直接跳到光标处继续调试
  • Resume Program(F9):恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上
  • Stop(Ctrl + F2):结束调试
  • View Breakpoints(Ctrl + Shift + F8):查看所有断点
  • Mute Breakpoints:使得当前代码后面所有的断点失效, 一下执行到底

说明:在Debug过程中,可以动态的下断点。

8.3 多种Debug情况介绍

8.3.1 行断点

  • 断点打在代码所在的行上。执行到此行时,会停下来。
public class Debug01 {
    public static void main(String[] args) {
        //1.
        int m = 10;
        int n = 20;
        System.out.println("m = " + m + ",n = " + n);
        swap(m, n);
        System.out.println("m = " + m + ",n = " + n);

        //2.
        int[] arr = new int[] {1,2,3,4,5};
        System.out.println(arr);//地址值

        char[] arr1 = new char[] {'a','b','c'};
        System.out.println(arr1);//abc
    }

    public static void swap(int m,int n){
        int temp = m;
        m = n;
        n = temp;
    }
}

8.3.2 方法断点

  • 断点设置在方法的签名上,默认当进入时,断点可以被唤醒。
  • 也可以设置在方法退出时,断点也被唤醒。
    在这里插入图片描述
  • 在多态的场景下,在父类或接口的方法上打断点,会自动调入到子类或实现类的方法。
public class Debug02 {
    public static void main(String[] args) {

        //1.
        Son instance = new Son();
        instance.test();
        //2.
        Father instance1 = new Son();
        instance1.test();

        //3.
        Consumer con = new ConsumerImpl();
        con.accept("atguigu");

        //4.
        HashMap map = new HashMap();
        map.put("Tom",12);
        map.put("Jerry",11);
        map.put("Tony",20);
    }
}

class Father{
    public void test(){
        System.out.println("Father : test");
    }
}

class Son extends Father{
    public void test(){
        System.out.println("Son : test");
    }
}

interface Consumer{
    void accept(String str);
}

class ConsumerImpl implements Consumer{

    @Override
    public void accept(String str) {
        System.out.println("ConsumerImple:" + str);
    }
}

8.3.3 字段断点

  • 在类的属性声明上打断点,默认对属性的修改操作进行监控。
    在这里插入图片描述
public class Debug03 {
    public static void main(String[] args) {
        Person p1 = new Person(3);

        System.out.println(p1);
    }
}

class Person{
    private int id = 1;
    private String name;
    private int age;

    public Person() {
    }
    {
        id = 2;
    }
    public Person(int id) {
        this.id = id;
    }



    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

8.3.4 条件断点

public class Debug04 {
    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};

        for (int i = 0; i < arr.length; i++) {
            int target = arr[i];
            System.out.println(target);
        }
    }
}

针对上述代码,在满足arr[i] % 3 == 0的条件下,执行断点。
在这里插入图片描述

8.3.5 异常断点

  • 对异常进行跟踪。如果程序出现指定异常,程序就会执行断点,自动停住。
public class Debug05 {
    public static void main(String[] args) {

        int m = 10;
        int n = 0;
        int result = m / n;
        System.out.println(result);
//      Person p1 = new Person(1001);
//      System.out.println(p1.getName().toUpperCase());
    }
}

通过下图的方式,对指定的异常进行监控:
在这里插入图片描述

8.3.6 线程调试

public class Debug06 {
    public static void main(String[] args) {
        test("Thread1");
        test("Thread2");
    }
    public static void test(String threadName) {
        new Thread(
                () -> System.out.println(Thread.currentThread().getName()),
                threadName
        ).start();
    }
}

在这里插入图片描述

8.3.7 强制结束

public class Debug07 {
    public static void main(String[] args) {
        System.out.println("获取请求的数据");
        System.out.println("调用写入数据库的方法");
        insert();
        System.out.println("程序结束");
    }

    private static void insert() {
        System.out.println("进入insert()方法");
        System.out.println("获取数据库连接");
        System.out.println("将数据写入数据表中");
        System.out.println("写出操作完成");
        System.out.println("断开连接");
    }
}

在这里插入图片描述

8.4 自定义调试数据视图

public class Debug08 {
    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<>();
        map.put(1,"高铁");
        map.put(2,"网购");
        map.put(3,"支付宝");
        map.put(4,"共享单车");
        System.out.println(map);
    }
}

设置如下:
在这里插入图片描述
在这里插入图片描述

8.5 常见问题

问题:使用Step Into时,会出现无法进入源码的情况。如何解决?
方案1:使用 force step into 即可
方案2:点击Setting -> Build,Execution,Deployment -> Debugger -> Stepping
把Do not step into the classess中的java.*javax.* 取消勾选即可。
在这里插入图片描述
小结:

经验:初学者对于在哪里加断点,缺乏经验,这也是调试程序最麻烦的地方,需要一定的经验。

简单来说,在可能发生错误的代码的前面加断点。如果不会判断,就在程序执行的起点处加断点。

九 IDEA常用插件

https://blog.csdn.net/zxlyx/article/details/115964737

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/568319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中的Split函数:去空操作详解

Python中的Split函数&#xff1a;去空操作详解 在Python编程中&#xff0c;我们经常需要对字符串进行操作。而字符串的分割操作在其中是非常常见的操作。Python中的split函数便是用来实现字符串分割的函数。不过&#xff0c;在使用split函数时通常还需要经过去除空格等操作。 …

Inno软件打包发布并后台安装相关驱动

bat安装 bat脚本的具体书写可自行百度。 其主要思路是将Driver文件存放在Bin下面&#xff0c;先安装Bin&#xff0c;然后在执行bat脚本来安装driver 具体些步骤&#xff1a; &#xff08;1&#xff09;编写一个install.bat的脚本 echo off ::下面三行代码是不显示dos界面 i…

加急!指定日本| 教育学老师9天获邀请函申报CSC

S老师拟申报今年的国家留学基金委&#xff08;CSC&#xff09;公派访问学者项目&#xff0c;因所在高校要求提前上报&#xff0c;所以委托时只留给我们11天申请时间&#xff0c;且指定日本高校。最终我们在第9天获得熊本大学邀请函&#xff0c;提前完成了客户的委托。 S老师背景…

Android平台GB28181设备接入模块如何对接NV21、YV12、RGB、YUV等外部数据

技术背景 我们在对接Android平台GB28181设备接入模块的开发者时&#xff0c;遇到这样的场景&#xff0c;除了Android设备&#xff08;如执法记录仪、智能安全帽等&#xff09;自带的camera或camera2前后摄像头数据外&#xff0c;还有些场景是需要外部编码前或编码后数据&#…

淡季不淡,满帮一季度净利创历史新高的背后原因是什么?

进入五月&#xff0c;经济复苏的成果越发体现在很多基础行业的表现中。经济的“大动脉”货运行业&#xff0c;也迎来一份新答卷。 北京时间5月22日美股盘前&#xff0c;数字货运平台满帮集团&#xff08;NYSE:YMM&#xff0c;简称&#xff1a;满帮&#xff09;&#xff0c;发布…

预约直播领券,1%服务费,视频号618大促激励来了!

视频号直播6.18大促激励计划来了&#xff01; 激励有效期为2023年05月31日20:00:00至2023年06月18日23:59:59&#xff1b;参与对象为活动期间满足视频号开播条件的。 通过视频号直播选择“购物”类目开播开通橱窗功能的商家和达人&#xff0c;可参与4大激励计划。 预约领券激…

pix2pixHD---model---生成器

然后是model的搭建&#xff1a; 在creat_model函数中&#xff1a; import torch def create_model(opt):if opt.model pix2pixHD:from .pix2pixHD_model import Pix2PixHDModel, InferenceModelif opt.isTrain:model Pix2PixHDModel()else:model InferenceModel()else:fro…

【FFH】OpenHarmony——ArkTs应用开发+正则表达式

【FFH】OpenHarmony——ArkTs应用开发正则表达式 文章目录 【FFH】OpenHarmony——ArkTs应用开发正则表达式1. 前言——系列介绍2. 本文摘要及背景2.1 摘要2.2 背景2.3 MindMap 3. 正则表达式在ArkTs的使用3.1 变量 RegExp3.2 使用3.3 贪婪模式与懒惰模式:eye_speech_bubble:Ar…

从HelloWorld深入源码了解SpringSecurity底层逻辑

文章目录 一、环境搭建1、创建项目测试1.1、搭建基础项目1.2、整合Spring Security 二、实现原理1、Spring Security的实现原理1.1、Spring Security 如何完成认证和授权1.2、Security Filters 2、 Spring Security默认配置和如何自定义配置 三、整个HelloWorld的流程分析三、H…

流程用例的签名保障,Python接口自动化框架封装案例!

目录 前言&#xff1a; 1.项目背景及需求 2.框架整体架构设计 3.接口管理模块的封装 4.用例管理模块的封装 5.请求模块的封装 6.签名模块的封装 7.案例展示及代码实现 结语&#xff1a; 前言&#xff1a; 随着互联网技术的不断发展&#xff0c;人们对于软件质量的要求…

臻图信息跟进新基建建设,构建“智慧铁路”“指挥调度”管理系统

铁路作为国民经济的骨干、国家关键性基础建设&#xff0c;在社会经济发展中起到关键性作用&#xff0c;交通在全天运行、运量多、运价少、占地面积小和安全环保等方面有着显著的优势。 近年来&#xff0c;我国高度重视铁路发展&#xff0c;2020年8月国铁集团出台《新时代交通强…

Windows系统自带远程桌面和远程协助怎么连接?

随着IT技术的发展和远程办公的兴起&#xff0c;在日常工作中&#xff0c;远程桌面和远程协助等功能已经成为很多用户需要掌握的技能之一。而对于使用Windows系统的用户来说&#xff0c;Windows系统自带的远程桌面和远程协助功能&#xff0c;更是令人欣喜的利器。下面我们就来一…

油猴安装教程及ChatGPT配置

文章目录 目录 文章目录 前言 一. 安装油猴 二、使用步骤 三.安装插件 (ChatGPT) 四. 脚本推荐 前言 作者简介: zuiacsn 座右铭: 抱怨身处黑暗,不如提灯前行 内容介绍: 油猴 油猴&#xff08;Tampermonkey&#xff09;指的是一个流行的用户脚本管理器&#xff0c;它能使…

GAMES202作业1

目录 Shadow MapCalcLightMVP函数useShadowMap函数Bias函数 最终效果 PCF两个采样函数PCF函数最终效果 PCSSfindBlocker函数PCSS函数最终效果 参考 先放上公式&#xff1a; 后面的积分项是我们在作业0中就做好的blinnphong项&#xff0c;我们要求的就是积分项前&#xff0c;等…

认识 Protobuf 及其简单使用

文章目录 一、序列化与反序列化1.1 序列化1.2 反序列化1.3 序列化与反序列化的使用场景 二、初识 Protobuf三、Protobuf 的安装四、Protobuf 的使用案例4.1 创建并编写 .proto 文件的基本规范与语法4.2 编译 .proto 文件4.3 序列化与反序列化的使用 五、总结 ProtoBuf 的使用特…

spring boot日志

日志介绍日志的使用日志级别日志持久化更简单的输入日志lombok的运行原理 日志介绍 日志的作用&#xff1a; 1&#xff1a;发现问题&#xff1b; 2&#xff1a;定位问题&#xff1b; 3&#xff1a;记录用户的行为&#xff1a;看哪些是方法用户&#xff1b;还能拿到用户的ip&am…

【云原生|探索 Kubernetes 系列 4】理解现代云原生时代的引擎

文章目录 系列文章目录&#x1f479; 关于作者一、前言|回顾二、静态和动态视图三、爆火的容器编排工具 Kubernetes 的诞生四、Kubernetes 要解决的问题是什么&#xff1f;五、理解 Kubernetes 全局架构图Master&#xff08;控制节点&#xff09;Node&#xff08;计算节点&…

源码分析:springboot如何确定当前应用程序类型

文章目录 一、介绍二、源码分析三、测试 一、介绍 大多数java后端开发的朋友们想必都是通过创建springboot项目&#xff0c;然后通过编写Controller进行接口开发的&#xff0c;该接口底层是由非响应式的servlet提供支持的&#xff0c;其接口内部逻辑为阻塞式的。但也有一部分朋…

leetcode 837. New 21 Game(新21点)

起始点数为0&#xff0c;当手上点数 < k 时抽取新的卡片&#xff0c; 每次抽取的点数范围在 1 ~ maxPts. 每次收取是独立的&#xff0c;每个点数概率相同。 当手上点数 > k 时游戏结束。 返回手上点数 < n 的概率。 思路&#xff1a; 先看特殊情况&#xff0c; k …

JQuery实现小项目

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 目录 文章目录 一、JQuery是什么 二、JQuery项目 2.1 猜数字 2.2 表白墙 2.3 聚合搜索 2.4 计算器 一、JQuery是什么 jQuery是一个快速、简洁的JavaScript框架&#xff0c;是继Prototype之…