IDEA2022版教程下()

news2025/1/11 11:05:04

8.快捷键的使用

8.1 常用快捷键

见《 尚硅谷_宋红康_IntelliJ IDEA 常用快捷键一览表.md 》

8.2 查看快捷键

1、已知快捷键操作名,未知快捷键

在这里插入图片描述

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

在这里插入图片描述

8.3 自定义快捷键

在这里插入图片描述

8.4 使用其它平台快捷键

苹果电脑或者是用惯Eclipse快捷的,可以选择其他快捷键插件。

在这里插入图片描述

9. IDEA断点调试(Debug)

9.1 为什么需要Debug

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

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

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

9.2 Debug的步骤

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

1、添加断点

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

在这里插入图片描述

2、启动调试

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

3、单步调试工具介绍

在这里插入图片描述


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

9.3 多种Debug情况介绍

1、行断点

  • 断点打在代码所在的行上。执行到此行时,会停下来。
package com.atguigu.debug;
/**
* ClassName: Debug01
* Package: com.atguigu.debug
* Description: 演示1:行断点 & 测试debug各个常见操作按钮
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 18:44
* @Version 1.0
*/
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;
	}
}

2、方法断点

  • 断点设置在方法的签名上,默认当进入时,断点可以被唤醒。

  • 也可以设置在方法退出时,断点也被唤醒
    在这里插入图片描述

  • 在多态的场景下,在父类或接口的方法上打断点,会自动调入到子类或实现类的方法

package com.atguigu.debug;
import java.util.HashMap;
/**
* ClassName: Debug02
* Package: com.atguigu.debug
* Description: 演示2: 方法断点
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 21:15
* @Version 1.0
*/
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);
	}
}

3、字段断点

  • 在类的属性声明上打断点,默认对属性的修改操作进行监控
    在这里插入图片描述
package com.atguigu.debug;
/**
* ClassName: Debug03
* Package: com.atguigu.debug
* Description: 演示3:字段断点
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 21:34
* @Version 1.0
*/
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 +
		'}';
	}
}

4、条件断点

package com.atguigu.debug;
/**
* ClassName: Debug04
* Package: com.atguigu.debug
* Description: 演示4:条件断点
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 21:49
* @Version 1.0
*/
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的条件下,执行断点。
在这里插入图片描述

5、异常断点

  • 对异常进行跟踪。如果程序出现指定异常,程序就会执行断点,自动停住。
package com.atguigu.debug;
import java.util.Date;
/**
* ClassName: Debug05
* Package: com.atguigu.debug
* Description: 演示5:异常断点
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 22:01
* @Version 1.0
*/
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());
	}
}

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

6、线程调试

package com.atguigu.debug;
/**
* ClassName: Debug06
* Package: com.atguigu.debug
* Description: 演示6:线程调试
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 22:46
* @Version 1.0
*/
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();
		}
}

在这里插入图片描述

7、强制结束

package com.atguigu.debug;

/**
*ClassName: Debug07
*Package: com.atguigu.debug
*Description: 演示7:强制结束
*
*@Author: 尚硅谷-宋红康
* @Create: 2022/10/20 23:15
*@Version 1.0
*/
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("断开连接");
	}
}

在这里插入图片描述

9.4 自定义调试数据视图

package com.atguigu.debug;
import java.util.HashMap;
/**
* ClassName: Debug08
* Package: com.atguigu.debug
* Description: 演示8:用户自定义数据视图
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 23:21
* @Version 1.0
*/
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);
	}
}

设置如下:

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

9.5 常见问题

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

小结:

经验:初学者对于在哪里加断点,缺乏经验,这也是调试程序最麻烦的地方,需要一定的经验。 简单来说,在可能发生错误的代码的前面加断点。如果不会判断,就在程序执行的起点处加断点。

10.创建不同类型的工程

10.1 创建Java工程

在工程上,右键- New - Module,如下:
在这里插入图片描述

指明Java工程的名称及使用的JDK版本:
在这里插入图片描述

创建包:
在这里插入图片描述

提供包名:
在这里插入图片描述

在包下创建类,即可:
在这里插入图片描述

提供类名:
在这里插入图片描述

测试代码:
在这里插入图片描述

点击运行即可:
在这里插入图片描述

10.2 创建Java Web工程

1、IDEA中配置Tomcat

