跳至主要內容
hint - 跨域
alt text
alt text

简单请求(simple request)确实是“发出去了”,服务器也能收到、处理并返回结果,但浏览器在收到响应后,会因为安全策略而“拦截”掉结果,不让前端 JavaScript 访问它。

alt text

codejava hint小于 1 分钟
hint - 注解理解

首先,注解的使用分成两类

  • 编译期生效(Lombok:改写字节码,帮你生成方法)
  • 运行期生效(Spring:反射 + AOP,帮你注入 Bean、加事务、AoP等)

个人目前感觉

注解就是一个标记,在代码编译或者运行时可以通过一些手段找到对应标记的东西

然后基于此,相当于打了个坐标,然后在此上面进行一些自己的处理

主要就是定义注解,然后使用注解,最后写个注解处理器来捕获并处理

alt text

codejava hint小于 1 分钟
hint - List初始化

带初始值的初始化

  • 如果是 java 9+, 可以直接使用 list.of

    List<String> list = List.of("a", "b", "c");
    
    List<String> list = List.of(
      new Student("aaa",1),
      new Student("bbb",2),
      new Student("ccc",3),
    );
    

    这种方式创建的列表 不可修改,add()remove() 都会抛出 UnsupportedOperationException

  • 但如果是 java 8,就没有这个,可以使用 Stream

      List<Student> list1 = Stream.of(
          new Student("Alice", 20),
          new Student("Bob", 21),
          new Student("Charlie", 22)
      ).collect(Collectors.toList());
    

codejava hint小于 1 分钟
hint2
  1. -128 到 +127 以内的int值都是自动包装好,所以对象都是一个

  2. ScannernextInt Scanner scanner = new Scanner(System.in); scanner.nextInt() 只读整数,不读换行符(\n) 换行符仍然留在输入缓冲区中,需要清理对应的换行符

  3. Java 中 finally 的行为

    不论 try 里是正常结束、遇到 return、遇到异常,finally 块里的内容都会被执行。

      try {
          System.out.println(prompt);
          return scanner.nextInt();
      } catch (InputMismatchException e) {
          System.err.println("输入的不是数字,重新输入");
      } finally {
          scanner.nextLine(); // 关键:清除输入缓冲区的换行符
      }
    

    即使这样,也会执行 finally,这样解决了缓冲区存在 \n 的问题

  4. consume


codejava hint小于 1 分钟