Java其他常见杂乱面试问题

一、网关是什么?作用是什么?

1、概念:

网关(Gateway)又称网间连接器协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

2、作用:

主要作用就是进行协议转换,不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器

3、原理:

从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway) [1]  就是一个网络连接到另一个网络的“关口”。也就是网络关卡

二、什么是SpringCloud熔断?

1、雪崩效应:

“雪崩效应"就是单个服务节点出现问题会造成大面积的服务节点出现异常,为了解决这种问题出现了"熔断机制”。

2、熔断机制是为了解决雪崩效应而出现的:

Spring Cloud 采用Hystrix 组件的 Circuit Breaker 去做熔断器。

熔断器的机制就是当服务A出现问题时,请求次数超过阈值会关闭服务A直接返回失败信息。这样服务B和C及其依赖的服务还可以正常运行。

此外熔断器提供自我修复机制,服务器A在熔断一段时间后会自动重启并且重新发送部分请求,若部分请求没有问题会继续发送剩余请求。最后熔断器会提供服务监控功能。

三、SpringBoot的存储过程:

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

直白点就是,本该在service层完成的逻辑操作,直接放到数据库内完成了。

好处:减少了与数据进行连接完成操作的过程,提高了执行效率

缺点:增加了数据库的负担,且移植性较差

四、Https和http协议?

1、http协议:

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

2、https协议:

HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1]  。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

3、SSL协议:

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。

4、TCP/IP协议:

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。

五、JSON:

1、JSONJavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。

2、JSON 与 JS 对象的关系:

很多人搞不清楚 JSON JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

如:

var obj = {a: 'Hello', b: 'World'};//这是一个对象,注意键名也是可以使用引号包裹的
var json='{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

六、Java设计模式:

1、单例模式:

概念:一个类有且只有一个实例,并且自行实例化向整个系统提供。

(1)饿汉式:

指全局的单例实例在类装载时就构建。

特点:类加载时就初始化,线程安全。

        // 构造方法私有化
    private Singleton() {       
    }
    // 饿汉式创建单例对象
    private static Singleton singleton = new Singleton();
 
    public static Singleton getInstance() {
        return singleton;
    }

(2)饱汉式:

只有用到这个单例实例时才创建。

特点:第一次调用才初始化,避免内存浪费。

    /*
     * 懒汉式创建单例模式 由于懒汉式是非线程安全, 所以加上线程锁保证线程安全
     */
    private static Singleton singleton;
 
    public static synchronized Singleton getInstance() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }

2、工厂模式:

用工厂方法代替了new对象的操作。在new一个对象的时候直接调用工厂方法就行了。实现工厂接口,再由工厂类调用工厂方法创建实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值