在IDEA中配置Tomcat之前,需要保证已经安装并配置了Tomcat的环境变量。如果没有安装并配置,可以 参考《 尚硅谷_宋红康_Tomcat8.5快速部署.docx 》配置完成以后,在命令行输入:catalina run 。能够启动tomcat,则证明安装配置成功。

下面看如何在IDEA中配置:
在这里插入图片描述

配置Tomcat Server的位置:
在这里插入图片描述

这里配置Tomcat的名称以及配置应用服务器的位置。根据自己Tomcat的安装位置决定。
在这里插入图片描述

配置好后,如下图所示:
在这里插入图片描述

2、创建Web工程

在这里插入图片描述

选择New Module,指明当前工程的名称:
在这里插入图片描述

选中当前创建的工程,添加框架支持:
在这里插入图片描述

选择:Web Application,选择Create web.xml,如下:

在这里插入图片描述

3、配置web工程并运行

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

部署当前的web项目:
在这里插入图片描述

选择第2项:
在这里插入图片描述

可以修改Application context,如下:
在这里插入图片描述

配置当前web工程的详细信息,如下:
在这里插入图片描述

配置好后,可以直接运行:

在这里插入图片描述

4、乱码的解决

如果Tomcat日志出现乱码,需要配置:
在这里插入图片描述

解决方案:
1)点击Help => Edit custom VM Options,在最后面添加

-Dfile.encoding=UTF-8

2)在当前Tomcat实例中配置 VM option,添加

-Dfile.encoding=UTF-8

在第二步的Startup/Connection页签的Run和Debug添加一个key为 JAVA_TOOL_OPTIONS , value为“ -Dfile.encoding=UTF-8 ”的环境变量

3)保存后重启IDEA,可以发现控制台中文乱码显示正常了。

10.3 创建Maven Java工程

1、Maven的介绍

在这里插入图片描述

Maven是一款自动化构建工具,专注服务于Java平台的 项目构建依赖管理 。在JavaEE开发的历史上构建工具的发展也经历了一系列的演化和变迁:

Make→Ant→Maven→Gradle→其他……

构建环节:
在这里插入图片描述
①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将Java源程序编译为字节码文件。
③测试:运行单元测试用例程序,确保项目在迭代开发过程中关键点的正确性。
④报告:测试程序的结果。
⑤打包:将java项目打成jar包;将Web项目打成war包。
⑥安装:将jar包或war包安装到本地仓库中。
⑦部署:将jar或war从Maven仓库中部署到Web服务器上运行。

2、Maven的配置

maven的下载 – 解压 – 环境变量的配置这里就不赘述了,需要的参考03-资料\05-Maven的配置中的《尚硅谷_Maven的配置_V2.0.docx》。下面直接整合Maven。选择自己Maven的目录,和settings文件,然后配置自己的仓库reposiroty。
在这里插入图片描述

3、Maven Java工程的创建

在这里插入图片描述

指明当前maven工程的名称、模板等信息。这里要求一个项目组的jdk版本必须一致。
通过坐标,就可以定位仓库中具体的jar包。如下:

在这里插入图片描述

新创建的maven 的java工程缺少相应的resources文件目录,需要创建如下:
在这里插入图片描述
在这里插入图片描述

指明main下resources的文件目录类型:
在这里插入图片描述

类似的操作test目录下,提供resources即可。
这里说明Maven的java工程的目录结构:

工程名
	src
	----main
	--------java
	--------resources
	----test
	--------java
	--------resources 
	pom.xml
  • main目录用于存放主程序。
  • test目录用于存放测试程序。
  • java目录用于存放源代码文件。
  • resources目录用于存放配置文件和资源文件。

4、编写代码及测试

第1步:创建Maven的核心配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        
		<groupId>com.atguigu.maven</groupId>
		<artifactId>maven-01</artifactId>
		<version>1.0-SNAPSHOT</version>
		
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.12</version>
				<scope>test</scope>
			</dependency>
			
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>8.0.18</version>
				</dependency>
		</dependencies>

</project>

第2步:编写主程序代码
在src/main/java/com/atguigu/java目录下新建文件HelloMaven.java

package com.atguigu.java;
/**
* ClassName: HelloMaven
* Package: com.atguigu.java
* Description:
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 18:20
* @Version 1.0
*/
public class HelloMaven {
	public String sayHello(String message) {
		return "Hello, " + message + "!";
	}
}

第3步:编写测试代码
在/src/test/java/com/atguigu/java目录下新建测试文件HelloMavenTest.java

