其他互联网大厂面试题
Java 为程序加锁的方式主要有两种:synchronized 与 Lock。
1.synchronized 可以修饰的作用域如下:
-非静态方法(加的锁为对象锁);
-静态方法(加的锁为类锁);
-代码块(对象锁与类锁均可);
2.Lock 采用 lock()对代码加锁,unlock()进行解锁
1.获取 Class 对象
2.通过 Class 对象获取构造方法
3.通过构造方法调用 newInstance()方法创建对象实例
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 要更耗费服务器资源。
1.TCP/IP 是一个协议簇,是一个开放的协议标准,所有人都可以免费使用,并且是独立于硬件和操作系统的。
2.TCP/IP 协议是不区分网络硬件的,它在局域网,广域网和互联网中都被广泛使用。
3.TCP/IP 协议使用统一的网络地址分配的方案,网络中的每台电脑都具有唯一的 IP地址。
4.TCP/IP 协议是一个标准的高层协议,拥有极高的可靠性,可以为用户提供可靠的服务。
IOC 的主要应用场景体现在 BeanFactory 接口,BeanFactory 下面有具体的实现类来实现 IOC 的功能。
AOP 的主要应用场景:日志、权限、事物等。
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 共享,自然是不会有线程安全的问题。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。