ITPub博客

首页 > 数据库 > 数据库开发技术 > 分享---秋季校招面试题及答案

分享---秋季校招面试题及答案

原创 数据库开发技术 作者:IT枫斗者 时间:2022-10-19 17:48:05 0 删除 编辑

超星学习通22年应届毕业生校招面试题总结:

请介绍一下你的项目背景、分工?

介绍一下你在项目中的收获和遇到的困难?

String str= new String(“abc”); 和String str=“abc” 这两者的区别在哪里?

String str= new String("abc"):

不管字符串常量池中存不存在 “abc” ,直接就创建直接新建一个字符串 “abc” (注意新建的字符串 “abc” 不是在字符串常量池中,而是在堆中),然后将其赋给str。这种效率低于使用字符串常量池的方式。

String str="abc":

首先查看字符串常量池中是否存在字符串 “abc” ,如果存在则直接将“abc”赋给str,如果不存在则先在字符串常量池中新建一个字符串 “abc” ,然后再将其赋给str。

OSI七层模型功能以及各自协议?

第七层:应用层
功能:提供各种各样的
应用层协议,为用户与网络之间提供一个打交道的接口。
常见协议:TELENT,DNS,HTTP,HTTPS,FTP,NFS

第六层:表示层
功能:提供应用层数据的公共表示,即统一数据格式,从而使得数据能在两个系统中传输。
常见协议:LPP

第五层:会话层
功能:负责应用程序之间建立、维持和中断会话,同时也提供对设备和结点之间的会话控制,协调系统和服务之间的交流,并通过提供单工、半双工和全双工3种不同的通信方式,使系统和服务之间有序地进行通信。
常见协议:LDAP

第四层:传输层
功能:主要功能负责数据传输时端到端的完整性,即在网络上建立发送主机和目的主机之间的逻辑连接,从而隐藏了上一层提供数据传输时任何网络独立信息。
常见协议:TCP,UDP,TLS

第三层:网络层
功能:负责数据从一个结点到另一个结点的传输,并根据地址(IP/IPX地址),为信息在网络中传输是选择最佳路径。
常见协议:IP,ICMP,ICMPv6

第二层:数据链路层

功能:主要功能是负责信息从一个结点到另一人结点的物理传输,检测在物理层上传输可能发生的错误并进行纠错,同时处理网络拓扑结构和流量控制等问题。

常见协议:VLAN,STP,IEEE 802.3,WIFI(IEEE 802.11),ATM,HDLC,PPP,ARP,RARP

第一层:物理层
功能:主要功能是直接在物理传输介质上发送和接收数据位,为数据链路层提供物理连接。

在数据链路层怎么看两台机器网络通不通?

ARP协议:地址解析协议,实现通过对方的ip地址(域名)寻找对方的mac地址。多亏了ARP协议,已经知道了对方的mac地址。已经知道了ip地址的情况下,也知道了对方的mac地址。我的数据包就可以在两台机器间进行发送,实现通信。

多个任务放到线程池中如何按照自定义顺序执行?

在子线程中通过join()方法指定顺序

在主线程中通过join()方法指定顺序

通过倒数计时器CountDownLatch实现

通过创建单一化线程池newSingleThreadExecutor()实现

解释一个线程池每个参数意义?

corePoolSize :核心线程数

线程池在完成初始化之后,默认情况下,线程池中不会有任何线程,线程池会等有任务来的时候再去创建线程,核心线程创建出来后即使超出了线程保持的存活时间配置也不会销毁,核心线程只要创建了就永驻了,就等着新任务来进行处理。

maximumPoolSize :最大线程数

核心线程忙不过来且任务队列都满了的情况下,还有新任务继续提交进来的话就会新开辟线程,但是也不会任意的开辟线程数量,线程数(包含核心线程数)阈值是 maximumPoolSize ,达到阈值后还在提交任务的话就走拒绝策略。

keepAliveTime :非核心线程保持存活的时间

如果线程池当前的线程数多于 corePoolSize ,那么如果多余的线程空闲之间超出

keepAliveTime 的话,则这些线程就会被回收。

unit :非核心线程保持存活的时间单位

比如:TimeUnit.MILLISECONDS 、 TimeUnit.SECONDS

workQueue :任务存储队列

核心线程数满了后还在继续提交任务到线程池的话,就先进入 workQueue , workQueue 通常有以下几种选择:

LinkedBlockingQueue :无界队列,默认长度限制是int的最大值。也可以自定义大小。

ArrayBlockingQueue :有界队列,可以自定义大小。

SynchronousQueue :Executors.newCachedThreadPool(); 默认使用的队列。也不算是个队列,他不没有存储元素的能力。

一般我都采取 LinkedBlockingQueue ,因为他也可以设置大小,可以取代 ArrayBlockingQueue有界队列。

threadFactory :当线程池需要新的线程时,会用 threadFactory 来生成新的线程。

