​ #软件开发2024笔面经#鼠鼠抱着试一试心态投的,过了简历初筛收到笔试通知,做完笔试收到面试通知就参加了,面试才知道只招应届生(主要是云计算方向的,我是投Java的),面试官人很好,把面试流程过完了(涨经验了)。1.自我介绍老生常谈的自己的技术栈优势等,然后是项目介绍相关的。2.主键索引和唯一索引的区别主键索引:定义与用途:主键索引用于唯一标识表中的每一行数据,确保数据的完整性和准确性。强制性与非空约束:主键索引具有强制性,一个表只能有一个主键。主键字段的值必须是唯一的,且不允许为空。产生聚集索引:主键索引总是产生唯一的聚集索引。聚集索引决定了表中数据的物理存储顺序,按照主键字段的值进行排序。外键关联:主键常用于与其他表建立外键关联,以维护表之间的引用完整性。性能考虑:由于主键索引是聚集索引,它通常能够提供更高效的范围查询和排序操作,因为数据本身就是按照索引顺序存储的。唯一索引:定义与用途:唯一索引也用于确保索引列的值组合在表中是唯一的,但它不像主键那样具有强制性。强制性与非空约束:唯一索引不具有强制性,一个表可以有多个唯一索引。唯一索引的字段允许有空值。产生非聚集索引:默认情况下,唯一索引产生唯一非聚集索引。非聚集索引与数据分开存储,包含一个指向数据行的指针。但如果表已经存在聚集索引,也可以选择创建唯一聚集索引。外键关联:唯一索引不常用于外键关联,因为主键更适合用于这种场景。性能考虑:唯一非聚集索引主要用于快速定位到具有唯一值的行,但对于范围查询和排序操作可能不如聚集索引高效,因为数据不是按照索引顺序存储的。3.线程的状态​​编辑新建(New)创建后尚未启动。# 可运行(Runnable)可能正在运行,也可能正在等待 CPU 时间片。包含了操作系统线程状态中的 Running 和 Ready。# 阻塞(Blocking)等待获取一个排它锁,如果其线程释放了锁就会结束此状态。# 无限期等待(Waiting)等待其它线程显式地唤醒,否则不会被分配 CPU 时间片。没有设置 Timeout 参数的 Object.wait() 方法Object.notify() / Object.notifyAll()没有设置 Timeout 参数的 Thread.join() 方法被调用的线程执行完毕LockSupport.park() 方法-# 限期等待(Timed Waiting)无需等待其它线程显式地唤醒,在一定时间之后会被系统自动唤醒。调用 Thread.sleep() 方法使线程进入限期等待状态时,常常用“使一个线程睡眠”进行描述。调用 Object.wait() 方法使线程进入限期等待或者无限期等待时,常常用“挂起一个线程”进行描述。睡眠和挂起是用来描述行为,而阻塞和等待用来描述状态。阻塞和等待的区别在于,阻塞是被动的,它是在等待获取一个排它锁。而等待是主动的,通过调用 Thread.sleep() 和 Object.wait() 等方法进入。Thread.sleep() 方法时间结束设置了 Timeout 参数的 Object.wait() 方法时间结束 / Object.notify() / Object.notifyAll()设置了 Timeout 参数的 Thread.join() 方法时间结束 / 被调用的线程执行完毕LockSupport.parkNanos() 方法-LockSupport.parkUntil() 方法-# 死亡(Terminated)可以是线程结束任务之后自己结束,或者产生了异常而结束著作权归@pdai所有 原文链接:https://pdai.tech/md/java/thread/java-thread-x-thread-basic.html4.start()和run()的区别start方法:这是Thread类的一个方法,用于启动线程。当你调用一个线程的start方法时,它会创建一个新的线程,并在新的线程中调用该线程的run方法,这意味着start方法负责线程的启动和调度。run方法:这是Runnable接口中的一个方法,或者可以直接在继承自Thread的类中被重写。它定义了线程应该执行的具体任务或操作。当线程启动后,它会自动调用run方法来执行其中的代码。总结来说,start方法用于启动线程,并在新的线程中执行run方法的内容;而run方法则定义了线程应该执行的具体任务。5.代码开发规范(面试官根据简历提的)1.命名规范不能以下划线或$开始或结束,不能拼音和英文混合或纯中文,杜绝不规范的缩写,尽量使用完整的单词。类名使用大驼峰形式,但以下情形例外:DO/ BO/ DTO / VO/ AO/ PO/ UID等。方法名、参数名、变量(局部、成员)都用小驼峰。常量全部大写,单词下划线隔开。抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。定义数组时中括号在类型后面,不能在数组名后边。布尔类型变量不能加is前缀,否则框架解析时可能会引起系列化错误。......详细的可以看以下链接原文链接:  http://t.csdnimg.cn/qK2zc​
点赞 11
评论 3
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务