-
Java异常分为CheckedException和UncheckedException;2.前者需编译期处理,常用于外部可恢复错误如IOException;3.后者继承自RuntimeException,由程序逻辑错误引发,如NullPointerException;4.CheckedException应通过try-catch或throws处理;5.UncheckedException应通过代码校验预防;6.参数非法等编程错误宜抛出运行时异常;7.异常处理需记录日志、避免空catch、使用try-with
-
答案:Java中创建对象时,构造器按继承链从顶级父类到子类依次调用。newC()时先执行A构造器,再B,最后C;子类构造器首行隐式或显式调用super(),确保父类先初始化;字段初始化在父类构造器调用后、子类构造体执行前完成。
-
自定义异常通过继承Exception或RuntimeException实现,用于提示特定错误。首先定义异常类如InvalidInputException,接着在业务逻辑中用throw抛出异常,例如年龄非法时提示“年龄必须在0到150之间”;然后在调用处使用try-catch捕获并输出错误信息,提升可读性。若无需强制处理,可继承RuntimeException创建BusinessException。关键在于清晰的类名和错误消息,帮助快速定位问题。
-
启用Java命令行调试需使用-agentlib:jdwp参数启动JVM,如java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005MyApplication,通过jdb或IDE远程连接进行断点、变量查看与执行控制,结合jstack、-verbose等工具可提升排查效率,注意参数正确性与端口占用。
-
Java有8种基本数据类型,分为整数型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean);它们直接存储值,具有固定内存大小和取值范围,选择合适类型可提升性能;整数默认int,大数用long并加L,小数默认double,float需加F,char用单引号,boolean仅true或false;运算时低精度类型自动提升为高精度,如byte转int,混合运算向大类型靠拢;赋值给小范围类型需强制转换并可能丢失精度;每个基本类型对应包装类(如
-
配置JDK并设置JAVA_HOME与PATH环境变量,验证java-version;2.安装MySQL并启动服务,使用mysql-uroot-p登录;3.创建testdb数据库及users表并插入数据;4.下载MySQLConnector/J驱动,添加JAR包至项目类路径或Maven依赖;5.编写Java代码通过JDBC连接MySQL,执行查询并输出结果,确认连接成功。
-
EnumSet和EnumMap是Java中专为枚举设计的高效集合类。1.EnumSet使用位向量存储,性能高、内存省,适用于管理同一枚举类型的值,支持allOf、noneOf、of和range等创建方式;2.EnumMap以枚举为键,内部用数组基于ordinal值索引,查找快,类型安全且遍历有序;3.二者均禁止null元素(EnumMap允许null值),相比HashSet或HashMap,在处理枚举时具有更高性能和更小内存开销,是操作枚举数据的首选。
-
答案:try-with-resources是Java7引入的自动资源管理机制,要求资源实现AutoCloseable或Closeable接口,通过在try后括号中声明资源,确保其在作用域结束时自动关闭。语法支持单个或多个资源(分号隔开),关闭顺序为逆序。即使try块抛出异常,资源仍会被关闭,且close()方法的异常不会覆盖try块中的主异常,可通过getSuppressed()获取被抑制的异常,提升调试准确性。常见应用场景包括文件流、网络连接和数据库连接的管理,有效避免资源泄漏,使代码更简洁安全。
-
答案:通过SpringBoot结合MultipartFile实现图片上传,配置静态资源映射或控制器返回图片流以实现展示功能。具体包括添加Web依赖,编写上传接口并处理文件重命名、类型校验与大小限制,将文件存储至外部目录,配置静态资源路径或动态接口供前端访问,同时前端使用form-data提交文件并测试各类边界情况,确保功能稳定安全。
-
封装通过绑定数据与行为并隐藏实现细节,提升代码一致性、可维护性与扩展性;Java中以private字段和公共方法控制访问,在setter中校验数据、触发逻辑,保障状态合法;类作为独立模块降低耦合,接口不变时内部可自由调整,支持并行开发与独立测试;需求变化时修改局部化,利息计算等变更不影响调用方,新增功能可通过方法扩展,复用性强;统一入口便于处理日志、事务等横切关注点;封装是设计哲学,推动系统稳健演进。
-
Java微服务架构通过拆分单体应用为独立服务提升灵活性和可维护性,SpringCloud作为其核心框架,提供服务发现(如Eureka)、配置管理(如ConfigServer)、熔断与降级(如Resilience4j)等解决方案。1.服务发现通过Eureka实现动态注册与查询,解决实例地址硬编码问题;2.ConfigServer集中管理配置,支持动态刷新,避免频繁重启;3.熔断机制防止服务雪崩,保障系统稳定性。这些功能使开发者更聚焦业务逻辑,简化分布式系统开发。
-
选择ConcurrentHashMap因它采用分段锁或CAS+synchronized机制,支持高并发读写,避免全局锁性能瓶颈,适用于频繁增删改查的统计场景。
-
Collections.sort()可用于排序List集合,支持自然排序、自定义Comparator及逆序排列,要求元素可比较且集合非null。
-
答案是Java表达式计算遵循优先级、结合性、从左到右求值及短路规则,例如i+++++i+i++因左到右求值得0+2+2=4,而&&和||的短路特性可避免不必要的执行。
-
答案:Java中实现线程安全集合需避免多线程修改引发异常,可使用Collections.synchronizedXxx并手动同步遍历,推荐使用ConcurrentHashMap、CopyOnWriteArrayList等并发集合,复杂操作需用synchronized或ReentrantLock保证原子性,选择方案应根据读写频率和场景决定。