Sonar常见问题修改

2023-11-05

Sonar常见问题修改

1 SonarLint简介与安装

1.1 SonarLint简介

SonarLint是一个IDE插件,可帮助开发人员在编写代码时检测和修复质量问题。就像拼写检查器一样,SonarLint也会在提交代码之前对错误进行修正。开发人员可以直接从IDE市场获得它,然后它将在编码时(Java、JavaScript、PHP、Python和HTML)检测新的bug和质量问题。## 严重程度

1.2 SonarLint安装与配置

1.2.1 IDEA 插件在线安装

File->Setting->Plugins 搜索SonarLint ->install
在这里插入图片描述

1.2.2 IDEA 插件离线安装

打开IDEA官方插件网站:

http://plugins.jetbrains.com/idea
搜索想要安装的插件,比如本文要安装的插件 SonarLint,在下面提示的下拉备选中,选择SonarLint跳转到插件页面.
在这里插入图片描述
在插件页面下面找到历史版本(Version History),找到想使用的版本,点击downLoad等待下载完成.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLNOcClu-1682322445764)(../assets/monthly/20230425/3.png)]

安装插件包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vsGFTfr-1682322445764)(../assets/monthly/20230425/4.png)]

1.2.3 SonarLint General配置(如果有规定的sonarQube)

插件安装成功以后,打开插件配置界面,路径:File–Setting-Tools-SonarLint
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3oPWOX2c-1682322445764)(../assets/monthly/20230425/5.png)]

弹窗窗口里,填写这个SonarLint的名称,我们使用的是本地sonarQube,选择的右边配置,输入sonarQube
IP和端口号.完成后点击Next.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tRTGUpWr-1682322445764)(../assets/monthly/20230425/6.png)]

设置认证方式,有Token和用户名密码两种方式,根据自己的情况选择对应方式进行配置.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egeFiLan-1682322445765)(../assets/monthly/20230425/7.png)]

1.2.3 SonarLint Project配置

  1. 选择下图中SonarLint Project Settings的菜单
  2. 勾选Bind project to SonarQube/SonarCloud
  3. 在Connection 右边下拉选择刚才配置的 sonar配置名称
  4. 配置Project key,可以点击Search in List,再弹出框里找到想使用的某个规则选择想使用的即可.
  5. 点击Apply使得配置生效保存
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LT8XQRcp-1682322445765)(../assets/monthly/20230425/8.png)]

2 SonarLint扫描以及IDEA中页面的名词解释

2.1 SonarLint扫描

在需要扫描的文件或者文件夹右击->SonarLint->Analyze with SonarLint
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9T8gydb8-1682322445765)(../assets/monthly/20230425/9.png)]

2.2 IDEA中页面的名词解释

Current file:当前文件(展示当前文件存在的哪些问题,以及解决方法)
Rule:规则(告诉你问题的具体内容,并在最后告诉你如何解决这个问题)
Report:报告(鼠标移动到项目根目录,右键选择Ayalyze,选择Ayalyze with SonarLint,完成之后的结果显示,包含整个项目的所有文件的问题)
Locations:位置(告诉你,在哪个地方有问题,问题的重复位置)
Issues:问题 每个issue有五种等级

BLOCKER(致命):会影响应用程序的缺陷:内存泄漏,未关闭的JDBC连接…必须立刻修复的代码;
CRITICAL(关键):可能会影响应用程序的缺陷或者是安全性缺陷:空的catch块,sql注入,…必须立刻查看代码;
MAJOR(主要):可能会影响开发者效率的质量缺陷:未覆盖的代码,重复块,未使用的参数….
MINOR(微小):可能会影响开发者效率的质量缺陷:每行不能太长,“switch”语句应该至少有三个条件….
INFO(未知):既不是缺陷也不是质量问题,只是一个发现。

每个issue有三个状态

  • Bug:窃听器(可靠性),避免错误和未定义的行为
  • Vulnerability:漏洞(安全),避免破坏或攻击 Code
  • Smell:代码嗅觉(可维护性),简化代码更新,并提高开发人员的速度

3 主要问题

1.String literals should not be duplicated

字符串文字不应该重复

代码中多次出现同一个字符串
应该将重复字符串抽取为常量
public static final String

