专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
芋道源码  ·  Cloudflare ... ·  1小时前  
芋道源码  ·  为了DDD 熬夜撸了一套 IDEA 插件) ·  18 小时前  
芋道源码  ·  SpringBoot启动原理详解(图文全面总结) ·  2 天前  
芋道源码  ·  疯传Java界,堪称最强! ·  2 天前  
51好读  ›  专栏  ›  ImportNew

面试的角度诠释 Java 工程师(二)

ImportNew  · 公众号  · Java  · 2017-02-24 11:32

正文

(点击 上方公众号 ,可快速关注)


来源:locality,

http://www.jianshu.com/p/a0b8b6f17888

如有好文章投稿,请点击 → 这里了解详情


续言:


相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会说它们是一样的?简单思考一下……


程序:程序是由某语言的工程师用一段段代码逻辑连贯出来的,或许当事人是看得懂滴,但是问题是你要让项目经理看得懂啊!要是项目经理都看不懂了,你还指望这个东西能到产品经理手里啊?所以就有了一系列的注释和注解。


文章:写出的字段,首先自己要看得懂吧,其次还得让别人看得懂并且认同你吧。更强大的还是得有文字魅力和吸引力,这点比程序丰富多了(简直把产品经理做的事都做了)。


大家是不是觉得我走题了?这可不是的哟!在第一篇我说了,面试的目的不是让考官知道你怎么样,而是让你自己清楚自己怎么样;在第二篇,我想说的是,在你拥有能力和技术的情况下,懂得怎么在面试官前推销自己。文章和程序亦然,面试又何尝不是呢?(通俗点讲,就是说点面试官能听的懂得话哦)



三、框架篇


框架基础


反射:反射是Java开发的一类动态相关机制。因为本身Java语言并不是一款动态语言,如果我们想要得到程序动态的效果,因此便引入了反射机制这一概念。


怎么表达反射?



能用反射做什么?


PS:某面试题:Java中创建实例化对象有哪些方式?


①最常见的创建对象方法,使用new语句创建一个对象。


②通过工厂方法返回对象,例:String s =String.valueOf()。(工厂方法涉及到框架)


③动用反射机制创建实例化对象,Class类的三种方法或者通过类类型的newInstance()实例方法。


④调用对象的clone()方法。(俗称克隆方法)


⑤通过I/O留的反序列化手段,调用ObjectInputStream对象的readObject()方法。


注解:日常开发中,注解的使用简化了不少代码,同时也减少了程序员的日常工作量。


Java注解可以细分为JDK注解和第三方注解。其具体使用方法,可以点开链接看哦。



ORM


认识Hibernate和Mybatis之前,必然要先了解一下什么是ORM?


ORM是三个单词的缩写:Object/Relationship Mapping。翻译过来就是“对象/关系映射”。


为什么要有ORM?


在用面向对象思想编写应用程序的时候,最终都是把对象的信息保存在关系型数据库中,这样我们就需要编写很多与底层数据库相关的SQL语句。显然这样是很不便捷的,ORM框架技术就可以解决这些繁琐的问题。


ORM存在的意义?


彻底抛弃书写SQL语句的思想,完全使用面向对象的思想开发。


为什么要抛弃程序中书写SQL语句的思想?


①不同的数据库使用的SQL语法不同,例:同样一段SQL脚本,能在T-SQL中运行,但不一定能保证可以在PL-SQL中运行。


②同样的功能在不同的数据库有不同的实现方式,例:分页SQL。


③程序过分依赖SQL,对程序的移植、扩展和维护带来很大的麻烦。


Hibernate框架


Hibernate是Java领域内的一款开源的ORM框架技术。


Hibernate的机制原理:


①Hibernate对JDBC进行非常轻量级的封装。

(从本质上而言,最终Hibernate还是通过JDBC来进行对数据库的操作,只不过在JDBC的基础上进行了一定的封装)


②与EBJ(本身是JavaEE的规范,重量级的ORM框架技术)不同,Hibernate属于轻量级的ORM框架技术。


③Hibernate介于数据库层和业务逻辑层之间,起到持久化层的作用。


HQL数据查询基础


  • 检索对象——from子句

  • 选择——select子句

  • 限制——where子句

  • 排序——order by子句


HQL和SQL语句不同,HQL中from子句是必须的,可以没有select子句。


Hibernate的常用属性:


cascade:设置级联关系。

inverse:设置由哪一方维护关联关系。


例:下面的这段代码集合了常用属性以及表与表之间的多对一和一对多关系。


fetch="">

......


Struts2框架


Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。


struts2的工作原理及文件结构(http://www.jianshu.com/p/46f870043522)


Struts2动态方法的调用:



例:


①指定method属性的方法。


/index.jsp


②感叹号的方式。


/index.jsp


③通配符的方式。


/index.jsp

/{1}.jsp


在使用通配符方式的时候,如果要使用多个method的话,可以再在method="{1}{2}..."里面这样添加,同时需要修改name=""里面的名字+后缀_*_*...,还要配置所需要的 /{}.jsp 标签


Struts2访问servlet api:



Struts2拦截器工作原理:








请到「今天看啥」查看全文