南京软通动力java中级社招面经

1、锁可以锁在哪里?

Java为程序加锁的方式主要有两种:synchronized与Lock。

1. synchronized可以修饰的作用域如下:

-非静态方法(加的锁为对象锁);

-静态方法(加的锁为类锁);

-代码块(对象锁与类锁均可);

2. Lock采用lock()对代码加锁,unlock()进行解锁

2、怎么利用反射获取类中的对象?

1.获取Class对象

2.通过Class对象获取构造方法

3.通过构造方法调用newInstance()方法创建对象实例

3HTTP https 区别?

1. HTTP明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP)数据传输过程是加密的,安全性较好。

2.使用HTTPS协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。

3. HTTP页面响应速度比HTTPS快,主要是因为HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,而HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,所以一共是12个包。

4. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

5. HTTPS其实就是建构在SSL/TLS之上的HTTP协议,所以,要比较HTTPS比HTTP要更耗费服务器资源。

4、谈谈你对TCP / IP 协议的了解

1. TCP/IP是一个协议簇,是一个开放的协议标准,所有人都可以免费使用,并且是独立于硬件和操作系统的。

2. TCP/IP协议是不区分网络硬件的,它在局域网,广域网和互联网中都被广泛使用。

3. TCP/IP协议使用统一的网络地址分配的方案,网络中的每台电脑都具有唯一的IP地址。

4. TCP/IP协议是一个标准的高层协议,拥有极高的可靠性,可以为用户提供可靠的服务。

5、说说Aop IOC 的应用

IOC的主要应用场景体现在BeanFactory接口,BeanFactory下面有具体的实现类来实现IOC的功能。

AOP的主要应用场景:日志、权限、事物等。

6Spring bean 是线程安全的吗?

Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。

1. Spring容器中的Bean默认是单例的,所有线程都共享一个单实例的Bean,因此是存在资源的竞争。如果单例Bean,是一个无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这个单例Bean是线程安全的。比如Spring mvc的Controller、Service、Dao等,这些Bean大多是无状态的,只关注于方法本身。对于有状态的bean,是线程不安全的,但是我们可以通过ThreadLocal去解决线程安全的方法。

2.对于原型Bean(即scope="prototype"),每次创建一个新对象,也就是线程之

间并不存在Bean共享,自然是不会有线程安全的问题。

7Maven package install 区别

package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用。

8、遇到过哪些设计模式?

9、谈谈简单工厂和抽象工厂的区别

简单工厂模式:是由一个工厂对象创建产品实例,简单工厂模式的工厂类一般是使用静态方法,通过不同的参数的创建不同的对象实例可以生产结构中的任意产品,不能增加新的产品

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类,生产多个系列产品生产不同产品族的全部产品,不能新增产品,可以新增产品族

10、说说你常用的Linux 基本操作命

ls -用来显示目标列表
cd -用来切换工作目录

pwd -以绝对路径的方式显示用户当前工作目录

cat -文件内容查看

grep -是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行

打印出来tail -输出文件中的尾部内容

ps -用于报告当前系统的进程状态

kill -命令用来删除执行中的程序或工作

top -可以实时动态地查看系统的整体运行情况

11、谈谈Currenthashmap 的扩容机制

JDK1.7

先对数组的长度增加一倍,然后遍历原来的旧的table数组,把每一个数组元素也就是Node链表迁移到新的数组里面,最后迁移完毕之后,把新数组的引用直接替换旧的。

JDK1.8

扩容时候会判断这个值,如果超过阈值就要扩容,首先根据运算得到需要遍历的次数

i,然后利用tabAt方法获得i位置的元素f,初始化一个forwardNode实例fwd,如果f == null,则在table中的i位置放入fwd,否则采用头插法的方式把当前旧

table数组的指定任务范围的数据给迁移到新的数组中,然后给旧table原位置赋值fwd。直到遍历过所有的节点以后就完成了复制工作,把table指向nextTable,并更新sizeCtl为新数组大小的0.75倍,扩容完成。在此期间如果其他线程的有读写操作都会判断head节点是否为forwardNode节点,如果是就帮助扩容。

 


#软通动力##java工程师##社招##面经#
全部评论
3 https需要SSL证书,一般证书免费申请,多域名证书之类的需要收费,https慢一部分原因是加解密过程相对耗费时间 6 单例bean看情况,有状态(公共变量)不安全,多例安全 11 chashmap1.7的时候segment不扩容,1.8的时候好像也不扩容,楼主这一题写的不太对 个人浅见:这好像就是单纯的复制粘贴的面试题答案,没有融入个人理解,但对于找工作是差不多了
2 回复 分享
发布于 2021-08-14 16:34
外包
点赞 回复 分享
发布于 2021-08-28 20:54
中级这么简单?
点赞 回复 分享
发布于 2022-03-26 22:40

相关推荐

11-13 15:41
已编辑
南京信息工程大学 Java
一面(主管面)1. 自我介绍2. 讲实习项目3. java方法传参是值拷贝还是引用拷贝4. String为什么不可变 5. ArrayList和LinkedList使用场景6. final修饰的方法影响重载吗7. HashMap做本地缓存需要考虑什么 8. ThreadLocal底层原理9. 项目中具体怎么用的threadlocal10. 讲讲jvm内存结构11. 电商网站选用什么垃圾回收器比较好12. 索引失效有哪些情况13. 什么是回表14. 慢SQL可能的原因,如何排查15. left join和right join区别16. kafka的消息丢失和重复消费问题17. xxljob相比timer的优势18. Nacos在项目中怎么用的19. 讲下手写的rpc20. 如何确保消息安全性21. 服务端解析出请求交给线程池还是直接执行22. 反问:校招流程以及中国制造网业务二面(技术面)1. 期望薪资多少,有其他offer吗2. 找工作看哪些城市3. 什么是动态规划4. 动态规划的优势是什么5. 动态规划和分治法相同点和区别6. 为什么不找AI相关的工作 7. 你觉得研究生期间AI的学习经历对你有帮助吗8. 可以来提前实习吗9. 了解敏捷开发吗10. 单元测试用过JUnit吗11. 了解设计模式和面向对象吗12. 看java代码片段,说结果和时间复杂度(考点java值拷贝)13. 算法题,说思路(一个滑动窗口、一个双指针)14. 你觉得这些算法在开发中有用吗(我说我没遇到过,埋下隐患)15. 电商场景题(需要用到动态规划算法解决)16. 反问:校招名额17. 时长:38min三面(CTO面)1. 自我介绍2. 高考怎么报的志愿3. 考研怎么选的学校4. 自定义分布式全局ID生成器怎么实现的5. 缓存架构怎么设计的6. json和protobuf的理解 7. 对java的理解8. 未来职业规划9. 期望薪资10. 什么时候可以实习11. 对我的建议:说技术可以更全面些;做选择可以多问问同龄人或学长12. CTO面总结:聊天为主,交流了很多对技术的理解13. 时长:50min11.5感谢信。应该是薪资要高了😅除了二面都是线下,0offer选手发面经攒人品 #面经#
查看99道真题和解析
点赞 评论 收藏
分享
评论
12
64
分享
牛客网
牛客企业服务