Java基础面试题

01. 面向对象的四个特性;对多态的理解(多态的实现以及多态在项目中的使用);

  • 四个特性:
    • 抽象:是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象。抽象只关注对象的哪些属性和行为,并不关心细节是什么;
    • 继承:从已有类得到信息并创建新类的过程。
    • 封装:隐藏一切可隐藏的东西,只向外提供简单的结构。
    • 多态:允许不同类型的子类对象对**同一消息**做出不同的响应。
  • 对多态的理解:
    • 方法重载:在编译时的多态性;
    • 方法重写:在运行时的多态性;
      要实现多态主要要做的两件事:
      1. 方法重写
      2. Fi obj = new Zi();
  • 项目中对多态的运用:
    Android开发中,Activity有一些共同的操作,比如说initView,getLayoutResId,initData,等基本通用操作,可以抽取在BaseActivity中,子类继承它,重写相应的方法。

02 面向对象和面向过程的区别?面向过程可以用面向对象实现吗?那是不是不能面向对象?


03 重载和重写区别

  • 重载:发生在父类和子类之间。同名方法,参数列表不同(参数的类型不同,参数个数不同或者两者都不同),视为重载。
  • 重写:发生在同一个类中。要求:1.方法范围类型相同;2.子类重写父类方法的访问权限比父类大。

04 面向对象开发的六个基本原则,迪米特法则,在项目中用过哪些?

  • 六个基本原则:

    1. 单一职责:一个类只做他该做的事情(高内聚);
    2. 开放封闭:软件实体应该做到:对扩展开放,对修改关闭;
      要做到开闭有两个要点:
      1. 抽象。一个系统中如果没有抽象类或者接口,那么这个系统就没有扩展性。
      2. 封装可变性。将系统中的各种可变因素封装在一个继承结构中,如果多个可变因素混在在一个在一起,系统将变得混乱;
    3. 里氏替换:任何时候都可以用子类替换父类。因为子类一定是增加父类的能力,而不是减少父类的能力。
    4. 依赖倒置:面向接口编程。其实就是 声明方法参数类型、返回值类型、引用变量类型的时候,尽量使用抽象类型而不使用具体类型,因为抽象类型可以被他的任何一个子类替代。
    5. 合成聚合复用:优先使用合成或者聚合关系复用代码。
    6. 接口隔离:接口应该小而专,不应该大而全。臃肿的接口往往是一种接口污染,接口表示一种能力,那么接口应该也是高内聚的。
  • 迪米特法则:
    也叫最少知识法则。一个对象应当对其他对象有尽可能少的了解;

  • 项目中用到的原则:
    单一原则。接口隔离。依赖倒置。


05 static和final的区别:

06 HashMap和HashTable的区别;HashMap中的key可以是任何数据对象或者数据类型吗?HashTable是线程安全的吗?


07 HasMap和ConcurrentHashMap的区别,ConcurrentHashMap线程安全吗?ConcurrentHashMap如何保证线程安全?


08 String有重写Object的hashcode和toString方法吗?如果重写equals不重写hashcode有什么问题?


09 String、StringBuffer、StringBuilder的区别和String的不可变性。

  • String、StringBuffer、StringBuilder的区别:

    1. 都是Final类,都不允许被继承;
    2. String长度不可变,StringBuffer和StringBuilder长度是可变的;
    3. StringBuffer是线程安全的,StringBuilder是线程不安全的 。但是他们的方式都是相同的,StringBuffer 主要是在StringBuilder的方法上添加了synchronized方法,保证线程安全。
    4. StringBuilder比StringBuffer更加高效。
    5. 重点:如果一个String类型的字符串,在编译的时候就确定了是常量,那么编译完成之后,字符串会自动拼接成一个常量,此时String的效率比StringBuffer、StringBuilder都要高;
  • String的不可变性:

    1. 被final修饰,不能被继承;
    2. 用+号连接字符串的时候会创建新的 字符串;
    3. String s =new String(“Hello Word”);//可能创建一个或者连个对象。因为 如果静态区中有“Hello Word”,那么仅在 堆 中创建对象;如果静态区中没有,那么堆和静态区都将创建对象;
    4. 在java中,如果用+号来拼接字符串,那么底层将通过StringBuilder的append方法来实现。

10.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容