当前位置: 首页 > article >正文

易错点abc

在同一个输入流上重复创建Scanner实例可能会导致一些问题,包括但不限于输入流的混乱。尤其是在处理标准输入(System.in)时,重复创建Scanner对象通常不是最佳实践,因为这可能导致某些输入数据丢失或者顺序出错。

为什么会出现这种情况?

  1. 资源管理:每个Scanner实例都会尝试管理其关联的输入流。如果你在一个方法中创建了一个新的Scanner实例并试图读取标准输入,而另一个Scanner实例已经打开了同一个输入流,可能会导致冲突。
  2. 输入流状态:当一个Scanner实例开始读取输入流时,它会维护自己的内部缓冲区和状态。如果另一个Scanner实例也试图从同一个流中读取数据,它们可能会互相干扰,导致读取的数据不准确或顺序错误。

推荐做法

为了确保输入流被正确且高效地使用,推荐的做法是:

  • 共享Scanner实例:在你的程序入口(如main方法)中创建一个Scanner实例,并将其传递给需要读取输入的方法。这样可以保证只有一个Scanner实例在管理输入流,减少潜在的问题。

     

    避免不必要的Scanner实例化:除非绝对必要(例如,你需要从不同的输入源读取数据),否则应尽量避免在同一程序中多次创建Scanner实例。

通过这种方式,不仅可以避免输入流的混乱,还能更有效地管理资源,确保程序的稳定性和性能。


引用类型数组的默认值是null

一定要每个都new

  1. 局部变量:必须显式初始化后才能使用,否则会导致编译错误。
  2. 成员变量:如果没有显式初始化,Java会自动赋予默认值。
  • 数组声明但未初始化:数组引用是 null
  • 数组使用 new 初始化后:对于基本数据类型,数组元素会自动初始化为默认值;对于引用类型,数组元素会自动初始化为 null


上面两个问题都导致了段错误的诞生


对bfs的基本还是不熟,导致没有更多的精力去举反例


之前只是勉强的背下来了和做下去了就没有专题练习,使得学习断断续续使得本来由的知识又丧失了,成本大大增加。

这次不练熟就不继续往下了


算法题目还可以加深对语言的熟练和时间的安排


好消息是这次的bfs我依据自己的想法实现了,但是熟练度还是不够

要去积累自己的模板(这里举例子的分情况的思想有了)

  private static boolean dfs(int u,int times) {
    if(u >= n2)
        return true;  //终极 最后一个看这里
    boolean flag = false;
    for(int i = 0;i < n2;i ++) {
      if(!visited[i]) {          //没被访问过,否则下一个
        if(times <= planes[i].t + planes[i].d) {      //符合条件准备bfs
          visited[i] = true;           //准备bfs之前先true下避免干扰下面的
          flag = dfs(u + 1,(int)Math.max(times,planes[i].t) + planes[i].l);
          if(flag) {                   //自己早就通过了,下面的如果也是就true网上
            return true;
          }
          visited[i] = false;         //下层不满足,自己需要再次false为上层的其它做准备
        }
      }
      continue;                   //没被访问过,下一个
    }

    return false;                 //访问完了都没找到匹配的,又不是最后一个所以都不行,返回上层继续

  }

一般都会有一个 n 作为标记第几个或者第几步


重新做错题,根本不要怕记住了答案。即使背下来了后面会错的再去做难的


http://www.kler.cn/a/567380.html

相关文章:

  • 分享一套适合做课设的SpringBoot商城系统
  • Kotlin协变与逆变区别
  • yolov12 部署瑞芯微 rk3588、RKNN 部署工程难度小、模型推理速度快
  • 大模型应用案例 | 大模型+金融运维,擎创携手某证券创新运维能力新范式
  • Proser:新增CRC计算辅助功能
  • 从UNIX到Linux:操作系统进化史与开源革命
  • 加油站小程序实战05地图加载
  • 计算机毕业设计SpringBoot+Vue.js社团管理系统(源码+文档+PPT+讲解)
  • 如何在工控机上实现机器视觉检测?
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loss.py
  • Kubernetes (K8S) 高效使用技巧与实践指南
  • MySQL 主从同步配置及操作步骤
  • 20250226-代码笔记05-class CVRP_Decoder
  • (十 四)趣学设计模式 之 策略模式!
  • 蓝桥杯试题:二分查找数组元素
  • Leetcode-最大矩形(单调栈)
  • 苹果与小米破冰合作:iPhone 16e全面支持Find My网络,跨生态互通实现技术性突破
  • springboot、deepseek4j、bge-m3和milvus
  • Airflow和PySPARK实现带多组参数和标签的Amazon Redshift数据仓库批量数据导出程序
  • 【网络】数据链路层(以太网帧格式、MTU、ARP)、NAT、内网穿透