我知道 == 运算符检查相等的引用(地址),但我没有得到编译器在比较Thread和String对象时如何抛出以下错误。
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?
我是 kafka 的新手,我浏览了文档,但我什么也不懂。有人可以解释一下什么时候使用这个ConcurrentKafkaListenerContainerFactory类吗?我已经使用过这个Kafkaconsumer类,但我看到ConcurrentKafkaListenerContainerFactory在我当前的项目中使用了它。请解释它的用途。
我已经从这个和这个 答案中理解了你的代码可能进入无限循环导致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 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) 有人可以解释一下 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(2.1.0.RELEASE)应用程序收集指标。具体来说,我想知道
执行器/actuator/metrics端点提供了很多信息,但是我不确定这些信息是否对我的情况有用。另外,有人可以告诉@Timed(或任何其他现成的注释)是否可用于实现这些统计信息,或者我必须在每个控制器方法中使用类似以下的内容:
Timer timer = new SimpleMeterRegistry().timer("timer.name");
timer.record(() -> {
// all logic here
});
Run Code Online (Sandbox Code Playgroud)
我尝试在控制器方法上使用@Timed,但它没有向/actuator/metrics端点添加任何新响应。