小编Rah*_*pta的帖子

理解 Java 中对象比较的 == 运算符

我知道 == 运算符检查相等的引用(地址),但我没有得到编译器在比较ThreadString对象时如何抛出以下错误。

java: incomparable types: java.lang.Thread and java.lang.String

这是我的代码:

public static void main(String[] args) {
    Thread t = new Thread();
    Object o = new Object();
    String s = new String("");

    System.out.println(t == o);//no issues here

    System.out.println(t==s);// but this throws above error
  }
Run Code Online (Sandbox Code Playgroud)

为什么它允许在ThreadandObject但不允许Thread和之间进行比较String

java

11
推荐指数
2
解决办法
245
查看次数

何时使用 ConcurrentKafkaListenerContainerFactory?

我是 kafka 的新手,我浏览了文档,但我什么也不懂。有人可以解释一下什么时候使用这个ConcurrentKafkaListenerContainerFactory类吗?我已经使用过这个Kafkaconsumer类,但我看到ConcurrentKafkaListenerContainerFactory在我当前的项目中使用了它。请解释它的用途。

java apache-kafka kafka-consumer-api spring-kafka

10
推荐指数
2
解决办法
1万
查看次数

为什么这个toString()方法导致StackOverFlowError?

我已经从这个这个 答案中理解了你的代码可能进入无限循环导致stackOverFlowError的可能情况,但我不明白如何在这里复制相同的场景,

public class A {
  private B b = new B();
  @Override
  public String toString() {
      return "b "+b;
  }
}

public class B {
  private A a = new A();
  @Override
  public String toString() {
      return "";
  }
}

public class StackoverflowErrorTest {
  public static void main(String[] args) {
     A a = new A();
     System.out.println(a);
  }
}
Run Code Online (Sandbox Code Playgroud)

此代码生成下面的堆栈跟踪: -

Exception in thread "main" java.lang.StackOverflowError
at stackoverflowerror.B.<init>(B.java:5)
at stackoverflowerror.A.<init>(A.java:5)
.
.
.
Run Code Online (Sandbox Code Playgroud)

根据我的理解,当我在main方法中打印对象'a'时,它将调用A类的toString方法,在该方法中,我将返回B类的对象,该对象将隐式调用B类的toString方法.现在,在B类的toString方法中,我返回的是一个空字符串.那么无限循环的范围如何以及在何处进入图片.请解释.

java stack-overflow

8
推荐指数
2
解决办法
821
查看次数

在Java 8中将字符串转换为Map &lt;Integer,String&gt;

有人可以指导我如何使用Java 8实现以下目标吗?我不知道如何将计数器作为关键

String str = "abcd";

Map<Integer,String> map = new HashMap<>();

String[] strings = str.split("");

int count =0;
for(String s:strings){
    map.put(count++, s);// I want the counter as the key
}
Run Code Online (Sandbox Code Playgroud)

java hashmap java-8

5
推荐指数
1
解决办法
307
查看次数

了解 Spring Boot 执行器 `http.server.requests` 指标 MAX 属性

有人可以解释一下 MAX 统计数据在下面的回复中指的是什么吗?我没有看到它在任何地方记录。

localhost:8081/actuator/metrics/http.server.requests?tag=uri:/myControllerMethod
Run Code Online (Sandbox Code Playgroud)

回复:

{  
   "name":"http.server.requests",
   "description":null,
   "baseUnit":"milliseconds",
   "measurements":[  
      {  
         "statistic":"COUNT",
         "value":13
      },
      {  
         "statistic":"TOTAL_TIME",
         "value":57.430899
      },
      {  
         "statistic":"MAX",
         "value":0
      }
   ],
   "availableTags":[  
      {  
         "tag":"exception",
         "values":[  
            "None"
         ]
      },
      {  
         "tag":"method",
         "values":[  
            "GET"
         ]
      },
      {  
         "tag":"outcome",
         "values":[  
            "SUCCESS"
         ]
      },
      {  
         "tag":"status",
         "values":[  
            "200"
         ]
      },
      {  
         "tag":"commonTag",
         "values":[  
            "somePrefix"
         ]
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

spring-boot spring-boot-actuator spring-micrometer

5
推荐指数
1
解决办法
7526
查看次数

Spring Boot REST API的度量标准集合

我正在尝试为我的Spring Boot(2.1.0.RELEASE)应用程序收集指标。具体来说,我想知道

  1. 没有次数调用单个REST端点。
  2. 每个端点处理请求所花费的时间。
  3. 我的请求被处理/出错的平均速率。

执行器/actuator/metrics端点提供了很多信息,但是我不确定这些信息是否对我的情况有用。另外,有人可以告诉@Timed(或任何其他现成的注释)是否可用于实现这些统计信息,或者我必须在每个控制器方法中使用类似以下的内容:

  Timer timer = new SimpleMeterRegistry().timer("timer.name");
timer.record(() -> {
    // all logic here
});
Run Code Online (Sandbox Code Playgroud)

我尝试在控制器方法上使用@Timed,但它没有向/actuator/metrics端点添加任何新响应。

java spring-boot spring-boot-actuator spring-micrometer

3
推荐指数
1
解决办法
444
查看次数