-
BufferedReader是Java中通过内部缓冲区提升字符流读取性能的包装类,需包装Reader实例(如InputStreamReader+FileInputStream),推荐显式指定UTF-8编码,优先使用try-with-resources和readLine()按行读取,避免混用读取方法及默认编码导致乱码。
-
Java中依赖关系指类在运行时使用另一类(非继承/实现),表现为方法参数、局部变量或new对象;管理方式有手动new、工厂模式和IoC容器;识别依赖看参数、字段、new语句;遵循依赖倒置原则,高层模块应依赖抽象而非具体实现。
-
字符串与数组转换需根据场景选择方法:使用toCharArray()将字符串转字符数组,split()按分隔符拆分为字符串数组,newString(chars)或String.valueOf()将字符数组转字符串,String.join()或StringBuilder将字符串数组合并为字符串。
-
内部类分为四种:1.成员内部类位于外部类成员位置,非静态,需通过外部类实例创建,可访问外部类所有成员,不能定义静态成员(除静态常量);2.静态内部类用static修饰,属于外部类本身,无需外部实例即可创建,只能访问外部类静态成员,可定义静态成员;3.局部内部类定义在方法内,仅限该方法使用,可访问外部类成员及final或effectivelyfinal的局部变量;4.匿名内部类无名称,用于继承父类或实现接口并立即实例化,常用于事件监听等场景,只能使用一次且不能定义构造器。主要区别在于是否依赖外部类实例、访问
-
Java类是对象的蓝图,用于定义对象的属性和行为。在实际开发中,类的设计应遵循单一职责原则,使用组合而非过度继承,并可采用工厂模式创建对象。
-
Java中通过Serializable接口和ObjectOutputStream/ObjectInputStream实现对象序列化与反序列化。1.类需实现Serializable接口并建议定义serialVersionUID;2.使用ObjectOutputStream将对象写入文件实现持久化;3.使用ObjectInputStream从文件读取对象恢复数据;4.注意静态变量和transient字段不参与序列化,反序列化不调用构造函数,需处理版本兼容性与敏感信息。
-
本文介绍在无登录认证的轻量级Web应用中,如何通过服务端主动识别并关闭同一浏览器标签页的重复WebSocket连接,重点讲解基于会话绑定、IP限制与前端协同的实用方案。
-
JavaGC采用可达性分析算法判定对象存活,从GCRoots(如栈中局部变量、静态属性、常量、JNI引用等)出发搜索引用链,不可达对象即被回收;循环引用不影响回收,软/弱/虚引用按策略处理。
-
配置Java编译器选项可控制编译行为,常用方式包括命令行、Maven和Gradle;2.javac支持-source、-target、-encoding、-g和-Xlint等参数;3.Maven通过maven-compiler-plugin在pom.xml中设置源码版本、编码及编译参数;4.Gradle在build.gradle中配置compileJava任务的encoding和compilerArgs。
-
类是对象的模板,对象是类的实例。类定义属性和方法,不占用内存;对象通过new创建,拥有独立数据并可调用方法,如Person类定义人共性,p1、p2为其实例,各自存储姓名年龄并执行行为,体现类与对象的具体关系。
-
Java类型转换分隐式(自动提升)和显式(强制转换):小范围类型可安全自动转大范围,如byte→int;反之需强制转换并承担精度丢失或溢出风险;引用类型转换须有继承关系,字符串互转需方法调用,泛型因类型擦除无法真正强转。
-
Java捕获不到第三方库异常,本质是异常类型、执行上下文或捕获范围不匹配:需用全局处理器定位、调试中断查类型、显式捕获具体运行时异常、拦截异步/静态块异常,并通过AOP或字节码增强无侵入治理。
-
DelayQueue是Java中基于优先级队列实现的无界阻塞延时队列,要求元素实现Delayed接口(含getDelay和compareTo方法),仅到期任务可被take()获取,需配合外部线程消费,适用于单次延时场景如订单关单。
-
使用BlockingQueue管理空闲资源,结合CAS控制状态,通过Semaphore限流,实现线程安全、防泄漏、可伸缩的资源池。
-
ClassNotFoundException和NoSuchMethodException是Java反射中常见异常,前者因类路径错误或类名拼写错误导致,需检查全限定名和类路径;后者因方法名或参数类型不匹配引发,应确保方法签名正确并使用getDeclaredMethod访问私有方法。通过try-catch分别捕获并输出详细信息,可提升程序稳定性与调试效率。