A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

马上就业班考试了,分享一些java基础复习的知识点,大一起加油!欢迎交流
1.说明Java中String  str=null与String  str=""的区别?
    String str = null 表示声明了一个String对象的引用str,但是没有为其分配内存空间。
    String str = "" 表示创建了一个长度等于0的空字符串,并在内存中为其分配了内存空间。
String str = new String("tw"); str在内存中有两个对象,1.堆内存有一个 new Sting 2.常量池中有一个字符串。

2、使用运算符"= ="和方法equals() 进行比较对象的区别?
    使用"= ="算符比较基本数据类型时,比较的是值相等;使用"=="算符比较对象时,比较的是内存地址和内容。
    使用equals()方法 比较对象时,比较的是对象的内容,与地址无关,如果没有重写equals()方法就直接调用的是Object的equals()方法。
"=="比较的是外在和内涵;equals()比较的是外在。用博大精深的中文讲就是:一个相同,一个相似。

3、接口和抽象类有何区别?
   (1)成员特点:
    构造方法:接口没有构造方法;抽象类有构造方法。
    成员变量:接口中只有常量;抽象类中可以是常量,也可以是变量。
   成员方法:接口中只有抽象方法;抽象类中既有抽象方法,也有非抽象方法。
   (2)关系特点:
    类与类:类与类之间只有单继承,可以有多层继承。
   类与接口:类与接口之间是实现关系,可以单实现,也可以多实现。
   接口与接口:接口与接口之间是继承关系,可以单继承,也可以多继承。
   (3)设计理念:
    接口对应的设计模式是简单工厂设计模式,它被实现,这个接口中定义的是整个体现的扩展内容,体现:like a。
    抽象类对象的设计模式是模板设计模式,它被继承,这个类中定义的是整体体现的共性内容,显现is a。
  小编的理解:抽象类与接口类比为一个人的亲爹和干爹,亲爹血浓于水,感情深,爱你发自内心;干爹各种机缘认来的(中国式干爹你懂得)。
4、简述方法的重写与重载
    重写是指重新实现基类中的方法。在运行过程中,如果将子类创建的对象赋值给子类的引用或父类的引用,则无论通过哪个类型的引用,真正调用的方法都将是在子类中重写的方法。 如果希望调用父类中的方法,则需要通过父类创建类的实例,然后通过该实例才能访问父类定义的方法。重写方法时实现多态的一个重要表现。
    在Java中,一个类的内部可以定义多个同名的方法,但是它们的方法参数要有所不同。重写的是与父类同名的方法,与返回值有关。重载是同名方法,与返回值无关,与参数有关,如:个数、类型、排列。
重写注意事项:
(1)父类中的私有方法不可以被重写
(2)子类方法访问权限一定要大于父类的访问权限
(3)静态的方法只能被静态的方法重写,这个其实不能算对象的关系。

5、final、finally、finallize有何区别?
    final表示一个修饰符,如果用它来修饰一个类,则该类是不能继承的;如果用它来修饰一个变量,则该变量一旦赋值之后就不能再修改;如果用它来修饰一个方法,则该方法不能够被重写。
    finally用于异常处理,它用来修饰一个代码块,即使前面的代码处理异常,该代码块中的代码也会执行。它通常用于释放资源。finally代码块之前有调用System.exit()方法的话,finally里面的代码就不会执行。
    finallize表示Object类中定义的一个方法,他可以重写,用于回收资源。

评分

参与人数 3黑马币 +16 收起 理由
LBBQ + 5 赞一个!
68帅锅 + 3 赞一个!
kevinlbq + 8 赞一个!

查看全部评分

4 个回复

正序浏览
看着真的很用心呢,感谢分享
回复 使用道具 举报
很好,楼主总结的不错,进来,温故知新哈
回复 使用道具 举报
写的很好 很全面  赞{:3_51:}
回复 使用道具 举报
6、传统for和高级for有什么区别呢?
对集合进行遍历。
只能获取集合元素,但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中进行增删改查的动作。
高级for有一个局限性,必须要有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义角标。
    1.增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
    2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。
    3.而对于 LinkedList由于获取一个元素,要从头开始向后找,因此建议使用 增强for循环,也就是iterator。

7、Collection和Colections的区别是什么?
   Collection是一个接口,它是List、Set、Queue等接口的父接口。在这个接口中,定义了集合类中通用的方法。
    Collections是独立出来去专门操作Collection接口下实体类的工具类。

8、面向对象和面向过程的理解
面向对象时相对面向过程而言的。比如说:人坐地铁去上班。人面向地铁这个对象,地铁拥有运输的功能,人通过地铁调用这个功能,只重结果,不重于过程。面向过程就如我们开门,锁孔对齐,门轴转动,门才开了,相对于结果,侧重于过程。
曾经跟朋友聊对面向对象,我说就像搭积木,找到需要的,一个一个往上累;她说这就是JAVA方便之处。
(1)面向过程是以函数为基础,完成各种操作,强调的是过程,例如:C语言;
(2)面向对象以对象为基础,完成各种操作,强调的是对象和结果。
(3)面向对象是基于面向过程的。
面向对象的特点是:
(1)是一种个符合人们思考习惯的思想
(2)把复杂的事情简单化
(3)把我们从执行者变成了指挥者
举例:老师您口渴想喝茶,如果你自己去拿杯子,放茶叶,
接水这些是面向过程的;但这时您恰好知道我是个打水小能手,
又正好我很尊敬您,一见如故、一见钟情啥的,很愿意帮您去泡茶。
您调用我帮您泡茶,使用我的拿杯子、放茶叶、接水等方法。
您由执行者上升到了指挥者,让泡茶这件事更简单化。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马