IDEA2022版教程上(下载、卸载、安装、新建工程、jdk设置、详细设置、新建/导入/删除 普通java模块、修改普通java模块名、同时打开多个工程、常用代码模板:非空判断,遍历,输出语句快捷键)

news2024/12/28 6:31:00

0、前景摘要

0.1 概览

在这里插入图片描述

0.2 套课程适用人群

  • 初学Java语言,熟悉了记事本、EditPlus、NotePad++或Sublime Text3等简易开发工具的Java初学者
  • 熟练使用其他Java集成开发环境(IDE),需要转向IDEA工具的Java工程师们
  • 关注IDEA各方面特性的Java程序发烧友、爱好者

0.3 Why IDEA

在这里插入图片描述

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

此外,2022年,某美国软件开发商在对近千名专业的Java开发者调研后,发布了《2022年Java开发者生产力报告》。报告提到:JetBrains 的 IntelliJ IDEA是最受欢迎的 Java IDE,占 48% ,其次是 Eclipse,占24%,Visual Studio Code 占 18%。

0.4 Why IDEA 2022.x

在Java 17正式发布之前,Java开发框架Spring率先在官博宣布,Spring Framework 6和Spring Boot 3计划在2022年第四季度实现总体可用性的高端基线:

  • Java 17+(来自 Spring Framework 5.3.x 线中的 Java 8-17)
  • Jakarta EE 9+(来自Spring框架5.3.x 线中的 Java EE 7-8)

Spring 官方说明: https://spring.io/blog/2022/01/20/spring-boot-3-0-0-m1-is-now-available

在这里插入图片描述

意味着:springboot3.0 是需要用java17和spring6.0为基础建设。如果从企业选型最新springboot3.0作为架构来说,它搭配jdk17肯定是标配了。

本着" 工欲善其事必先利其器 "的精神,本套课程从IDEA的介绍、安装、设置入手,讲解IDEA中项目的创建、快捷键与模板的使用、断点调试、常用插件等。

1、 认识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、大数据、移动端程序员的喜爱。尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

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

Excel at enterprise, mobile and web development with Java, Scala and Groovy,with all the latestmodern 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的大版本每年迭代一次,大版本下的小版本(如:2022.x)迭代时间不固定,一般每年3个小版本。
    在这里插入图片描述

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

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

2. 卸载与安装

2.1 卸载过程

这里以卸载2022.1.2版本为例说明。在【控制面板】找到【卸载程序】
在这里插入图片描述

右键点击或左键双击IntelliJ IDEA 2022.1.2进行卸载:
在这里插入图片描述

如果需要保留下述数据,就不要打√。如果想彻底删除IDEA所有数据,那就打上√。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

软件卸载完以后,还需要删除其它几个位置的残留:
在这里插入图片描述
在这里插入图片描述

2.2 安装前的准备

在这里插入图片描述

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

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

2.3 安装过程

  1. 下载完安装包,双击直接安装
    在这里插入图片描述

  2. 欢迎安装
    在这里插入图片描述

  3. 是否删除电脑上低版本的IDEA(如果有,可以选择忽略)
    在这里插入图片描述

  • 如果电脑上有低版本的IDEA,可以选择删除或保留。
  • 这里没有卸载旧版本,如果需要卸载,记得勾选下面的保留旧的设置和配置。
  1. 选择安装目录
    在这里插入图片描述
    选择安装目录,目录中要避免中文和空格。
    在这里插入图片描述

  2. 创建桌面快捷图标等
    在这里插入图片描述
    确认是否与.java、.groovy、.kt 格式文件进行关联。这里建议不关联。

  3. 在【开始】菜单新建一个文件夹(这里需要确认文件夹的名称),来管理IDEA的相关内容。
    在这里插入图片描述
    在这里插入图片描述

  4. 完成安装
    在这里插入图片描述
    重启以后,单击登录:
    在这里插入图片描述

2.4 注册

首先,需要通过用户协议:
在这里插入图片描述

是否同意发送用户数据(特性、使用的插件、硬件与软件配置等),建议选择:不发送。
在这里插入图片描述

接着,会提示我们进行注册。

  • 选择1:适用30天。在IDEA2022.1.2版本中,需要先登录,才能开启适用。
    在这里插入图片描述

  • 选择2:付费购买旗舰版
    在这里插入图片描述
    在这里插入图片描述

  • 选择3:(推荐)

    • 大家参照《 .\03-资料\01-IDEA 2022.1 注册文档\IntelliJ IDEA2022.1注册文档.docx 》操作即可。
    • 由于存在时效性,如果失效,大家可以自行搜索注册方式即可。