2.Deprecated elements should have both the annotation and the Javadoc tag

弃用的元素应该同时具有注释和Javadoc标记

在标记弃用的元素 应该同时使用注释和Javadoc标记
在这里插入图片描述

3.Generic exceptions should never be thrown

永远不应该抛出泛型异常

通用异常不应抛出 例如 Error Exception Throwable RuntimeException,修改为具体的或者自定义异常
在处理异常时,如果不往上抛的话,可以使用@SneakyThrows (编译后生成try catch)在本层处理。

4.Method names should comply with a naming convention

方法名应该遵循命名约定

方法应该按照规范命名

5.Field names should comply with a naming convention

字段名应该遵循命名约定

字段名应该遵循命名约定

6.Unnecessary imports should be removed

应该删除不必要的引用

应该删除不必要的引用
快捷键 ctrl + alt + o

7.Unnecessary imports should be removed

应该删除不必要的引用

应该删除不必要的引用
快捷键 ctrl + alt + o

8.Raw types should not be used

不应该使用原始类型

方法的返回值类型,参数的类型 应该明确 不应该使用泛型

9.Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used

不应该使用同步类Vector, Hashtable, Stack和StringBuffer

使用这些同步类虽然是线程安全的,但是比较影响性能

10.“StandardCharsets” constants should be preferred

“StandardCharsets”常量应该是首选

使用StandardCharsets.UTF_8 静态变量类型为charset 代替了HttpConstant.REQUEST_ENCODING这种静态变量类型为string的 符合java8规范

11.Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used

不应该使用同步类Vector, Hashtable, Stack和StringBuffer

使用这些同步类虽然是线程安全的,但是比较影响性能

12.Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used

不应该使用同步类Vector, Hashtable, Stack和StringBuffer

使用这些同步类虽然是线程安全的,但是比较影响性能

13.Local variables should not be declared and then immediately returned or thrown

局部变量不应该声明后立即返回或抛出

本地变量如果赋值之后直接return了,那就直接return本地变量的赋值语句。

14.Utility classes should not have public constructors

实用程序类不应该有公共构造函数

公用类的工具类不应该有公共的构造函数,公用的工具类是静态成员的集合,并不意味这要实例化,当工具类不定义构造函数,Java会自动向不定义构造函数的每个类添加公共的构造函数,和公用类不应该具有公共的构造函数冲突了,因此我们需要手动添加该公用工具类的构造函数。



/**
 * @Classname AdentUtil
 * @Description 中介工具类
 * @Version 1.0.0
 * @Date 2023/3/27 13:46
 * @Created by admin
 */
public class AdentDataTransferUtil {
 
    /**
     * 构造下载报文
     * @param adentResultFileGeneralRespDto
     * @return
     */
    public static UniteAdentResultFileRespDto getUniteAdentResultFileRespDto(AdentResultFileGeneralRespDto adentResultFileGeneralRespDto) {
        UniteAdentResultFileRespDto uniteAdentResultFileRespDto=null;
        if (adentResultFileGeneralRespDto != null) {
            uniteAdentResultFileRespDto=new UniteAdentResultFileRespDto();
            uniteAdentResultFileRespDto.setFileUnid(adentResultFileGeneralRespDto.getUnid());
            uniteAdentResultFileRespDto.setFileName(adentResultFileGeneralRespDto.getName());
            uniteAdentResultFileRespDto.setDownlaodUrl(adentResultFileGeneralRespDto.getDownloadUrl());
        }
        return uniteAdentResultFileRespDto;
    }

    private AdentDataTransferUtil() {
        throw new IllegalStateException("Utility class");
    }
}

15.Methods should not have too many parameters

方法不应该有太多参数

用Spring的@RequestMapping(以及相关的快捷注释,如@GetRequest)或@JsonCreator注释的方法可能有很多参数,封装是可能的。因此,这些方法将被忽略。

16.Nested blocks of code should not be left empty

嵌套的代码块不应该留空

删除嵌套的空的代码块

17.Modifiers should be declared in the correct order

修饰符应该以正确的顺序声明

18.“@Deprecated” code should not be used

不应该使用“@Deprecated”代码

