乐趣区

JAVA面试题22

     本文首发于 cartoon 的博客
    转载请注明出处:https://cartoonyu.github.io/c…

  • Get 和 Post 请求有哪些区别?

    • Get 方法不改变数据库状态,POST 会改变数据库状态
    • 回退页面 / 刷新时,Get 不会再提交数据,Post 会再次提交数据
    • Get 能被客户端缓存或保存,Post 不能
    • Get 的数据长度受 url 限制,Post 数据放在 requestBody 上,不受 url 限制
  • 如何实现跨域?

    • 参考博客:https://blog.csdn.net/ligang2…
    • 图片 ping 或 script 标签跨域
    • JSONP 跨域
    • CORS
    • window.name+iframe
    • window.postMessage()
    • 修改 document.domain 跨子域
    • WebSocket
    • 代理
  • 说一下 JSONP 实现原理?

    • 尚未接触
  • 说一下你熟悉的设计模式?

    • 代理模式。程序调用子模块通过代理实现
    • 观察者模式(观察者角度)

      • 主动式

        1. 观察者持有主题的引用
        2. 主题发布更新,并通知观察者
        3. 观察者调用主题成员方法获取更新
      • 被动式

        1. 主题持有观察者列表
        2. 主题发布更新,并循环列表向观察者发布更新内容
    • 单件模式

      • 当前类在系统中只有一个对象
      • 利用 volatile 以及 synchronized 保证多线程下的安全
    • 策略模式

      • 将实体属性与行为分开
      • 行为通过接口注入的形式注入到实体中
退出移动版