java基础面试题总结

1.面向对象编程的特性:抽象、封装、继承、多态,其中封装、继承和多态是核心。

(1)抽象:让事物脱离具体化,只将它的类型、属性和行为抽离出来形成一个类,

例如针对猫、狗、牛、羊,根据它们的共同特征和共同行为,可以把它们抽象出一个动物类,这个从现实中的物体到程序的类设计就是一个抽象的过程,动物类本身就是泛指,它不指具体的某一种动物,这就是脱离具体化的体现。

(2)封装:简而言之就是隐藏内部的实现细节,对外提供接口的这样一种设计,封装可以增强代码的安全性

(3)继承:类与类之间的is-a关系,子类将拥有父类的非私有成员

(4)多态的概念:同一种事物,由于条件不同,产生的结果也不同

重载和重写都是多态的表现形式。

重载与重写的区别:

1、方法重写是发生在父类与子类之间,而方法重载只在同一个类里面进行。

2、方法重写是子类为扩展父类方法的功能而编写的方法,重写要求:

                   a、方法名相同

                    b、参数列表相同

                    c、返回值类型相关(基本数据类型必须相同)

                    d、访问修饰符只能大于等于父类方法的范围

                    e、子类抛出的异常只能是父类抛出的异常或它的子异常。

3、方法重载是为了方便对一个操作提供多种方案而编写的方法,重载要求:

                    a、方法名相同

                    b、参数列表不同

                    c、跟返回值类型、访问修饰符、抛出的异常没关系。

2.抽象类和接口有什么异同?

语法上的区别:

1、接口中全部都是public抽象方法,(JDK1.8可以有默认和静态方法)而抽象类可以有非抽象方法

2、接口中的属性都是常量,而抽象类不一定

3、接口中没有构造方法,而抽象类有,但抽象类的构造方法只是为了产生子类对象初始化父类属性

4、接口是给类实现的,使用implements,一个类可以实现多个接口,而抽象类是其他类给继承的extends

从语法上可以认为接口是一种特殊的抽象类,但从设计理念上这么理解就是错误的。

设计理念上的区别:

1、抽象类表示的是各个子类的共同特征,是一个“中间产品”,其子类才是“最终产品”,子类和父类之间是"is a"关系(猫、狗是动物),即父类和子类在概念本质上是相同的

2、接口表示一种约定(USB),一种能力(比如猫、鱼、燕子都继承动物类,但可以实现不同接口,如爬树、游泳,飞翔)。接口定义“做什么”,实现类负责“怎么做”,体现了功能(约定)与实现相分离的原则。

3.什么是内部类?内部类有哪几种?有什么优缺点?

答:定义在类内部的类,其他细节和普通类一致称为内部类;

内部类有4种:1 > 成员内部类  2 > 方法内部类  3 > 静态嵌套类 4> 匿名内部类

优点:1.隐藏了具体的实现和细节,

         2.减少类文件的数量,

         3. 避免传参,简化业务逻辑

缺点:使程序结构变得更复杂,不易维护

4.什么是构造方法,有什么作用,如何调用本类和父类的构造方法?

1.方法名与类名一致,且无返回类型的方法称之为构造方法;

 2.构造方法用于对类的成员变量进行初始化

 3.通过“this()”方法调用本类的构造方法, 通过“super()”方法调用父类的构造方法;必须写在第一行

5.final、finally、finalize有什么异同?

final 用于声明属性,方法和类,分别表示属性的值不可变,方法不可覆盖,类不可继承。内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。

finally是异常处理语句结构的一部分,表示总是执行。除了System.exit(0)

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收。

6.异常:主要分为Throwable(运行时异常(runtime exception)、检查异常(checked exceptions))、错误(error)

(1)自定义异常:继承Exception 或者Exception 的子类,定义有参构造方法,在需要的地方throw异常。

(2).throws:用来申明方法可能产生的异常,不会处理,而是将异常抛给调用者处理

      throw:抛出一个具体的异常类型

(3).在catch中return(),finally{}会不会执行?  

答:会,会在return之后执行。

(4).finally()在什么情况下不会执行 

答:只有一种情况不会执行,当执行到System.exit(0)时,finally不会执行。

7.访问权限

8.String和StringBuffer、StringBuilder的区别?

都是final类,String类是不可变字符串,可以像基本数据类型一样直接赋值(直接存放常量池),StringBuffer、StringBuilder是可变字符串,只能通过new产生对象,StringBuilder是线程不安全的,被单个线程使用的时候,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

9.如何区分运行时异常与检查异常,他们使用时有何区别?

RuntimeException及其所有子类都属于运行时异常,在程序中可以不用处理,直接由jvm处理,而检查异常必须在程序中处理。

10.static, abstract可以修饰什么,有什么作用?abstract可以和final共同修饰吗?

static修饰变量、方法在类加载的时候就会初始化,所有实例共享,可以用类名.属性、类名、方法名;abstract修饰方法表示该方法没有具体实现,必须由其子类实现,修饰类表示该类为抽象类不能被实例化。他们不能共同修饰,因为abstract是代表抽象必须被实现,final代表终极的不能重写和继承。

11.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 

值传递,因为他传递的是对象的地址值,在Java中只有值传递,没有引用传递。

12.什么是java序列化,如何实现java序列化?

序列化就是将内存中的对象保存到硬盘或传输到网络中先将需要序列化的类实现Serializable接口,然后通过ObjectOutputStream或XmlEncoder类的writeObject()方法实现

13.初始化的过程(new对象时进行的操作) --其中1.2是在类加载的时候执行

1. 父类静态成员和静态代码块,按在代码中出现的顺序依次执行

2.子类静态成员和静态代码块,按在代码中出现的顺序依次执行

3.父类实例成员,按在代码中出现的顺序依次执行

4.父类构造方法

5.子类实例成员,按在代码中出现的顺序依次执行

6.子类构造方法

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

推荐阅读更多精彩内容