不能使用 或者不建议使用 @Deprecated 修饰的代码
例:import org.springframework.util.StringUtils; 引入了spring的包,但是它的StringUtils。isEmpty()不被建议使用,改用其他的的包 比如 org.apache.commons.lang3.StringUtils

19.Track uses of “TODO” tags

跟踪“TODO”标签的使用

20.Strings and Boxed types should be compared using “equals()”

将与该对象进行相等比较的对象

if(entry.getCode()==condition){}
修改为if(entry.getCode() != null && entry.equals(condition)){}

21.Multiple variables should not be declared on the same line

不应该在同一行上声明多个变量

22.“enum” fields should not be publicly mutable

“enum”字段不应该是公共可变的

修改访问修饰符

23.“static” base class members should not be accessed via derived types

“静态”基类成员不应该通过派生类型访问

原代码:JSONArray licenseArr = JSONArray.parseArray(licenseData);
修改后 JSONArray licenseArr = JSON.parseArray(licenseData);
为了代码清晰起见,永远不要使用子类的名称访问父类的静态成员。这样做会造成混淆,并且可能会导致存在两个不同的静态成员的错觉。直接使用父类访问父类静态成员。

24.The diamond operator (“<>”) should be used

应该使用菱形操作符(“<>”)

Java 7引入了diamond操作符(<>)来减少泛型代码的冗长。例如,不必在列表的声明和构造函数中声明列表的类型,现在可以使用<>简化构造函数声明,编译器将推断类型

25.Collection.isEmpty() should be used to test for emptiness

应该使用Collection.isEmpty()来测试是否为空

26.“switch” statements should have at least 3 “case” clauses

“switch”语句应该至少有3个“case”子句

如果不够三个case字句,改为用if,else

27.Collapsible “if” statements should be merged

可折叠的“if”语句应该合并

Noncompliant Code Example
if (file != null) {
  if (file.isFile() || file.isDirectory()) {
    /* ... */
  }
}
Compliant Solution
if (file != null && isFileOrDirectory(file)) {
  /* ... */
}

private static boolean isFileOrDirectory(File file) {
  return file.isFile() || file.isDirectory();
}

28.Unused assignments should be removed

未使用的作业应该被删除

当局部变量被赋值后,后续指令不会读取该值时,就会发生死存储。计算或检索一个值,然后重写或丢弃它,可能表明代码中存在严重错误。即使这不是一个错误,它最多也是一种资源浪费。因此,应使用所有计算值。

29.Fields in a “Serializable” class should either be transient or serializable

“Serializable”类中的字段应该是瞬态的或者是可序列化的

当一个类实现了序列化接口 Serializable,意味着他可以可以序列化和反序列,当这个类里面的属性B没有实现 序列化接口 Serializable,意味着B不能序列化和反序列化,那么也就是类中的属性B不能序列化,sonar会报错。
1.为这个类B实现序列化接口 implement serializable
2.在属性B前面加上 transient 关键字 — private transient B b;
transient 对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。

30.“String#replace” should be preferred to “String#replaceAll”

“String#replace"应该优先于"String#replaceAll”

简单替换逻辑使用replace效能更高

31.Methods should not be empty

方法不应该为空

使填写方法注释或者私有化构造器


private Assert() {
        throw new IllegalStateException("Assert class");
    }

32.Unused “private” methods should be removed

应该删除未使用的“私有”方法

33.Standard outputs should not be used directly to log anything

标准输出不应该直接用于记录任何内容

34.Empty arrays and collections should be returned instead of null

应该返回空数组和集合,而不是null

Noncompliant Code Example
public static List<Result> getAllResults() {
  return null;                             // Noncompliant
}

public static Result[] getResults() {
  return null;                             // Noncompliant
}

public static Map<String, Object> getValues() {
  return null;                             // Noncompliant
}

public static void main(String[] args) {
  Result[] results = getResults();
  if (results != null) {                   // Nullity test required to prevent NPE
    for (Result result: results) {
      /* ... */
    }
  }

  List<Result> allResults = getAllResults();
  if (allResults != null) {                // Nullity test required to prevent NPE
    for (Result result: allResults) {
      /* ... */
    }
  }

  Map<String, Object> values = getValues();
  if (values != null) {                   // Nullity test required to prevent NPE
    values.forEach((k, v) -> doSomething(k, v));
  }
}
Compliant Solution
public static List<Result> getAllResults() {
  return Collections.emptyList();          // Compliant
}