默认采用的是 DefaultThreadFactory ,主要负责创建线程。newThread() 方法。创建出来的线程都在同一个线程组里且优先级是一样的。

handler :拒绝策略。

任务超出线程池的配置限制后或执行shutdown后还在继续提交任务的话,会执行 handler 里的逻辑。默认采取的是 AbortPolicy 拒绝策略。也就是直接抛出RejectedExecutionException 异常。

spring的优势

1、方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大地降低了组件之间的耦合性。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2、AOP 编程的支持,Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松实现。

3、声明式事务的支持,可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的完成对事务的管理,而无需手动编程。提高开发效率和质量。

spring生命周期

1.生成BeanDefinition  

2.合并BeanDefinition   
3.加载类  
4.实例化前   
5.推断构造方法 
6.实例化  
7.BeanDefinition的后置处理   
8.填充属性  
9.执行Aware(BeanNameAware、BeanClassLoadAware、BeanFactoryAware)   
10.初始化前 (ApplicationContextAwareProcessor、InitDestoryAnnotationBeanPostProcessor)  
11.初始化  
12.初始化后

mysql逻辑分层

MySql的逻辑架构分为四层,分别是:连接层、服务层、引擎层、存储层。对外暴露的是连接层,我们调用SQL查询接口,交给服务层。四层结构采用解耦式的方式,使得MySql更轻便,高效。

有sql优化案例嘛,介绍一下联合索引?

1. 对操作符的优化 尽量不采用不利用索引的操作符,如:in ,not in , is null, is not null,<> like 等
2. select count(*) from table;这样不带任何条件的 count 会引起全表扫描,并且没有任何业务意义,是一定要杜绝的。
3. 使用“临时表”暂存中间结果
部分 UPDATE、SELECT 语句 写得很复杂(经常嵌套多级子查询)——可以考虑适当拆成几步,先生成一些临时数据表,再进行关联操作。
简化 SQL 语句的重要方法就是采用临时表暂存中间结果,但是,临时表的好处远远不止这些,将临时结果暂存在临时表,后面的查询就在 tempdb 中了,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。
复合索引遵循最左匹配原则,只有索引中最左列匹配到,下一列才有可能被匹配。如果左边列使用的是非等值查询,则索引右边的列将不会被查询使用,也不会被排序使用。

复合主键用过没,需要注意什么?

一张表只能有一个主键,但根据需要,我们可以设置多个字段同时为主键,这就叫做复合主键。

需要注意符合主键的唯一性

你觉得自己适合开发嘛,为什么?

从我的经历来看,这是我的职业生涯中最适合我的一份工作。几年来,我一直在研究这个领域并且关注贵公司,一直希望能有这样的面试机会。我拥有必备的技能(简单讲述一个故事来加以说明),我非常适合这一职位,也确实能做好这份工作。

说说你的职业规划?

关于未来五年的规划分成三个阶段:

第一年:熟悉工作环境,同公司文化融为一体。熟悉行业背景,进而深入的了解本行业,不断发现自己需要学习改进的地方。提升自己,进而为自己提出切合实际的目标,同时注意自己的人际关系。

第二、三年:丰富自己的`专业知识,根据自己的工作表现适时调整自己的规划,成为本领域的专家。同时培养自己的人际关系

第四、五年:调整自己的规划,进入一个新的层次,向更高点看齐

如果大家想进一步了解简历和面试技能项目方面,可以咨询我。本人提供面试辅导,通过挖掘项目的亮点,讲授面试话术,大大提高面试成功的机会。

1.提供java面试方面的资料,包括笔试面试实战真题,录音,大厂面试题。

2.提供java面试辅导服务,经定制优化后的简历能大大提高竞争力,得到面试机会,拿到offer。

3.以一对一语音或者直播交流的方式提供面试辅导服务,包括但不限于如何介绍真实商业项目经验。

包括:如何在面试中证明spring boot能力,如何在项目中证明调优看日志和分布式组件等方面的亮点。项目服务器配置,项目重难点。在实际工作中如何同测试,前端以及产品经理对接沟通,需求会议如何进行。项目中承担什么样的角色,什么样的任务,项目日报,周报,以及项目进度如何对接等等!

同时,也会教授大家“面试话术”,告诉大家如何在面试当中,引导面试官问出你的亮点和技能。

4.甚至还能提供就业辅导和薪资方面的咨询。如果条件合适,还有大公司的内推机会。

下面是我的私人微信号,可以加我微信:itfdz666。如果你对文章有疑问或建议,抑或是交流技术,围观朋友圈,都可以添加我的微信。

原文作者:IT枫斗者;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
大家好,我是枫哥,🌟阿里云技术专家、📝资深面试官、🌹Java跳蚤网课堂创始人。技术交流vx:itfdz666,拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。看面试实战视频可以关注b站号:IT枫斗者–Java面试。需要看技术文章,可以关注CSDN:IT枫斗者。

注册时间:2020-05-13

  • 博文量
    183
  • 访问量
    81348