package com.atguigu.java;
import org.junit.Test;
/**
* ClassName: HelloMavenTest
* Package: com.atguigu.java
* Description:
*
* @Author: 尚硅谷-宋红康
* @Create: 2022/10/20 18:21
* @Version 1.0
*/
public class HelloMavenTest {
	@Test
	public void testHelloMaven() {
		HelloMaven helloMaven = new HelloMaven();
		System.out.println(helloMaven.sayHello("Maven"));
	}
}

第4步:运行几个基本的Maven命令
在这里插入图片描述

目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。

比如这里install,如果其他项目需要将这里的模块作为依赖使用,那就可以install。安装到本地仓库的位置。
在这里插入图片描述

10.4 创建Maven Web工程

1、创建Maven的Web工程步骤

在这里插入图片描述

指明Maven的web工程的名称和模板。如下:

在这里插入图片描述

在Tomcat上进行部署:
在这里插入图片描述

配置部署的详细信息:

在这里插入图片描述

2、开发jsp依赖jar包

1、找不到HttpServlet错误
如果看到JSP报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path可以加入如下依赖解决。

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>

2、EL表达式没有提示问题
${pageContext}这个EL表达式中通过pageContext对象访问reuqest属性时本身是应该有提示的,但如果没有的话加入下面依赖即可。

<dependency>
	<groupId>javax.servlet.jsp</groupId>
	<artifactId>jsp-api</artifactId>
	<version>2.1.3-b06</version>
	<scope>provided</scope>
</dependency>

同时,针对index.jsp文件,修改一下文件头信息为:

<%@page language="java" pageEncoding="utf-8" contentType="text/html;UTF-8" %>

11.关联数据库

11.1 关联方式

找到数据库选项:
在这里插入图片描述

添加指定数据库:
在这里插入图片描述

配置MySQL数据库的详细信息:

在这里插入图片描述

表面上很多人认为配置 Database 就是为了有一个 GUI 管理数据库功能,但是这并不是 IntelliJ IDEA 的Database 最重要特性。数据库的 GUI 工具有很多,IntelliJ IDEA 的 Database 也没有太明显的优势。

IntelliJ IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等。

11.2 常用操作

在这里插入图片描述

  • 图标1:同步当前的数据库连接。这个是最重要的操作。配置好连接以后或通过其他工具操作数据库以后,需要及时同步
  • 图标2:配置当前的连接
  • 图标3:断开当前的连接
  • 图标4:显示相应数据库对象的数据
  • 图标5:编辑修改当前数据库对象

展示ER图:
在这里插入图片描述

可以导出文件:
在这里插入图片描述

12.IDEA常用插件

推荐1:Alibaba Java Coding Guidelines

在这里插入图片描述

阿里巴巴Java编码规范检查插件,检测代码是否存在问题,以及是否符合规范。

使用:在类中,右键,选择编码规约扫描,在下方显示扫描规约和提示。根据提示规范代码,提高代码 质量。

推荐2:jclasslib bytecode viewer

在这里插入图片描述

可视化的字节码查看器。
使用:

  1. 在 IDEA 打开想研究的类。
  2. 编译该类或者直接编译整个项目( 如果想研究的类在 jar 包中,此步可略过)。
  3. 打开“view” 菜单,选择“Show Bytecode With jclasslib” 选项。
  4. 选择上述菜单项后 IDEA 中会弹出 jclasslib 工具窗口。

在这里插入图片描述

英文设置:
在 Help -> Edit Custom VM Options …,加上

-Duser.language=en

推荐3:Translation

在这里插入图片描述

注册翻译服务(有道智云、百度翻译开放平台、阿里云机器翻译)帐号,开通翻译服务并获取其应用ID 和密钥 绑定应用ID和密钥:偏好设置(设置) > 工具 > 翻译 > 常规 > 翻译引擎 > 配置…

使用:鼠标选中文本,点击右键即可自动翻译成多国语言。

注:请注意保管好你的应用密钥,防止其泄露。

推荐4:GenerateAllSetter

在这里插入图片描述

实际开发中还有一个非常常见的场景: 我们创建一个对象后,想依次调用 Setter 函数对属性赋值,如果属性较多很容易遗漏或者重复。

在这里插入图片描述

可以使用这 GenerateAllSetter 提供的功能,快速生成对象的所有 Setter 函数(可填充默认值),然后自己再跟进实际需求设置属性值。

插件5:Rainbow Brackets

在这里插入图片描述

给括号添加彩虹色,使开发者通过颜色区分括号嵌套层级,便于阅读
在这里插入图片描述