public static Result[] getResults() {
  return new Result[0];                    // Compliant
}

public static Map<String, Object> getValues() {
  return Collections.emptyMap();           // Compliant
}

public static void main(String[] args) {
  for (Result result: getAllResults()) {
    /* ... */
  }

  for (Result result: getResults()) {
    /* ... */
  }

  getValues().forEach((k, v) -> doSomething(k, v));
}

35.Standard outputs should not be used directly to log anything

标准输出不应该直接用于记录任何内容

36.Null pointers should not be dereferenced

空指针不应该被解引用

对该对象加非空判断 例如:Objects.requireNonNull(obj);

37.Package declaration should match source file directory

包声明应该与源文件目录匹配

删除所在的包引用,自动重新set包路径

38.Empty arrays and collections should be returned instead of null

应该返回空数组和集合,而不是null

返回一个new 对象就好了 或者参照示例

public static List<Result> getAllResults() {
  return Collections.emptyList();          // Compliant
}

public static Result[] getResults() {
  return new Result[0];                    // Compliant
}

public static Map<String, Object> getValues() {
  return Collections.emptyMap();           // Compliant
}

public static void main(String[] args) {
  for (Result result: getAllResults()) {
    /* ... */
  }

  for (Result result: getResults()) {
    /* ... */
  }

  getValues().forEach((k, v) -> doSomething(k, v));
}

38.“@Override” should be used on overriding and implementing methods

“@Override”应该用于重写和实现方法

需要为被提示的方法加上@Override

39.Cognitive Complexity of methods should not be too hig

方法的认知复杂性不应太高

需要优化代码

40.XML parsers should not be vulnerable to XXE attacks

XML解析器不应该容易受到XXE攻击

4 参考文章

Sonar代码规则之TOP30详解

在IDEA上配置SonarLint以及代码质量分析报告模板

@SneakyThrows注解

Sonar问题汇总