2.5 闪退问题

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

问题描述2:进入到安装目录…\IntelliJ IDEA 2022.1.2\bin,打开CMD。输入idea,发现报错。

解决办法:
打开C:\Users\songhk\AppData\Roaming\JetBrains\IntelliJIdea2022.1\idea64.exe.vmoptions这个文件。
在这里插入图片描述

内容如下所示:
在这里插入图片描述

删除红框的数据以后,再登录即可正常进入。
在这里插入图片描述

原因:之前使用过的比如2021.2.2版本,pojie了。新版IEDA太智能了,把现有的启运参数也都复制过去了。又因为最新的IDEA,不兼容pojie程序-javaagent:D:\develop_tools\IDEA\IntelliJ IDEA2021.2.2\bin\jetbrains-agent.jar了,所以报错了,所以JVM结束了,所以没有启动画面,凉凉了。

3. HelloWorld的实现

在这里插入图片描述

3.1 新建Project - Class

选择"New Project":
在这里插入图片描述

指名工程名、存放的位置、使用的JDK版本等信息。如下所示:
在这里插入图片描述

接着创建Java类:
在这里插入图片描述
在这里插入图片描述

3.2 编写代码

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

3.3 运行

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

4. 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. 详细设置

5.1 如何打开详细配置界面

1、显示工具栏(可选)

右边的工具栏显示到左边了,没啥用。
在这里插入图片描述

2、选择详细配置菜单或按钮

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

5.2 系统设置

1、默认启动项目配置

在这里插入图片描述

启动IDEA时,默认自动打开上次开发的项目?还是自己选择?

如果去掉Reopen last project on startup前面的对勾,每次启动IDEA就会出现如下界面:

:打钩会默认打开最近使用的工作空间,不大勾它会显示你的所有工作空间,之后根据你自己的选择进行打开。
在这里插入图片描述

2、取消自动更新

Settings-->Appearance & Behavior->System Settings -> Updates
在这里插入图片描述

默认都打√了,建议检查IDE更新的√去掉,检查插件更新的√选上。

5.3 设置整体主题

1、选择主题

在这里插入图片描述

2、设置菜单和窗口字体和大小

在这里插入图片描述

3、设置IDEA背景图

在这里插入图片描述

选择一张合适的图片作为背景,即可。
在这里插入图片描述

5.4 设置编辑器主题样式

1、编辑器主题

在这里插入图片描述

2、字体大小

打钩后,可以使用鼠标滚轮来调整字体大小。
在这里插入图片描述

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

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

3、注释的字体颜色

在这里插入图片描述

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

5.5 显示行号与方法分隔符

方法和方法之间会显示分隔符。

在这里插入图片描述

5.6 代码智能提示功能

在这里插入图片描述

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

5.7 自动导包配置

  • 默认需要自己手动导包,Alt+Enter快捷键
    在这里插入图片描述

  • 自动导包设置

    • 动态导入明确的包: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}
 * Package: ${PACKAGE_NAME}
 * Description:
 *
 * @Author 尚硅谷-宋红康
 * @Create ${DATE} ${TIME}
 * @Version 1.0
 */

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

