没有合适的资源?快使用搜索试试~ 我知道了~
01-Java基础(面向对象+集合).docx
需积分: 0 24 浏览量
2023-01-30
10:40:57
上传
评论
收藏 113KB DOCX 举报
1. 请说说面向对象的特征 面向对象主要包括封装、继承、多态、抽象。 封装,给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在 Java 当中,有 4 种修饰符: default、public、private 和 protected 。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。 禁止对象之间的不良交互提高模块化。 继承,给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。对于接口可以多继承, 但是对于类只能是单继承 多态,是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作,可以应用到其他类型的值上面。 抽象,是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。 2. 面向对象和面向过程的区别 面向过程7 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较
资源推荐
资源详情
资源评论


















只为高薪就业
叩丁狼教育 www.wolfcode.cn
1
1. 请说说面向对象的特征
面向对象主要包括封装、继承、多态、抽象。
封装,给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的
数据。在 Java 当中,有 4 种修饰符: default、public、private 和 protected 。每一种修饰符给其他
的位于同一个包或者不同包下面对象赋予了不同的访问权限。
通过隐藏对象的属性来保护对象内部的状态。
提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
禁止对象之间的不良交互提高模块化。
继承,给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况
下给现存的类添加新特性。对于接口可以多继承, 但是对于类只能是单继承
多态,是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作,可以应
用到其他类型的值上面。
抽象,是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。
2. 面向对象和面向过程的区别
面向过程 7
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如,单片机、
嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展。
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的
系统,使系统更加灵活、更加易于维护。
缺点:性能比面向过程低。

只为高薪就业
叩丁狼教育 www.wolfcode.cn
2
3. 重载和重写的区别
1)重写 override
方法名、参数、返回值相同。
子类方法不能缩小父类方法的访问权限。
子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
存在于父类和子类之间。
方法被定义为 final 不能被重写。
2)重载 overload
参数类型、个数、顺序至少有一个不相同。
不能重载只有返回值不同的方法名。
存在于父类和子类、同类中。
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时
的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者
二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相
同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常
(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。
4. 什么是构造方法?什么是构造方法重载?
1)构造方法
当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。在程序员没有给类提供构造方法的
情况下,Java 编译器会为这个类创建一个默认的构造方法。

只为高薪就业
叩丁狼教育 www.wolfcode.cn
3
2)构造方法重载
Java 中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己
唯一的参数列表。
5. 什么是值传递和引用传递
值传递,是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。
引用传递,一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。
一般认为,Java 内的传递都是值传递,Java 中实例对象的传递是引用传递。
6. 是否可以在 static 环境中访问非 static 变量?
static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,
会对 static 变量进行初始化。
如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还
没有跟任何实例关联上。
7. String、StringBuffer、StringBuilder 的区别
Java 平台提供了两种类型的字符串:String 和 StringBuffer/StringBuilder,它们可以储存和操作字符串。
String ,是只读字符串,也就意味着 String 引用的字符串内容是不能被改变的。每次对 String 类型进
行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。
StringBuffer/StringBuilder 类,表示的字符串对象可以直接进行修改。StringBuilder 是 Java 5 中引入
的,它和 StringBuffer 的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有
被 synchronized 修饰,因此它的效率也比 StringBuffer 要高。
8. String s = new String("xyz") 会创建几个对象
首先,在 String 池内找,找到 "xyz" 字符串,不创建 "xyz" 对应的 String 对象,否则创建一个对象。
然后,遇到 new 关键字,在内存上创建 String 对象,并将其返回给 s ,又一个对象。
剩余11页未读,继续阅读
资源评论

Soncat2000
- 粉丝: 11
- 资源: 1

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
