Java 笔试题---Java与编程模式--7月6日
List(interface): 次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。
ArrayList: 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。
LinkedList: 对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。
2.Set的功能方法
Set(interface): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。
HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。
TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。
LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注意的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现Comparable接口并定义compareTo()方法。
三.面向接口编程的好处?
接口(Interface)---方法定义和常量值集合
1.一个“公有接口”是客户代码和实现此接口的类之间的合约
2.一个Java接口是包含没有实现的方法合约
3.许多不相关的类可以实现同一个接口
4.一个类可以实现许多不相关的接口
用处:
1.定义不相关类的共同行为,不需要这些类之间的层次关系
2.可以指明多个类需要实现的方法
3.可以了解对象的编程界面,而不需要了解对象对应的类
4.通过一个接口列表可以实现多重继承
四. 什么是单例模式,在什么情况下使用?
单例模式:在单例模式中,对活动的单例只有一个实例。对单例类的所有实例化得到的都是相同的一个实例。这个模式也提供一个全局的接口来访问这个类的实例。
//Fields
private static Singleton instance;
//Standard default Constructor
protected Singleton(){};
//Static method for creating the single instance of the Constructor
public static Singleton Instance(){
//initialize if not already done
if(instance == null)
instance = new Singleton();
//return the initialized instance of the Singleton Class
return instance;
}
}
public static void main(String []args){
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if(s1 == s2)
System.out.println("The same instance");
}
}
单例模式的优点:
转载于:https://blog.51cto.com/tscjsj/86087
Java 笔试题---Java与编程模式--7月6日相关推荐
- Java笔试题库之编程题库 总共30道编程题,掌握了就可以应付中级以内Java面试题
1.编程实现:二分搜索算法 解答: public class SearchTest { /** 被搜索数据的大小 */ private static final int size = 5000000; ...
- 唯品会校招java笔试题,唯品会校招编程题详解
题目:输入一串字符串,去除多余的空格,并将每个单词的字符倒叙输出.如输入"iew nip iuh" 输出"wei pin hui" java实现: ` ...
- 深圳太极软件笔试题回顾(2013年12月11日)
1.指出Truncate Table.Delete Table和Drop Table的区别? 答:Truncate Table与Delete Table都是用来删除表中的数据的,而Drop Table ...
- 2016最新Java笔试题集锦
更新时间:2015-08-13 来源:网络投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文"2016最新Java笔试题集锦",供大家阅读参考 ...
- [转载] Java笔试题集锦
参考链接: 关于Java中文件名和类名的误解 Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是Model-View-Controller的简写."Mode ...
- java笔试题分类集锦
合格的java工程师仅仅要有技术,还要懂得产品才能少修改,懂得测试要求,才能一次通过,懂得运维问题才能减少后期维.这些大方向体现在设计模式,程序架构,小方面就是语言的准确有效性,比如effective ...
- 2018科大讯飞的Java笔试题附带参考答案
分享一下自己做过的科大讯飞的Java笔试题,题量有点大哦~(附带参考答案) 单选题 1.下列关于继承的描述错误的是( ) A. 在Java中允许定义一个父类的引用,指向子类对象 B. 在Java ...
- 艺龙java面试题_艺龙2018秋招Java笔试题
在牛客做了那么多题,终于轮到我分享了~~这是我做过的艺龙的Java笔试题哦~~ 单选题 1.设有以下递归函数: int f(int m,int n) { if(m==0) { return n+1; ...
- 东软信息学院java试题,东软Java笔试题答案
东软Java笔试题答案 Java面向对象程序设计考试卷班级:姓名:时间:90分钟一.选择题(没有注明多选,则为单选)1. 下列变量定义错误的是A. int a; B. double b=4.5; C. ...
最新文章
- 松翰松翰c语言编程指导,松翰C程序检单例程代码下载
- centos selinux mysql 5.6_centos 6.4下安装mysql 5.6.11
- c语言启动程序句柄无效,电脑中玩英雄联盟提示“句柄无效”是怎么回事
- android ble从设备,从Android设备发送命令到蓝牙
- k8s mysql 配置文件_k8s配置文件模板
- 解决VirtualBox里Ubuntu的共享文件夹无法访问(终极解决方案)
- Spring Boot Debug调试
- Cucumber+Rest Assured快速搭建api自动化测试平台
- java web swing 教程_好程序员Java教程解读什么是swing
- M2Det论文解读和开源代码
- 《望洞庭湖赠张丞相》 孟浩然
- 手机图片怎么压缩,简单的压缩方法
- 类似911的代理ip,911代理的官网,yilu代理软件,911s5替代软件海外代理平台哪里有?
- 设置swiper中的高度
- Kafka知识点概述
- java 石头剪刀布_java循环练习:石头剪刀布
- 51单片机PWM调速风扇转速显示转速设置
- arcmap给tif添加地理坐标_如何将JPG格式的图片转化为带地理坐标的TIFF格式
- 滚动轴承频谱分析详解
- springboot整合rabbitmq的发布确认,消费者手动返回ack,设置备用队列,以及面试题:rabbitmq确保消息不丢失
热门文章
- Tex, LaTex概念及实例
- [设计模式-创建型]工厂方法(Factory Method)
- Teamcenter - Index search 找不到相关物件的解决方法
- java保护访问,Java中的受保护的访问修饰符
- 火狐浏览器允许ajax,ajax如何解决火狐浏览器或其它非ie浏览器的兼容性问题
- java 生成二维码,并跟其他图合成新图 图片添加水印
- Docker容器虚拟化与传统虚拟机比较
- 怎么查询服务器绑定的网站吗,服务器绑定网站吗
- mm1排队系统仿真matlab实验报告,MM1排队系统仿真matlab实验报告.doc
- go语言和java比_python与java、php、go的优势对比,各语言不要引起恐慌哈