Java基础

1.   什么是面向对象,什么是面向过程,区别在那?

答:面向过程是针对功能开发,分析出解决问题的步骤,然后实现,重点是实现的过程。特点性能方面比面向对象高,没有面向对象易维护,易复用,易扩展。

面向对象是把问题分解成为各个对象,建立对象不是为了完成某一个步骤,而是在描述某个事务在解决问题的步骤行中的行为,面向对象是以功能来划分问题而不是步骤。特点是易维护,复用和扩展,性能没有面向过程好。

 

2.   java的基本特征?

答:java有三大基本特征:封装,继承,多态。

     封装:把客观的事务封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象去操作,对不可信的进行封装的隐藏。封装分为属性的封装和方法的封装。 

     继承:是对有着共性的多类事物,进行在抽象成一个类,这个类就是多类事物的父类。意义在于抽取多类事物的共性。

     多态:允许不同类的对象对同一消息做出响应。方法的重载,类的覆盖正是体现多态。

3,方法的重载和重写的区别?

答:重载:发生在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法的返回值和修饰符可以不同,发生在编译时。

       重写:发生在父子类中,方法名参数列表必须相同,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类。如果父类的方法访问修饰符为private则子类中不能重写。

4,抽象类和接口?

答: 接口是公开的,里面不能有私有的方法或变量,是用与让别人使用的,而抽象类

      中可以有私有方法和私有变量。实现接口的一定要实现接口里定义的所有方法而

      抽象类可以选择的重写需要用到的方法。接口可以显示多重继承,而一个类只能

      继承一个超类,但可以通过继承多个接口实现多重继承。

5.成员变量和局部变量?

答: 成员变量是一个类部内,可以不显示初始化,他可以有系统设定默认值,成员变

量所在类被实例化后存在堆内存中。

局部变量是定义在方法体类,没有默认值所以必须设定初始化赋值,局部变量所

在的方法调用时,存在栈内存当中。

6.集合知识点?

答:集合特点是:存储对象,长度可变,存储对象的类型可不同。最顶层是Collection和Map集合。

Collection的子类接口list和set接口。

List:有序,元素可以重复,有索引。实现子类中有:

1.Arraylist:底层是数组结构,查询快,增删慢,不同步。

      2.Linkedlist:底层是链表结构,增删快,查询慢,不同步。

      3.Vector:底层是数组结构,同步。

 

     Set:无序,无索引,元素不可以重复。实现子类有:

1.   hashset:底层是哈希表,线程不同步,无序,高效。

保证元素的唯一性:通过hashcode和equals方法,若hashcode相同,则会判断equals结果是否为true,如不同则不调用equals方法。

LinkedHashSet:有序,是hashSet的子类。

2.   Treeset:底层是二叉树结构,线程不同步,默认是自然排序。

保证唯一性:通过Comparable接口的compareTo方法的返回值确定。

排序方式:

(自然排序)实现Comparable接口,覆盖compareTo方法。

(比较器)定义一个类实现Comparator接口,覆盖compare方法。当主要条件相同时比较次要条件。

 Map集合:

        1.HashTable:底层结构是哈希表,不可存入null键和null值,同步。Properties继承hashtable,可保存在流中或流中加载,是集合IO流的产物。

       2.HashMap:底层结构是哈希表,允许null键和null值,不同步,效率高。

        3.TreeMap:底层结构是二叉树,不同步,可以排序,和set很像,set底层使用map集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值