略少面试题项目中用到的技术详解有用阿善9

Springmvc入口是方法Struts入口是fiter

Springmvc基于方法开发的传递参数通过形参,可以设计成单例或者多例

Struts基于类开发传递参数通过属性传递,只可以设计成多例的

Struts采用值栈的方式请求和响应数据,通过OGNL存取在页面,springmvc方法间独立的,独享请求和响应参数,请求通过数据通过参数获取,通过modelmap返回结果数据.

Struts针对每个请求封装成map供action使用保证了线程的安全性,但是在并发量大的时候创建了较多的Action大量占用资源,.并发量大的时候考虑用Springmvc代替Struts

Springmvc继承ajax使用方便只需要一个@requestBody注解返回结果即可.

Struts的拦截器继承了ajax在action中配置必须通过插件,或者代码集成进去,使用起来相对不便.

Springmvc可以认为100%零配置

三、

三、几种典型的内存泄漏

我们知道了在Java中确实会存在内存泄漏,那么就让我们看一看几种典型的泄漏,并找出他们发生的原因和解决方法。

3.1全局集合比如hashmap和ArrayList正名为static生命周期和应用的生命周期一样长

在大型应用程序中存在各种各样的全局数据仓库是很普遍的,比如一个JNDI-tree或者一个sessiontable。在这些情况下,必须注意管理储存库的大小。必须有某种机制从储存库中移除不再需要的数据。

通常有很多不同的解决形式,其中最常用的是一种周期运行的清除作业。这个作业会验证仓库中的数据然后清除一切不需要的数据。

另一种管理储存库的方法是使用反向链接(referrer)计数。然后集合负责统计集合中每个入口的反向链接的数目。这要求反向链接告诉集合何时会退出入口。当反向链接数目为零时,该元素就可以从集合中移除了。

3.2缓存一个已经不用的对象却被缓存引用.

缓存一种用来快速查找已经执行过的操作结果的数据结构。因此,如果一个操作执行需要比较多的资源并会多次被使用,通常做法是把常用的输入数据的操作结果进行缓存,以便在下次调用该操作时使用缓存的数据。缓存通常都是以动态方式实现的,如果缓存设置不正确而大量使用缓存的话则会出现内存溢出的后果,因此需要将所使用的内存容量与检索数据的速度加以平衡。

常用的解决途径是使用java.lang.ref.SoftReference类坚持将对象放入缓存。这个方法可以保证当虚拟机用完内存或者需要更多堆的时候,可以释放这些对象的引用。

四、如何检测和处理内存泄漏

如何查找引起内存泄漏的原因一般有两个步骤:第一是安排有经验的编程人员对代码进行走查和分析,找出内存泄漏发生的位置;第二是使用专门的内存泄漏测试工具进行测试。

hashmap2倍扩容hashtable2倍+1扩容

Http协议的理解HTTP是一个超文本传输协议,属于OSI七层模型的应用层,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是无状态的也就是说同一个客户端的这次请求和上次请求是没有对应关系。tcp属于第四层

应用层(Application):

网络服务与最终用户的一个接口。

协议有:HTTPFTPTFTPSMTPSNMPDNS

表示层(PresentationLayer):

数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)

格式有,JPEG、ASCll、DECOIC、加密格式等

会话层(SessionLayer):

建立、管理、终止会话。(在五层模型里面已经合并到了应用层)

对应主机进程,指本地主机与远程主机正在进行的会话

传输层(Transport):

定义传输数据的协议端口号,以及流控和差错效验。

协议有:TCPUDP,数据包一旦离开网卡即进入网络传输层

网络层(Network):

进行逻辑地址寻址,实现不同网络之间的路径选择。

协议有:ICMPIGMPIP(IPV4IPV6)ARPRARP

数据链路层(Link):

建立逻辑连接、进行硬件地址寻址、差错效验等功能。(由底层网络定义协议)

将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

物理层(PhysicalLayer):

建立、维护、断开物理连接。(由底层网络定义协议)

'

2.网络聊天系统或论坛,功能是过滤非法文字

3.统一解决编码

怎么创建一个过滤器:

1.生成一个普通的class类,实现Filter接口(javax.servlet.Filter;)。

2.重写接口里面的三个方法:init,doFilter,destroy。

3.然后在web.xml配置过滤器。Servlet过滤器一、Servlet过滤器的概念:◆Servlet过滤器是在JavaServlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。◆Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤作用。Servlet过滤器能够在Servlet被调用之前检查Request对象,修改RequestHeader和Request内容;在Servlet被调用之后检查Response对象,修改ResponseHeader和Response内容。◆Servlet过滤器负责过滤的Web组件可以是Servlet、JSP或者HTML文件。二、Servlet过滤器的特点:◆Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象◆Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器◆Servlet过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象

三、Servlet过滤器的作用:◆查询请求并作出相应的行动。◆阻塞请求-响应对,使其不能进一步传递。◆修改请求的头部和数据。用户可以提供自定义的请求。◆修改响应的头部和数据。用户可以通过提供定制的响应版本实现。◆与外部资源进行交互。