https://rules.sonarsource.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sonar常见问题修改 的相关文章

  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 如何在 Spring-JUnit 测试中设置 JNDI 查找?

    我正在使用 Maven 3 0 3 Spring 3 1 0 RELEASE 和 JUnit 4 8 1 如何在容器外部创建 JNDI 功能 在我的例子中是 JBoss 我认为 Spring 的 jndiTemplate 可以解决这个问题
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • [NOI Online #3 入门组 T3]买表【二进制优化dp背包】

    题目链接 很可惜的一点就是 我正赛的时候好像把a和k看反了 于是一直想不到如何做 打了个暴力分 现在想想 暴力分也错了 因为a和k真的很关键 使得最后300变成200分 人生第一场OI就这样草草结束 或许这就是OI选手的刺激所在吧 得亏我不
  • DDR工作原理

    DDR SDRAM全称为Double Data Rate SDRAM 中文名为 双倍数据流SDRAM DDR SDRAM在原有的SDRAM的基础上改进而来 也正因为如此 DDR能够凭借着转产成本优势来打败昔日的对手RDRAM 成为当今的主流
  • csdn找到自己关注的人和关注自己的人-2021最新

    前言 csdn找到自己关注的人和关注自己的人 2021最新 入口 https my csdn net my follow 点进入以后是这样的 就是没办法查找具体某个人
  • JDK、IDEA等安装详解

    第一章 计算机基础知识 1 2 计算机简介 计算机俗称电脑 是第二次世界战争时 美国国防部利用它来进行弹道计算 第一台通用计算机叫做 ENIAC 当时计算机是一个庞然大物 用了18000个电子管 占地170平方米 重达30吨 耗电功率约15
  • nginx七层代理和四层转发的理解

    先来理解一下osi七层模型 应用层 应用层是ISO七层模型的最高层 它直接与用户和应用程序交互 提供用户与网络的接口 它包括各种应用协议 如HTTP FTP SMTP等 用于实现特定应用的功能和通信 表示层 表示层负责数据的格式转换 加密和
  • Introduction of moving block bootstrap (MBB)algorithm

    Because we can not use usual bootstrap sampling method to get subsamples from time series dataset then the MBB was propo
  • 软件测试人员的职业晋升之路

    关于软件测试行业的职业发展方向 在网络上总能看到各种各样的问题 有关注零基础能不能入行的 有关注25岁入行晚不晚的 还有关注35岁后的职业发展方向的 在此过程中 看到很多行业大佬分享了自己的工作经验 也给出了很多自己的建议 要想在测试行业有
  • Ubuntu18.04 安装 TensorFlow (GPU)

    重新在台式机上学习深度学习 Ubuntu18 04 Tensorflow gpu cuda8 0 cuDNN6 0 一 准备工作 有一些不是必需的 1 安装pip 打开终端输入命令 sudo apt get install python p
  • Netty实战(二)第一个Netty程序

    第一个Netty程序 一 环境准备 二 Netty 客户端 服务器概览 三 编写 Echo 服务器 3 1 ChannelHandler 和业务逻辑 3 2 引导服务器 四 编写 Echo 客户端 4 1 通过 ChannelHandler
  • AI芯片学习小结4-谷歌TPU与脉动阵列

    AI芯片学习小结4 谷歌TPU与脉动阵列 文章 In Datacenter Performance Analysis of a Tensor Processing Unit 时间 2017 Reference 深入理解Google TPU的
  • STM32 局部数组使用过大溢出到全局影响代码运行

    一 问题 在函数内定义局部数组大小为400 发现其影响了串口接收中断 二 原因 通过动态调试得知 其分配的局部数组地址与全局的串口结构体的空间部分重合造成了寄存器异常中断开启失败 出现此原因在于分配的栈不够造成局部数组溢出占用全局空间 如果
  • 基站信号强度些问题

    1 package myapplication com myjizhansj 2 3 import android content Context 4 import android graphics Color 5 import andro
  • 服务器装win7无限重启吗,win7系统重装系统后无限重启电脑的解决方法

    很多小伙伴都遇到过win7系统重装系统后无限重启电脑的困惑吧 一些朋友看过网上零散的win7系统重装系统后无限重启电脑的处理方法 并没有完完全全明白win7系统重装系统后无限重启电脑是如何解决的 今天小编准备了简单的解决办法 只需要按照1
  • 流处理架构选型

    greenplum flink 做流处理 从批处理ETL到流式处理 一个来自Netflix的案例 https juejin im entry 5aa73ccd6fb9a028c81285cb greenplum oracle12C 分布式R
  • 【项目设计】高并发内存池(二)[高并发内存池整体框架设计|threadcache]

    C 学习历程 入门 博客主页 一起去看日落吗 持续分享博主的C 学习历程 博主的能力有限 出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话 也许你现在做的事情 暂时看不到成果 但不要忘记 树 成长之前也要扎根 也要在漫长的时光 中沉淀养
  • Zebra基本配置

    前言 Zebra是一个路由软件包 提供基于TCP IP路由服务 支持RIPv1 RIPv2 RIPng OSPFv2 OSPFv3 BGP 4 和 BGP 4 等众多路由协议 Zebra还支持BGP特性路由反射器 Route Reflect
  • 关于vue3刷新页面后,数据丢失问题

    本文重点解决刷新页面数据丢失的问题 一般情况下 调试过程中 数据会变空 部署到服务器后 如果刷新 可能会报404 NOT FOUND 一开始解决 思路大概是将数据存储到piniaStore中 但是interesting 刷新页面Store照
  • ISO/OSI七层协议中的下三层在AIX中的实现

    复杂度4 5 机密度4 5 最后更新2021 04 29 ISO 国际标准化组织 international standard organize OSI 开放系统互连模型 open system interconnection ISO专门制
  • Android VNDK限制下的解决方案

    你有没有遇到过这个错误呢 F linker CANNOT LINK EXECUTABLE system bin xxx library libxxx so not found 首先在android生态里 一般的应用开发者 不会遇到这个问题
  • Sonar常见问题修改

    Sonar常见问题修改 1 SonarLint简介与安装 1 1 SonarLint简介 1 2 SonarLint安装与配置 1 2 1 IDEA 插件在线安装 1 2 2 IDEA 插件离线安装 1 2 3 SonarLint Gene