面试题

(一)面向对象和面向过程的区别

一、编程思想不同。

1、面向过程:是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。

2、面向对象语言:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。

二、特点不同。

1、面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

2、面向对象语言:识认性,系统中的基本构件可识认为一组可识别的离散对象,对象具有唯一的静态类型和多个可能的动态类型,在基本层次关系的不同类中共享数据和操作。

三、优势不同。

1、面向过程:不支持丰富的“面向对象”特性(比如继承、多态),并且不允许混合持久化状态和域逻辑。

2、面向对象语言:在内部被表示为一个指向一组属性的指针。任何对这个对象的操作都会经过这个指针操作对象的属性和方法。


(二)Java的四个基本特征(抽象、封装、继承,多态)

1. 抽象:抽象是将类的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。


2. 继承:继承是从已有类抽取继承信息并构建新的类的过程,提供继承信息的被称为父类(超类/基类),获取继承信息的被称为子类(派生类)。继承它让变化中的软件系统有了一定的延续性,同时继承也是封装过程中可变因素的重要手段。


3. 封装:通常认为封装就是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写类就是对数据和数据操作的封装。简单来说就是封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。


4. 多态性:不同子类型的对象对同一消息做出的不同的响应。


(三)重载和重写的区别

1.重写必须继承,重载不用。

2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同

3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。

4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常。


(四)构造器Constructor是否可以被override?

构造器(override)不能被继承,因此不能重写overriding,但是可以被重载overloading。constructor,说简单点就是“构造方法”。构造方法的作用就是“为对象的初始化赋值”。在java或c#中如果不声明构造方法的话,则系统会自动提供一个不带任何参数的构造方法。举例来说:student stu1= new student();其中的student()就叫做构造方法,是不带参数的构造方法。在比如:student stu2 = new student("张三",18);这个student("张三",18)就是构造方法,是带参数的构造方法。构造方法怎么声明:举个例子:无参数:public student(){ }有参数public student(string name,int age){ this.name=name; this.age=age;}至于构造方法为什么不能override?override是方法“重写”,而构造方法不能重写,只能“重载”。

(五)访问控制符public private protected以及默认的区别

1.public:public修饰的数据成员和成员函数是公开的,所有的用户都可以进行调用。

2.private:private修饰词修饰的成员变量以及成员方法只供本类使用,也就是私有的,其他用户是不可调用的。

3.protected:protected修饰词修饰的成员变量以及成员方法在同一个包中无论是其子类还是普通类都可以调其使用,在不同包中只供其子类调用。

(六)是否可以继承String类,解释原因

不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。

(七)stringbuffer和stringbuilder的区别

1.速度问题,或者说是执行速度,在这方面运行速度快慢为:

StringBuilder > StringBuffer > String

2.安全问题:

1.String中的对象是不可变的,也就可以理解为常量,显然线程安全。

2.StringBuffer是线程安全的。

3.StringBuilder是线程不安全的。

AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的,但是相对应的也会影响其执行速度。

3.应用场景:


1.String:适用于少量的字符串操作的情况

2.StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

3.StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

如果程序不是多线程的,使用StringBuilder效率要高于StringBuffer。

(八)hashCode和equals方法的关系

1、如果eqauls()相同,那么它们的hashCode()一定要相同;

2、如果hashCode()相同,那么它们eqauls()并不一定相同.

所以,Java对于eqauls方法和hashCode方法是这样规定的:

1、如果两个对象相同,那么它们的hashCode值一定要相同;

2、如果两个对象的hashCode相同,它们并不一定相同。

(九)抽象类和接口的区别

1) 都是上层的抽象层。

2) 都不能被实例化

3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。

他们的区别如下:

1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。

2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。

(十)自动装箱与拆箱

1、自动装箱:


基本类型的数据处于需要对象的环境中时,会自动转为“对象”。 自动装箱过程是通过调用包装类的valueOf()方法实现的。


Integer i = 100;//自动装箱

//相当于编译器自动作以下的语法编译:

Integer i = Integer.valueOf(100);//调用的是valueOf(100),不是new Integer(100)

2、自动拆箱:


每当需要一个值时,对象会自动转成基本数据类型,没必要再去显式调用intValue()、doubleValue()等转型方法。如 Integer i = 5;int j = i; 这样的过程就是自动拆箱。


Integer i = 100;

int j = i;//自动拆箱

//相当于编译器自动作以下的语法编译:

int j = i.intValue();

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

推荐阅读更多精彩内容