首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

java学习要点

作为一个程序员,在找工作的过程中,都会遇到笔试,而很多笔试里面都包括java,尤其是作为一个Android开发工程师,java是必备技能之一.所以为了笔试过程中能够有一个不错的成绩,我在网上也找了好多关于java面试的题目.下面是整理的相关资料.参考作者jackfrued(简书作者)hongdada(简书作者). 面向对象的特征有哪些方面--面向对象的特征主要有一下几个方面: 抽象,继承,封装,多态 下面将一一解释.抽象是将一类对象的共同特征总结出来构造类的过程.包括数据抽象和行为抽象两部分.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. 继承: 继承是从已有类得到继承信息创建新类的过程,提供继承信息的类被称为父类(基类或者超类);得到继承信息的类被称为子类或者派生类.继承让变化中的软件系统有了一定的延续性.同时继承也是封装程序中可变因素的重要手段.(在这里可以参考阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分) 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已经定义的窗口.面向对象的本质是将现实世界描绘成一系列完全封闭自治的对象. 我们在类中编写的方法就是对实现细节的一种封装. 我们编写一个类就是对数据和数据操作一种封装. 封装是隐藏一切可以隐藏的东西,只向外界提供最简单的编程接口. (就像我们现在使用的很多东西,其实过程很复杂,但是到了我们使用的那一步就是最简单的了,因为把复杂的过程都封装起来了,只给我们最简单的接口.) 多态: 多态是指允许不同子类型的对象对同一消息做出不同的响应.可以理解为同样的对象调用了同样的方法但是实现了不同的功能.多态又分为编译时的多态和运行时的多态.如果将对象的方法视为对象向外界提供的服务,那么运行时的多态可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力).

06

【深入浅出C#】章节 5: 高级面向对象编程:接口和抽象类

面向对象编程(OOP)是一种软件开发的编程范式,它以对象作为程序的基本单位,通过封装、继承和多态等概念来组织和管理代码。核心概念包括类、对象、封装、继承和多态。 接口和抽象类是面向对象编程中的两个重要概念。它们都具有高度的抽象性和可扩展性,能够帮助我们设计和构建灵活、可维护的代码。接口定义了一组方法和属性的契约,用于描述对象的行为。它提供了一种标准化的方式,使得不同的类可以共享相同的行为,实现了代码的解耦和可替换性。 接口的重要性在于促进了代码的模块化和代码的重用,同时提供了灵活的设计和扩展能力。 抽象类是一种具有部分实现和部分抽象成员的类。它提供了一种基础框架,用于派生具体类。抽象类的重要性在于它定义了类之间的通用行为和属性,并且通过强制派生类实现抽象方法,确保了派生类的一致性。抽象类可以作为模板和基类,提供了代码的重用和继承的能力。 接口和抽象类的作用是提供了一种抽象层级的设计和编码方式,使得代码更加灵活、可扩展和可维护。它们促进了代码的模块化和重用,降低了代码的耦合度,同时也提供了良好的设计和扩展能力。对于大型项目和复杂系统的开发,接口和抽象类是非常重要的工具,能够帮助我们构建高质量的软件。

02

享学课堂谈-Python初学者的设计模式入门

有没有想过设计模式到底是什么?通过本文可以看到设计模式为什么这么重要,通过几个Python的示例展示为什么需要设计模式,以及如何使用。 设计模式是什么? 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现(如果做不到全部的话,具体取决于语言特性)。最为重要的是,设计模式也是一把双

08

40个Java集合类面试题和答案

1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类。 (2)随着使用经过严格测试的集合框架类,代码质量会得到提高。 (3)通过使用JDK附带的集合类,可以降低代码维护成本。 (4)复用性和可操作性。 2.集合框架中的泛型有什么优点? Java1.5引入了泛型,所有的集合接口和实现都大量地使用它。泛型允许我们为集合提供一个可以容纳的对象类型,因此,如果你添加其它类型的任何元素,它会在编译时报错。这避免了在运行时出现ClassCastException,因为你将会在编译时得到报错信息。泛型也使得代码整洁,我们不需要使用显式转换和instanceOf操作符。它也给运行时带来好处,因为不会产生类型检查的字节码指令。 3.Java集合框架的基础接口有哪些? Collection为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。 Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。 List是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。 Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。 一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。 4.为何Collection不从Cloneable和Serializable接口继承? Collection接口指定一组对象,对象即为它的元素。如何维护这些元素由Collection的具体实现决定。例如,一些如List的Collection实现允许重复的元素,而其它的如Set就不允许。很多Collection实现有一个公有的clone方法。然而,把它放到集合的所有实现中也是没有意义的。这是因为Collection是一个抽象表现。重要的是实现。 当与具体实现打交道的时候,克隆或序列化的语义和含义才发挥作用。所以,具体实现应该决定如何对它进行克隆或序列化,或它是否可以被克隆或序列化。 在所有的实现中授权克隆和序列化,最终导致更少的灵活性和更多的限制。特定的实现应该决定它是否可以被克隆和序列化。 5.为何Map接口不继承Collection接口? 尽管Map接口和它的实现也是集合框架的一部分,但Map不是集合,集合也不是Map。因此,Map继承Collection毫无意义,反之亦然。 如果Map继承Collection接口,那么元素去哪儿?Map包含key-value对,它提供抽取key或value列表集合的方法,但是它不适合“一组对象”规范。 6.Iterator是什么? Iterator接口提供遍历任何Collection的接口。我们可以从一个Collection中使用迭代器方法来获取迭代器实例。迭代器取代了Java集合框架中的Enumeration。迭代器允许调用者在迭代过程中移除元素。 7.Enumeration和Iterator接口的区别? Enumeration的速度是Iterator的两倍,也使用更少的内存。Enumeration是非常基础的,也满足了基础的需要。但是,与Enumeration相比,Iterator更加安全,因为当一个集合正在被遍历的时候,它会阻止其它线程去修改集合。 迭代器取代了Java集合框架中的Enumeration。迭代器允许调用者从集合中移除元素,而Enumeration不能做到。为了使它的功能更加清晰,迭代器方法名已经经过改善。 8.为何没有像Iterator.add()这样的方法,向集合中添加元素? 语义不明,已知的是,Iterator的协议不能确保迭代的次序。然而要注意,ListIterator没有提供一个add操作,它要确保迭代的顺序。 9.为何迭代器没有一个方法可以直接获取下一个元素,而不需要移动游标? 它可以在当前Iterator的顶层实现,但是它用得很少,如果将它加到接口中,每个继承都要去实现它,这没有意义。 10.Iterater和ListIterator之间有什么区别? (1)我们可以使用Iterator来遍历Set和List集合,而ListIterator只能遍历List。 (2)Iterator只可以向前遍历,

03
领券