Почему method5 не синхронизированный?
То что StringBuffer имеет встроенную синхронизацию согласен, недоглядел.
Валидатор еще пишет то, что method5 не изменяет общие ресурсы, это потому что он создает всё время новый объект и любая другая нить, которая попытается запустить method5 будет создавать новый объект без возможности его редактирования?
package com.javarush.task.task17.task1716;
/*
Синхронизированные методы
*/
public class Solution {
private double param = Math.random();
private StringBuilder sb = new StringBuilder();
private void method0() {
Double d = method3();
}
protected synchronized void method1(String param1) {
Solution solution = new Solution();
solution.method0();
}
public synchronized void method2(int param1) {
param1++;
}
synchronized double method3() {
double random = Math.random();
param += 40.7;
return random + param;
}
private void method4() {
sb.append(1).append(1).append(1).append(1);
}
protected synchronized void method5(String param2) {
new StringBuffer().append(param2).append(param2).append(param2);
}
public synchronized String method6(int param2) {
System.out.println("Thinking....");
method7(5e-2);
sb = new StringBuilder("Got it!.");
return sb.toString();
}
synchronized String method7(double param2) {
return "" + param2;
}
public static void main(String[] args) {
}
}