java程序员面试常见问题.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 你对面向对象的理解? 我的思路是: 回答时从面向对象的三大特征回答。包括三个特征:继承、封装、多态。 类的继承性是指从已有的一个类来 extends子类,子类具有了父类的所有特征,同时,子类也可以有 新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也 有新的特性,比如男人会长胡子。 类的封装是指类把所有的操作都封闭起来,仅仅提供接口岀来让其他人使用,使用的人没有必要懂得 类里面的操作,只需要懂得操作接口就可以了。比如开汽车,我 们只需要懂得方向盘、刹车、油门 等等的使用就可以了,没有必要知道刹车是如何构成的封闭好的操作。同时,封装也提高了程序的可 替换性。比如两个汽车公司实 现刹车的方式不一样,但是,只要我们学会了使用刹车,那么,开两 个汽车公司的车就都没有问题了,我们不需要考虑他们怎样实现刹车这门技术的。 类的多态性是一个对象的某项功能可以处理不同类型的问题, 或者一个子类可以将父类的某个功能替 换成新的功能,具体到编程的方面来说实现类的多态有 override和overload ,也就是重写和重载。 同时面向对象还有一个很重要的概念: 抽象。抽象就是一个事物的本质。当然对于本质,不同的角度 却会有不同的理解。男人,在和女人一起的时候,它的本质是人。在和所有的生物一起的时候,它的 本质是动物。(虽然哲学家都说事物的本质只有一个,但是,我仍然坚持我的观点) java中String类为什么要设计成 final 呢? 不允许其他类继承。这个应该不是最终原因,但这里权且也当成是一个原因。 String类中的成员属性也几乎 都设计成了 private final 的,这样String就被设计成一个不变类, 这样有助于共享,提高性能。可以将字符串对象保存在字符串常量池中以供与字面值相同字符串对象 共 享。如果String对象是可变的,那就不能这样共享,因为一旦对某一个 String类型变量引用的 对象值改变,将同时改变一起共享字符串对象的其他 String类型变量所引用的对象的值。 String被设计为不变类,其中的 offset ,value[]都被设计成private final 的,这样在多线程时, 对String对象的访问是可以保证安全的。 java程序语言的许多特性依赖于不可变的 String对象 说说Hashpmap的原理 HashMap概述 HashMap是基于哈希表的 Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的 数据结构都可以用这两个基本结构来构造的, HashMap也不例外。HashMap实际上是一个“链表散列” 的数据结构,即数组和链表的结合体。 HashMap底层就是一个数组结构,数组中的每一项又是一个链 表。当新建一个 HashMap的时候,就会初始化一个数组。 什么是AOP 概念介绍:所谓 AOP即Aspect orientied program, 就是面向方面的编程, 什么是方面:所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调 用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未 来的可操作性和可维护性。 Aop的原理:面向切面编程,将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个 切面,然后注入到目标对象(具体业务逻辑)中去。 实现AOP的技术,主要分为两大类: 一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行; 二是采用静态织入的方式,引入特定的语法创建 方面”,从而使得编译器可以在编译期间织入有关 方 面”的代码 IOC 控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在 spring配置文件中配置相 应的bean,以及设置相关的属性,让 spring容器来生成类的实例对象以及管理对象。 数据库触发器的优缺点以及用法 触发器本质上讲就是事件监控器,可以定义在数据库系统进行某一个操作的前后。 当数据库系统在进行特定的操作时,发现有触发器定义,就去执行触发器定义的功能,从而满足某些特定 的需要。(触发器就是你在做某个操作的时候触发另外一个操作 ) 例如,在更新某些数据后,再去更新特定的数据。 这就可以定义一个触发器完成这样的需要。 触发器的优点: 以事件方式来处理.当数据发生变化的时候,自动作处理。 缺点: 当数据库之间 导岀导入的时候,可能会引起不必要的触发逻辑。 oracle,mysql,SqlServer 三种数据库的分页查询的实例

文档评论(0)

ey8703 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档