为什么用scanner输入的字符串和直接赋值的字符串不相同?

为什么返回值是false,要是我想让它输出为true该怎么改?

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        String point;
        Scanner reader=new Scanner(System.in);
        point=reader.next();
        System.out.println(point.length());
        System.out.println(point=="cal");
    }
}

结果

cal
3
false

字符串相等不能用==判断
改为point.equals("cal");

  1. 引用类型(String)不能用==判断值相等
  2. 如果控制台是win的输中文有乱码,可能需要改terminal编码哦;
    执行 chcp 65001