-
多数场景优先用synchronized;仅当需tryLock、可中断等待、公平锁或多个Condition时才选ReentrantLock,且必须手动在finally中unlock,否则易死锁。
-
Java商品库存管理系统用Goods、InventoryManager和Main类实现面向对象设计,通过封装校验库存、集合管理数据、控制台交互完成增删改查,无需数据库即可验证OOP核心思想。
-
synchronized修饰实例方法锁this,修饰静态方法锁Class对象;同步块可指定任意锁对象,粒度更细、性能更好,且兼具原子性、可见性与有序性。
-
通过EclipseMarketplace安装插件最安全可靠:Help→EclipseMarketplace→搜索插件名→Install→接受协议→重启;若未上架则用InstallNewSoftware方式添加更新站点URL安装。
-
高内聚要求类的职责集中,如OrderService只处理订单相关操作,避免上帝类;低耦合通过接口抽象、依赖注入和设计模式减少类间依赖,提升系统弹性。
-
Java接口中default方法可被实现类public覆盖但不可降级为private,static方法只能通过接口名调用且不可重写;二者语义不同:default用于可定制的实例行为,static用于无状态工具函数。
-
Java输入输出主要依靠java.io和java.nio包,常用字节流与字符流模型;控制台输入用Scanner,文件读取推荐BufferedReader+FileReader或Files.lines,写入用PrintWriter/BufferedWriter,二进制文件用FileInputStream/FileOutputStream。
-
数字字典应用是检验Scanner、HashMap、异常处理和基础IO掌握程度的分水岭;须用HashMap<String,String>存词条,注意大小写、空值处理、nextLine()吃回车问题,文件读写需UTF-8编码与健壮异常处理。
-
Java异常处理关键在正确使用:checked异常需显式处理,unchecked异常反映逻辑错误;应避免空catch、误用throws、finally抛异常,善用try-with-resources和分层异常转换。
-
Java连接MySQL需用mysql-connector-j8.x驱动,URL必须含serverTimezone=UTC等参数;PostgreSQL需配置sslmode和currentSchema;应避免硬编码,用配置文件管理参数,并通过getConnection()验证真实连通性。
-
Spring项目初始化应使用SpringInitializr并正确配置spring-boot-starter-parent和spring-boot-starter-web,确保parent声明、依赖引入、启动类位置(根包)及配置文件路径/编码无误。
-
Exchanger是Java中用于两个线程交换数据的工具,通过exchange()方法在同步点交换对象,适用于双线程成对协作场景。
-
包装类是基本数据类型的对象封装,如int对应Integer,实现基本类型与对象的转换。Java提供自动装箱(基本类型转包装类)和拆箱(包装类转基本类型)机制,简化代码。例如Integera=100为自动装箱,编译器调用Integer.valueOf(100);intb=a为自动拆箱,调用a.intValue()。主要应用于集合操作,如List存储int需装箱为Integer。但存在空指针风险,如null对象拆箱抛NullPointerException;使用==比较包装类时可能因引用不同返回false,应
-
JRE是运行Java程序的环境,包含JVM和核心类库;JDK是开发工具包,包含JRE及编译、调试等工具;开发者需安装JDK,普通用户可仅安装JRE。
-
CAS是Java无锁编程的核心机制,通过硬件原子指令比较并交换内存位置的值,需指定内存位置、预期原值和新值三个参数,成功条件为实际值等于预期值;它基于乐观锁思想避免线程阻塞,但存在ABA问题、单变量限制和自旋开销等局限。