推荐6:CodeGlance Pro

在这里插入图片描述

在编辑器右侧生成代码小地图,可以拖拽小地图光标快速定位代码,阅读行数很多的代码文件时非常实 用。
在这里插入图片描述

推荐7:Statistic

在这里插入图片描述

代码统计工具。

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

推荐8:Presentation Assistant

在这里插入图片描述

显示快捷键操作的按键

推荐9:Key Promoter X

在这里插入图片描述

快捷键提示插件。当你执行鼠标操作时,如果该操作可被快捷键代替,会给出提示,帮助你自然形成使 用快捷键的习惯,告别死记硬背。

推荐10:JavaDoc

在这里插入图片描述

alt+insert ,执行操作:
在这里插入图片描述

推荐11: LeetCode Editor

在这里插入图片描述

在这里插入图片描述
在 IDEA 里刷力扣算法题

推荐12:GsonFormatPlus

在这里插入图片描述

根据 json 生成对象。
使用:使用alt + s 或 alt + insert调取。
在这里插入图片描述

举例:

{
	"name": "tom",
	"age": "18",
	"gender": "man", "hometown": {
		"province": "河北省",
		"city": "石家庄市",
		"county": "正定县"
	}
}

插件13:Material Theme UI

在这里插入图片描述

对于很多人而言,写代码时略显枯燥的,如果能够安装自己喜欢的主题将为开发工作带来些许乐趣。
IDEA 支持各种主题插件,其中最出名的当属 Material Theme UI。

在这里插入图片描述

安装后,可以从该插件内置的各种风格个选择自己最喜欢的一种。

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

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

相关文章

改进YOLOv5: | 涨点神器 | 即插即用| ICLR 2022!Intel提出ODConv:即插即用的动态卷积

OMNI-DIMENSIONAL DYNAMIC CONVOLUTION ODConv实验核心代码ODConv代码yaml文件运行:论文链接: https://openreview.net/forum?id=DmpCfq6Mg39 本文介绍了一篇动态卷积的工作:ODConv,其通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插…

Java8流式操作——中间操作

文章目录 什么是中间操作&#xff1f;方法实践说明一、前提条件Person类Data类 二、操作filter:过滤distinct:去重&#xff08;去除集合中重复的元素&#xff09;sorted:排序①、sorted():无参构造②、sorted(Compartor compartor)&#xff1a;有参构造 skip:跳过。从前往后数&…

【Python入门篇】Python开发环境的搭建——安装和配置PyCharm工具

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; Python入门&#xff0c;本专栏主要内容为Python的基础语法&#xff0c;Python中的选择循环语句…

闲谈【Stable-Diffusion WEBUI】的插件:绘图过程动画输出

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;过程动画输出&#xff08;Steps Animation&#xff09;&#xff08;1.1&#xff09;使用&#xff08;1.2&#xff09;成果 &#xff08;零&#xff09;前言 本篇主要提到WEBUI的过程动画输出插件&#xff0c…

Docker 持久化存储 Volumes

Docker 持久化存储 Volumes 简介如何选择 -v 和 --mount-v或--volume--mount 创建和管理卷启动带有卷的容器使用Docker Compose的卷使用卷启动服务使用只读卷备份、恢复或迁移数据卷备份卷 删除卷自动删除匿名卷删除所有未使用卷 简介 官方文档: https://docs.docker.com/stor…

Python JS逆向篇(四)

Python JS逆向篇&#xff08;四&#xff09; 找到参数加密位置跟进window.asrsea函数结果扣取的js代码扩展 逆向主题&#xff1a;某易云评论数据&#xff0c;请求时的加密参数。 &#xff08;注&#xff1a;文章所涉及内容只做学习参考交流&#xff0c;不做除此之外的任何其它用…

正则表达式基础一

BRE(basic regular expression)&#xff1a;匹配数据流中的文本字符 普通文本匹配 特殊字符 正则表达式存在一些特殊字符&#xff0c;如需当成普通文本来匹配&#xff0c;必须加上转义&#xff0c;即反斜杠\&#xff0c;如下所示 .*[]^${}?|() 指定出现位置的字符 ^ 指定行首…

Python两三行代码轻松批量添加~防韩还是很有必要的~

人生苦短&#xff0c;我用python 一直想做一个这种系列的但是因为七七八八的事情总是忘记&#xff0c; 今天正好有空&#xff0c;来开整一下~ 首先&#xff0c; 天冷防韩是什么梗&#xff1f; 【天冷防韩】 “天冷防韩”是“天冷防寒”的谐音&#xff0c; 不过“寒”指的…