${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切换中英文输入方式,经常被按到,总是弹出搜索框,太麻烦了。可以取消它。使用ctrl+n同样可以进行搜索。

在这里插入图片描述

  • 方式1:适用于IDEA 2022.1.2版本
    在2022.1版本中,采用如下方式消双击shift出现搜索框:搜索double即可,勾选Disabledouble modifierkey shortcuts,禁用这个选项。
    在这里插入图片描述

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

5.14 其它设置

  • 是否在单行显式编辑器选项卡(建议去掉勾选
    效果:多个窗口超出导航栏时,打钩会进行折叠多余的窗口,取消掉打钩多出的窗口会在第二行显示。
    在这里插入图片描述

  • 设置代码样式:比如,设置import显示"*"时的个数
    导入的来自同一个包的Api超过5个时,会用*显示。
    在这里插入图片描述

总结:
以上这些设置看似只是针对当前Project设置的,但是新建的其它Project也是同样适用的。

6. 工程与模块管理

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和userhessian-module等等,模块之间彼此可以 相互依赖 ,有着不可分割的业务关系。因此,对于一个Project
来说:

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

6.3 创建Module(普通java module)

建议创建“Empty空工程”,然后创建多模块,每一个模块可以独立运行,相当于一个小项目。JavaSE阶段不涉及到模块之间的依赖。后期再学习模块之间的依赖。
步骤:
(1)选择创建模块
在这里插入图片描述

(2)选择模块类型:这里选择创建Java模块,给模块命名,确定存放位置
在这里插入图片描述

(3)模块声明在工程下面
在这里插入图片描述

6.4 删除模块

(1)移除模块
在这里插入图片描述
在这里插入图片描述

(2)彻底删除模块
在这里插入图片描述

6.5 导入老师的模块

(1)将老师的模块 teacher_chapter04 整个的复制到自己IDEA项目的路径下
在这里插入图片描述

接着打开自己IDEA的项目,会在项目目录下看到拷贝过来的module,只不过不是以模块的方式呈现。
在这里插入图片描述

(2)查看Project Structure,选择import module
在这里插入图片描述
在这里插入图片描述

(3)选择要导入的module:
在这里插入图片描述
在这里插入图片描述

(4)接着可以一路Next下去,最后选择Overwrite
在这里插入图片描述
在这里插入图片描述
最后点击OK即可了。

6.6 修改模块名

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

6.7 同时打开两个IDEA项目工程

1、两个IDEA项目工程效果

有些同学想要把上课练习代码和作业代码分开两个IDEA项目工程。
在这里插入图片描述
在这里插入图片描述

2、新建一个IDEA项目

注意:第一次需要新建,之后直接打开项目工程即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、打开两个IDEA项目

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

6.8 导入前几章非IDEA工程代码

1、创建chapter01、chapter02、chapter03等章节的module

将相应章节的源文件粘贴到module的src下。
在这里插入图片描述
在这里插入图片描述

打开其中各个源文件,会发现有乱码。比如:
在这里插入图片描述

2、设置编码

当前项目是UTF-8。如果原来的.java文件都是GBK的(如果原来.java文件有的是GBK,有的是UTF-8就比较麻烦了)。

可以单独把这两个模块设置为GBK编码的(一国两制)。
在这里插入图片描述

改为GBK,确认即可。如图:
在这里插入图片描述

7. 代码模板的使用

7.1 查看Postfix Completion模板(后缀补全)

在这里插入图片描述

7.2 查看Live Templates模板(实时模板)

在这里插入图片描述

7.3 常用代码模板

1、非空判断

  • 变量.null:if(变量 == null)
  • 变量.nn:if(变量 != null)
  • 变量.notnull:if(变量 != null)
  • ifn:if(xx == null)
  • inn:if(xx != null)

2、遍历数组和集合

  • 数组或集合变量.fori:for循环
  • 数组或集合变量.for:增强for循环
  • 数组或集合变量.forr:反向for循环
  • 数组或集合变量.iter:增强for循环遍历数组或集合

3、输出语句

  • sout:相当于System.out.println
  • soutm:打印当前方法的名称
  • soutp:打印当前方法的形参及形参对应的实参值
  • soutv:打印方法中声明的最近的变量的值
  • 变量.sout:打印当前变量值
  • 变量.soutv:打印当前变量名及变量值

4、对象操作

  • 创建对象
    • Xxx.new .var :创建Xxx类的对象,并赋给相应的变量
    • Xxx.new .field:会将方法内刚创建的Xxx对象抽取为一个属性
  • 强转
    • 对象.cast:将对象进行强转
    • 对象.castvar:将对象强转后,并赋给一个变量

5、静态常量声明

  • psf:public static final
  • psfi:public static final int
  • psfs:public static final String
  • prsf:private static final

7.4 自定义代码模板

1、自定义后缀补全模板

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

2、自定义Live Templates

例如:定义sop代表System.out.print();语句
①在Live Templates中增加模板
在这里插入图片描述

②先定义一个模板的组,这样方便管理所有自定义的代码模板
在这里插入图片描述

③在模板组里新建模板
在这里插入图片描述

④定义模板(以输出语句为例)
在这里插入图片描述

  • Abbreviation:模板的缩略名称
  • Description:模板的描述
  • Template text:模板的代码片段
  • 模板应用范围。比如点击Define。选择如下:应用在java代码中。
    在这里插入图片描述

其它模板1:单元测试模板:

@Test
public void test$var1$(){
	$var2$
}

在这里插入图片描述

其它模板2:创建多线程

new Thread(){
	public void run(){
		$var$
	}
};

在这里插入图片描述

其它模板3:冒泡排序

for(int $INDEX$ = 1; $INDEX$ < $ARRAY$.length; $INDEX$++) {
	for(int $INDEX2$ = 0; $INDEX2$ < $ARRAY$.length-$INDEX$; $INDEX2$++) {
		if($ARRAY$[$INDEX2$] > $ARRAY$[$INDEX2$+1]){
			$ELEMENT_TYPE$ temp = $ARRAY$[$INDEX2$];
			$ARRAY$[$INDEX2$] = $ARRAY$[$INDEX2$+1];
			$ARRAY$[$INDEX2$+1] = temp;
		}
	}
}

在这里插入图片描述

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

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

相关文章

BPMN2.0 任务-脚本任务

描述 脚本任务(script task)是自动执行的活动。当流程执行到达脚本任务时,会执行相应的脚本。 脚本任务用左上角有一个小“脚本”图标的标准BPMN 2.0任务(圆角矩形)表示。 脚本任务使用script与scriptFormat元素定义。 <scriptTask id="theScriptTask" nam…

Qt中的绘图事件

文章目录 QPainter 绘图绘图设备QPixmap QPainter 绘图 绘图事件 void paintEvent()声明一个画家对象 QPainter painter(this) this指定绘图设备画线、画圆、画矩形、画文字设置画笔 QPen 设置画笔宽度 、风格设置画刷 QBrush 设置画刷 风格 测试 #include "widget.h&quo…

科学计算库Numpy快速入门

目录 Numpy概述array数组数组结构数组类型数值运算排序操作数组形状操作数组生成函数四则运算随机模块文件读写 Numpy概述 NumPy 是 Python 中的一个开源数学库&#xff0c;提供了快速且便捷的数组处理功能&#xff0c;可以用来进行科学计算、数据分析、算法开发等多种任务。N…

InnoDB 磁盘结构及表空间 ( Tablespaces )

InnoDB磁盘主要包含Tablespaces&#xff0c;InnoDB Data Dictionary、Doublewrite Buffer、redo log和Undo Logs Tablespaces: 表空间分为系统表空间&#xff08;ibdata1文件&#xff09;、临时表空间、常规表空间、Undo表空间以及file-per-table表空间。系统表空间又包括双写…

CDH6.3.2-组件安装安全认证

HDFS 1.选择自定义。 2.选择HDFS ZK YARN然后点继续。 3.选择安装的主机。 4.审核更改默认就行&#xff0c;点继续。 5.配置HDFS的HA。 安装好以后点击hdfs进入实例就能够看到启动了高可用。 6.启动YARN的高可用。 KAFKA 更具需求修改资源 一直点继续就行了 FlUME HI…

CTF权威指南 笔记 -第二章二进制文件- 2.3 -静态链接

目录 地址空间分配 两个链接的方式 按序叠加 相似节合并 静态链接的详细过程 虚拟内存 重定位文件 静态链接库 地址空间分配 我们把之前的两函数分为两个文件 main.c extern int shared extern vooid fun(int *a,int *b); int main(){int a100;func(&a,&share…

MySQL监控告警及可视化:Zabbix+Percona PMP实现(Part III)

MySQL监控告警及可视化&#xff1a;ZabbixPercona PMP实现&#xff08;Part III&#xff09; 告警配置配置告警邮箱配置告警消息模板配置告警用户配置告警规则告警测试 告警配置 配置告警邮箱 在Zabbix Web前端的 Administration - Media Types - Email 中配置发送告警信息的…

什么是恺撒密码?如何用Python实现它(36)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 猫妹目前在看的&#xff0c;ycl Python等级考试五级教材&#xff0c;有一章是介绍恺撒密码的。 今天&#xff0c;咱们…

2023-5-2面试题学习

1、内存的可见性你了解吗&#xff0c;讲述一下&#xff1f; 内存可见性是指多个线程访问同一共享变量时&#xff0c;在一个线程修改了该变量值后&#xff0c;下一个线程能立即看到这种变化的能力。 如果一个变量在多个线程间共享&#xff0c;那么为了避免出现数据不一致的情况&…

为什么DDD难落地?

为什么DDD难落地&#xff1f; lorne 2023-04-23 视频地址&#xff1a; 为什么DDD难落地&#xff1f;_哔哩哔哩_bilibili 洋葱架构图&#xff1a; DDD能解决什么问题&#xff1f; 其实DDD的核心是&#xff1a;提升业务的聚合性、提升业务的拓展性。 DDD的错误认知&#xff…

CentOS7安装和部署Jenkins

安装Java环境 检查旧版&#xff1a; rpm -qa | grep java若已经安装了旧版本&#xff0c;则需要先删除&#xff0c;删除方法&#xff1a; rpm -qa nodeps [java package]安装新版&#xff1a; yum install java-11-openjdk yum install java-11-openjdk-devel&#xff08;开…

07 KVM虚拟机引导固件安装

文章目录 07 KVM虚拟机引导固件安装7.1 概述7.2 安装方法7.2.1 安装edk软件包7.2.2 查询edk软件是否安装成功 07 KVM虚拟机引导固件安装 7.1 概述 针对不同的架构&#xff0c;引导的方式有所差异。x86支持UEFI&#xff08;Unified Extensible Firmware Interface&#xff09;…

MySQL示例数据库(MySQL Sample Databases) 之 World数据库

文章目录 MySQL示例数据库(MySQL Sample Databases) 之 World数据库官方示例数据介绍World数据库World 数据库安装world-db/world.sql的脚本内容参考 MySQL示例数据库(MySQL Sample Databases) 之 World数据库 官方示例数据介绍 MySQL 官方提供了多个示例数据库&#xff0c;在…

【致敬未来的攻城狮计划】— 连续打卡第十九天:RA2E1串口通信基础知识

系列文章目录 1.连续打卡第一天&#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验&#xff0c;了解一下 2.开发环境的选择和调试&#xff08;从零开始&#xff0c;加油&#xff09; 3.欲速则不达&#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

什么是GPT模型,GPT下载和国内镜像

什么是GPT模型&#xff0c;GPT模型是通过预训练的方式&#xff0c;采用无监督学习方式&#xff0c;大量语料输入&#xff0c;经过多次训练后得到模型。它能够自动学习并理解自然语言中的语义、句法和语法信息&#xff0c;并可以用于文本生成、对话系统、情感分析、机器翻译等自…

HTTP第二讲——HTTP相关概念

与HTTP 相关的各种应用 1.网络世界 实际的互联网是由许许多多个规模略小的网络连接而成的&#xff0c;这些“小网络”可能是只有几百台电脑的局域网&#xff0c;可能是有几万、几十万 台电脑的广域网&#xff0c;可能是用电缆、光纤构成的固定网络&#xff0c;也可能是用基站、…

SQL之SQL索引

文章目录 一、索引概述介绍演示优缺点 二、索引结构二叉树B-Tree (多路平衡查找树)BTreeHash 三、索引分类四、索引语法五、SQL性能分析SQL执行频率慢查询日志profile详情 索引使用原则验证索引效率最左前缀法则索引列运算字符串不加引号模糊查询or连接的条件数据分布影响 .SQL…

[LeetCode周赛复盘] 第 103 场双周赛20230429

[LeetCode周赛复盘] 第 103 场双周赛20230429 一、本周周赛总结2656. K 个元素的最大和1. 题目描述2. 思路分析3. 代码实现 2657. 找到两个数组的前缀公共数组1. 题目描述2. 思路分析3. 代码实现 2658. 网格图中鱼的最大数目1. 题目描述2. 思路分析3. 代码实现 2659. 将数组清…

二分(整数二分 浮点数二分)

目录 一、整数二分 模板 右边界二分查找&#xff08;左开右闭&#xff09; 左边界二分查找&#xff08;左闭右开&#xff09; 应用 数的范围 二、浮点数的二分 模板 应用 算术平方根 三、习题 1.数的三次方根 一、整数二分 tip&#xff1a;满足单调性的数组一定可以…

【Linux】进程优先级 + 环境变量

文章目录 &#x1f4d6; 前言1. 进程优先级1.1 什么是优先级&#xff1a;1.2 如何修改优先级&#xff1a; 2. 进程的其他概念2.1 竞争性与独立性&#xff1a;2.2 并行与并发&#xff1a;2.3 进程间优先级的体现&#xff1a;2.4 O(1) 调度算法&#xff1a;2.4 进程上下文&#x…