面试问题(Java-技术总结-01)

面试问题(技术总结)

什么是SOA 分布式

集群:就是很多的服务器来实现一种功能,例如mysql,很多的服务器都安装mysql

负载均衡:就是用来调节的,比方说有很多的用户都在访问读取数据,可是读取a服务器的mysql多,而读取别的服务器的mysql就少,负载均衡把访问a的用户转给b一部分,防止a由于访问量过大造成宕机什么的。

分布式:一个系统把不同的服务分开来部署,用户模块,bbs论坛模块,内容模块,支付模块。对服务的访问量很大的时候,单台服务器已经满足不了需求,就把服务分散到几台甚至几十台几百天电脑上

好处:每个模块只负责自己的事情和请求压力,开发人员只负责自己的东西

分布式应用开发简单的说,是指将用户界面、控制台服务、数据库管理三个层次部署在不同的位置上。其中用户界面是客户端实现的功能,控制台服务是一个专门的服务器,数据管理是在一个专门的数据库服务器上实现的。

自我理解:
对项目的客户(用户界面),数据存储(操作数据(服务)),对数据库的操作(数据层) 分离开来,并且可以进行高效的敏捷开发.
分布式,可以对各个模块进行加强(服务器添加(集群处理)),把调用次数比较多的服务,多加服务器,哪些很少使用的服务,可以对它进行一个降低.

### hibernate和mybatis的区别
- hibernate 是对SQL进行了高度的封装,它有自己的HQL语句
- mybatis保留了对数据库灵活的操作,需要自己写sql语句
- 他们都是ORM对象映射(数据查询出来以后都是存在pojo类中),使用方法都是大同小异.
### hibernate的多个参数如何传递?怎么转换?
- 自己理解 :
  - 数组传递,对HQL的语句进行拼接,in()里面的条件通过循环来判断.
- 百度理解:
  - 集合(List),session.createSQLQuery(sql).setParameterList("userIdList", userIdList).list(); 
  - 创建一个查询对象,并且,直接吧集合传进去即可.(setParameterList)
### SpringMVC和struts2 的区别
SpringMVC和struts2区别
	实现不同
		SpringMVC是通过Servlet来实现的
		Struts2是通过拦截器来实现的
	Json的转换方式不同
		Spring MVC是自动转为json
		Struts2是通过插件来转
	数据传输不同
		SpringMVC是通过参数来传递的
		Struts2是通过值栈来传递的,而值栈是个比较庞大的东西
	控制器实例不同
		SpringMVC是基于方法来实现的
		Struts2是基于对象来实现的
		SpringMVC从理论上来讲是比Struts2快的
### 四大域对象
- ServletContext
   生命周期:当WEB应用被加载进容器创建代表整个WEB应用的ServletContext对象,当服务器关闭或WEB应用被移除时,ServletContext对象跟着被销毁。

   作用范围:整个WEB应用。

   在不同Servlet之间转发、读取资源文件
- Request域
  1.生命周期:在Service方法调用前由服务器创建,传入service发那个发。整个请求结束,request生命结束。
  2.作用范围:整个请求链(请求转发也存在)
  3.作用:在整个请求链中共享数据,经常用到:在servlet中处理好的数据交给JSP显示,此时参数就可以放在Request域中。
- Session域
   1.生命周期:在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session,如果没有就在内存中创建一个session并返回。当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。如果服务器非正常关闭,没有到期的session也会跟着销毁。如果调用session提供的invalidate(),可以立即销毁session。
   2.作用范围:一次会话。
- PageContext域
  1.生命周期:当对JSP的请求开始,当相应结束时销毁。
  2.作用范围:整个JSP页面,是四大作用域中最小的一个。
  3.作用:获取其他八大隐式对象,可以认为是一个入口对象。
       `获取所有域中的数据`。
       `跳转到其他资源`。
### Spring 参数如何传递
- 直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。
- 通过HttpServletRequest接收,post方式和get方式都可以。
- 通过一个bean来接收,post方式和get方式都可以。(也叫模型驱动)
- 通过@PathVariable获取路径中的参数
- 使用@ModelAttribute注解获取POST请求的FORM表单数据
- 用注解@RequestParam绑定请求参数到方法入参


### Spring的特征
-  aop(面向切面编程):
  - 软件系统分为两个部分:核心关注点和横切关注点
    - 业务处理的主要流程是核心关注点
    - 与之关系不大的部分是横切关注点
  - AOP核心概念

    横切关注点
    切面(aspect)
    连接点(joinpoint)
    切入点(pointcut)
    通知(advice)
    目标对象
    织入(weave)
    引入(introduction)

- ioc(控制反转):
  - IOC是一种思想,是一个重要的面向对象编程的体现之一

  - 它是把创建和查找依赖对象的控制器交给了容器,有容器进行注入组合对象,所以对象与对象之间是,低耦合的,便于测试,而且也使得整个体系架构变得更灵活
  - 就是对象找依赖并注入,而不是对象自己主动去找

- IOC依赖注入
  - 在控制反转中获取资源的过程叫做依赖注入
    -注入有2种,一种是通过xml配置进行构造注入
    -还有一种是通过setter注入,就是通过对象的set方法进行注入.
  - 一般都是在Spring配置文件中,配置bean ,然后交给Spring自动注入,我们拿到对象就可以直接使用.

### Spring AOP (动态代理的实现)


### Spring MVC执行流程
- 自己理解:
  - 客户请求-->前端控制器-->前端控制器找到HandlerAdapter-->HandlerAdapter(处理数据)--->返回视图-->然后渲染视图-->最后返回视图给客户
### Struts2的执行流程

### Hibernate的执行流程

### mybatis的执行流程


### ElasticSearch 搭建

### ElasticSearch怎么建立索引

### ElasticSearch 怎么使用

### solr 搭建
### solr 怎么建立索引
### solr 怎么使用


### ActiveMQ 使用
消费者:
生产者:
### Dobbo

### WebService

### String && StringBuffer 的区别,在什么时候使用.

### Nginx 负载均衡搭建


### Redis的搭建(集群)

### Redis 中的5种数据类型

String:key-value(做缓存)
Hash:key-fields-values(做缓存)
SortedSet(zset):有顺序,不能重复


`© 著作权归作者所有` `转载请保留原链接地址`


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值