五、Servlet过滤器接口的构成:所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:◆init(FilterConfig):这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数◆doFilter(ServletRequest,ServletResponse,FilterChain):这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器◆destroy():Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源

六、Servlet过滤器的创建步骤:◆实现javax.servlet.Filter接口◆实现init方法,读取过滤器的初始化函数◆实现doFilter方法,完成对请求或过滤的响应◆调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应◆销毁过滤器

七、Servlet过滤器对请求的过滤:◆Servlet容器创建一个过滤器实例◆过滤器实例调用init方法,读取过滤器的初始化参数◆过滤器实例调用doFilter方法,根据初始化参数的值判断该请求是否合法◆如果该请求不合法则阻塞该请求◆如果该请求合法则调用chain.doFilter方法将该请求向后续传递

八、Servlet过滤器对响应的过滤:◆过滤器截获客户端的请求◆重新封装ServletResponse,在封装后的ServletResponse中提供用户自定义的输出流◆将请求向后续传递◆Web组件产生响应◆从封装后的ServletResponse中获取用户自定义的输出流◆将响应内容通过用户自定义的输出流写入到缓冲流中◆在缓冲流中修改响应的内容后清空缓冲流,输出响应内容

做事(行为之一)走路(行为之二)说话(行为之三)}

继承:由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如下:教师{年龄(属性一)身高(属性二)性别(属性三)

做事(行为之一)走路(行为之二)说话(行为之三)

教书(行为之四)}上面对"教师"的封装,与对"人"的封装基本上差不多,只是多了一个特征行为:教书,教师有与人一样的共性,但我们不能说"人教书",也就是不能把教书封装到"人"之中去,教书是教师的特征行为之一.为了省事地封装教师(代码的复用,这只是继承存在的原因之一),可以让教师去继承人,如:教师extends人{教书(行为之三)}这样,我们就不用重新定义那些已经被"人"这一个类所封装的那些属性与行为了,而只需要使用继承的方式,在人的基础上拓展教师专有的行为,即"教书"即可把教师描述出来;这样的结果,即是教师也同时拥有"人"之中所封装的一切属性与行为,还拥有自己的特征行为"教书".

多态:多态的概念发展出来,是以封装和继承为基础的(其实我觉得抽象也应该算是面向对象的大特征之一,要封装,抽象是必须的)

简单的理解一下多态,比如:人这个类,封装了很多人类共有的特性,教师是人的子类,继承了人的属性与行为,当然教师有自己的特征行为,比如教书授课;学生是人的子类,继承了人的属性与行为,当然学生有自己的特征行为,比如学习做作业;现在,当我们需要去描述教师与学生各自的行为的时候,我们可以分开来说"教师在授课","学生做作业",但如果我们要站在抽象的角度,也就是从教师与学生的父类"人"的角度,来同时描述他们各自的行为时,我们怎么描述"人在授课""人在做作业"这是不是怪怪的很不合适不合适的问题就在于,对于行为主体,我们使用了抽象层次的东东"人",而对于行为本身,我们却使用了具体的东东"授课"与"教书".怎么解决呢那就需要解决抽象与具体的矛盾问题.既然是站在抽象在角度来描述,那我们把行为抽象一下,不就能同时描述了吗比如"人在做事"(教师授课与学生做作业都可以说成人在做事),这样就解决了抽象层次与具体层次之间的矛盾.

到了这一步,我们可以把两个描述:"教师在做事","学生在做事"两者统一为"人在做事",然后,我们可以在"教师"的"做事"行为中去调用教师自己的特征行为"授课",在"学生"的"做事"行为中去调用学生自己的特征行为"做作业",所以,当调用"人"去"做事"的时候,如果这个人是教师,那他所做的事实际上就是"教书",如果这个人是学生,那他所做的事实际上就是"做作业".也就是说在这里"人"是多态的,在不同的形态时,特征行为是不一样的,这里的"人",同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是"授课"与"做作业".

完成上述的描述过程,其实就是多态机制的体现.

多态,就是站在抽象的层面上去实施一个统一的行为,到个体(具体)的层面上时,这个统一的行为会因为个体(具体)的形态特征而实施自己的特征行为.

反射技术大量用于Java设计模式和框架技术,最常见的设计模式就是工厂模式(Factory)和单例模式(Singleton)。单例模式(Singleton)这个模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录数据库连接都需要这样的单线程操作。这样做就是为了节省内存空间,保证我们所访问到的都是同一个对象。使用反射机制的步骤:u导入java.lang.relfect包u遵循三个步骤第一步是获得你想操作的类的java.lang.Class对象第二步是调用诸如getDeclaredMethods的方法第三步使用反射API来操作这些信息

