java设计模式面试题归总

1.在java中为什么不允许从静态方法中访问非静态变量?
不是允许不允许的问题,是这个时候非静态成员变量都还不存在,他是伴随着对象的创建而创建的,根本无法访问。
静态方法可以不通过对象进行调用  在对象尚未创建的时候就可以调用,而此时对象尚未创建,非静态成员变量根本都还不存在,何谈访问?
这也是单例模式的唯一实例为什么设置为静态的原因。

2.软件架构中的上层应用是指哪些层,客户端属于上层应用吗?
刚开始听说过OSI七层网络模型(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层),后面又接触到TCP/IP协议,其实也是遵循OSI七层网络模型,只是将OSI的应用层,表示层和会话层归并到应用层而已。
再后来用的mvc、mmvm等,其实都是一种分层设计,旨在每层都封装一个概念并保持独立,同时根据依赖倒置的原则,站在上层客户的角度提供接口,大大降低了客户程序与实现细节的耦合度。
上层应用是相对来说的吧,上层概念是一种抽象、不特定的整体概念,就拿mvc来说,从下至上分别为:数据访问层、业务逻辑层、表示层。表示层最接近客户,展示客户信息,那么可以说数据访问层、业务逻辑层应用都是客户端的上层应用。客户端是不是上层应用,要看相对于什么来说。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值