编程工具集-我的JavaScript/TypeScript/NodeJS实用工具模块

JavaScript/TypeScript编程工具集 JavaScript/TypeScript/NodeJS实用工具模块 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https…

【微服务 | 学成在线】项目易错重难点分析(媒资管理模块篇·上)

文章目录 模块整体认识架构问题分析nacos配置管理搭建nacos公用配置配置优先级网关搭建 分布式文件系统什么是分布式文件系统MinIO数据恢复测试SDK 上传图片http请求头中的content-typeRequestPart接口分析Service层的优化 上传视频断点续传技术java代码模拟分块与合并上传视频…

BFD场景作用及缺省配置

一、BFD缺省配置 表&#xff1a;BFD参数缺省值 二、BFD场景作用 表&#xff1a;BFD场景作用 三、BFD配置缺省参数汇总 1&#xff09;配置BFD单跳检测 图&#xff1a;BFD单跳检测配置流程图 执行命令bfd&#xff0c;使能全局BFD功能并进入BFD视图。缺省情况下&#xff0c;全…

30天、2000公里、400亿,“长沙国际工程机械展”竖起世界展会新地标

文|智能相对论 作者|佘凯文 2021年4月的一天&#xff0c;一台重达120吨的日立建机超大型液压挖掘机在日本的某港口装载完成&#xff0c;或许绝大多人对120吨没有概念&#xff0c;给大家解释下&#xff0c;一吨等于2000斤&#xff0c;120吨就是240000斤。金箍棒知道吧&#xf…

RocketMQ学习1

1、RocketMQ快速入门 RocketMQ是阿里巴巴2016年MQ中间件&#xff0c;使用Java语言开发&#xff0c;在阿里内部&#xff0c;RocketMQ承接了例如“双11”等高并发场景的消息流转&#xff0c;能够处理万亿级别的消息。 1.1 准备工作 1.1.1 下载RocketMQ RocketMQ最新版本&#xff…

【垃圾回收器】基于Go实现引用计数法(ReferenceCount)

不想传火的&#xff0c;可以点击下面的链接&#xff01; github:GCByGO 给我点赞嘛&#xff0c;球球了&#xff01; What This? 现象 引用计数法是一种垃圾回收算法&#xff0c;用于跟踪对象被引用的次数。在该算法中&#xff0c;每个对象都会维护一个计数器&#xff0c…

PyTorch:深度学习框架的优雅演进与设计理念

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

【Linux】文件与路径

一、Linux相关软件 xftp&#xff1a;用来传文件 xshell&#xff1a;用来敲命令 二、Linux的文件结构 windows系统下设有盘符&#xff1a;如C盘、D盘等&#xff0c;Linux没有盘符的概念&#xff0c;只有一个根目录/&#xff0c;所有文件都在它下面。 在根目录下输入命令ls&am…

PHP 入门学习笔记

现在如果问什么行业最火&#xff0c;很多人第一反应肯定就是IT。的确&#xff0c;这些年随着互联网的不断发展&#xff0c;IT热门众所周知。那么就一起来说说&#xff0c;IT行业里&#xff0c;哪些技术更热门。 一、PHP技术&#xff1a; PHP 是一种创建动态交互性站点的强有力…

2. C 语言基础

2. C 语言基础 常考面试题 int main(int argc, char ** argv)函数中&#xff0c;参数argc和argv分别代表什么意思&#xff1f;⭐⭐⭐⭐ 第一个参数&#xff0c;int型的argc&#xff0c;为整型&#xff0c;用来统计程序运行时发送给main函数的命令行参数的个数。 第二个参数&am…

深度遍历模版与广度遍历模版

深度优先遍历 //void dfs(中间容器&#xff0c;数据) //{ // if(临界走到末尾) // { // 中间容器加到最终容器 // return&#xff1b; // } // for(做选择) // { // 改变中间容器 // dfs(中间容器&#xff0c;数据) // 撤回…

Linux下编译MySQL++/mysqlpp

一、简介 MySQL&#xff08;又名mysqlpp&#xff09;是对MySQL和MariaDB C api的c封装。它建立在与标准c库相同的规范之上&#xff0c;使得处理数据库与处理std容器一样简单。MySQL还提供了一些功能&#xff0c;使用户可以在自己的代码中避免最重复的SQL排序&#xff0c;为这些…