THE END
1.入职新单位,能不能通过社保查到我上一家单位?法律分析:根据我国法律规定,可以查到,去社保部门查询即可。法律依据:《中华人民共和国社会保险法》第https://www.findlaw.cn/wenda/q_46480638.html
2.新公司为我缴纳社保,新公司能查询到我上家公司的所有社保信息记录若你的社保是一直连续买下来的,公司可以看到你以前的社保记录,如果你在A公司买了社保后辞职,中间社保断了,你没补缴,到B公司工作时,公司又重新开户为你买了社保,那么就看不到以前的记录。前提是A和B公司不在同一社保中心购买社保:你自己也可以去打印社保明细;本人去的话只需要带上身份证原件和复印件就可以了;如https://news.66law.cn/ask/10761760.aspx
3.下家公司能看到上家公司社保记录吗爱问知识人不能。新单位不会查询上家缴纳社会保险的单位的名称,属于个人隐私。离职后下家查不到上家缴纳的五险一https://iask.sina.com.cn/b/law1z0A11Kz9XAT.html
4.新公司能查到上一家公司的社保公积金缴费记录之类的吗老师,我想问下,入职了一家新公司,新公司可以查到多久之前的社保啊,交过3家公司的社保,都能查https://www.chinaacc.com/wenda/detail/xt/2240688
5.下家公司能看到上家公司社保记录吗?法来自上海陈俊律师下家公司能看到上家公司社保记录吗? 法律分析:新入职一家公司,新公司能够查到上一家公司给自己交的社保记录吗?正常情况下,下家公司是不能查到上家公司的社保记录的。而且,作为新单位来说,他也不会去查询https://weibo.com/1778066111/LmgcIiF72
6.公司交社保的时候能查看上一家公司信息吗?你的新公司是看不到你上家公司的名字和缴费记录的,只能看到你不是新参保,是缴纳过社保的。https://www.qinqinxiaobao.com/ask/1716.html
7.怎么查询自己在几家公司任职怎么查询自己在几家公司任职? 如果您持续支付社会保险,您可以在社保网站上查找您以前工作的公司名称。只要您之前工作过的公司都是正规公司并且都正常为您支付医疗和社保费用及纳税,您有两种方法可以查询: 1、您可以查看您的个人社保缴费清单详细信息,这可通过微信和支付宝完成; https://www.duote.com/tech/202402/544570.html
8.家人们,新公司缴纳社保hr会看到之前缴纳的社保公司记录吗看得到的,我现在就在负责公司的社保,新增人员的时候就能看到之前他所在的单位名称。 快乐气泡水 是以往的单位还有缴了几个月社保都能看到吗? 赞 回应 豆豆友友 2021-03-19 16:19:05 看面试情况,上家信息不用刻意还是能看到的 赞 回应 滚 2021-03-19 16:19:24 想查可以在系统查到 赞 回https://www.douban.com/group/topic/216093669/
9.怎么查询多家交社保怎么查询多家交社保交社保怎么查询 1、支付宝查询社保首先第一个,打开你的支付宝,在首页找到市民中心。打开后点击社保,再点击社保查询就可以分别看到你养老账户和医保账户里的余额了。想了解更详细一点的话,可以点击下面各险种的查询。比如养老保险查询,点进去可以看到缴纳的月数,以及每个月,个人和公司各交了多少钱https://www.shenlanbao.com/wenda/topics/214283
10.上一家公司可以查到下一家公司的社保吗律师普法上一家公司可以查到下一家公司的社保吗2020-01-16 1,752 普法内容不能。新单位不会查询上家缴纳社会保险的单位的名称,属于个人隐私。个人查询方法是社保卡信息可在市劳动保障信息查询系统的触摸屏进行查询,触摸屏分布在市各区劳动保障局服务大厅、各区医疗保险管理中心服务大厅、就业管理局服务大厅以及大部分街道https://www.110ask.com/tuwen/14683716381816736070.html
11.怎么查上家公司有没有交社保?保险知识问答查询上家公司有没有交社保的方法: 1.支付宝查询:点击城市服务—社保,点击电子社保卡—社保查询,在社保查询中,点击参保缴费明细,选择社保的一种保险点击进去,可以看到公司有没有交社保以及交社保的月份,点击未缴,可以看到没有交社保的月份。 2.其他方法:可以拨打当地社保部门的电话进行查询,或者登录当地社保部门的网https://www.51credit.com/wenda/919567.html
12.个人可以放弃上家单位欠缴的社保吗留言列表留言标题 个人可以放弃上家单位欠缴的社保吗 留言内容 公司账户没钱,个人离职但是社保没停一直欠费,个人可以放弃这段时间的社保账户吗? 特别声明 此留言内容为驻马店网络问政版权所有,各自媒体作者及其他媒体禁止以镜像、截图、摘编等任何形式上传到网络,否则承担相应法律后果。单位http://wlwz.zmdtvw.cn/wap/message/message_content/id/82337.html
13.我在新入职的单位买社保,他们能查到我上一家的社保的单位吗?那么原单位就可以去当地的社保机构查询该人员的新缴费单位,一般来说,同一个地市所有的社保系统为同一https://www.lawtime.cn/wenda/q_38158799.html