不能写成Map map = new Map()这样是因为:

Map是接口,hashMap是Map的一种实现。接口不能被实例化,只能使用其实现类来实例化,而Map map=new Map()是错误的

在Java中 Map map = new HashMap()为什么不写成HashMap map = new HashMap()呢?

这是出于代码的维护性来考虑。

对于:Map map = new HashMap()
是定义了一个接口,我们直接调用这个接口就可以完成我们想要的动作,别人在使用时调用此接口便可以,而不用管内部实现逻辑。
以后如果有变动,不用管这个接口,只需要修改实现这个接口的类即可。

而对于 :HashMap map = new HashMap()
我们定义的就是一个实现类,把这个类给别人用,在出现问题和改动的话,那么程序就无法运行,凡是用到这个类的地方都要修改,维护起来很麻烦,而上面的接口,你只需要改你实现这个接口的实现类就可以了

Java 中Map map = new HashMap()为什么不写成HashMap map = new HashMap()或者Map map = new Map()?相关推荐

  1. Java中使用字符流读取UTF-8和写出txt文件 乱码 问题

    乱码问题一直都是非常难受的问题,本文解决Java中使用字符流读取UTF-8和写出txt文件 乱码 话不多说,直接上图 输出结果: 使用代码: 解决:

  2. java中MM/DD/yy, HH:mm AM 转成时间戳

    java中MM/DD/yy, HH:mm AM 转成时间戳 public static long dateToMs(String _date) {SimpleDateFormat format = n ...

  3. java 中向文本写入和读取hashmap_就靠这一篇HashMap的讲解,我与头条面试官聊了一个小时。...

    预备知识 位运算知识(更多资料私信"学习"免费获取) 位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快.尽管现代计算机处理器拥有了更长的指令 ...

  4. Java中接口的作用,为什么要写接口?

    ** Java中接口的作用 转载于:https://www.zhihu.com/question/20111251 ** **困惑:**例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现 ...

  5. java中的for语句格式_Java中foreach循环语句的格式可以写成(        )。

    [其它]1) 了解. 收集.整理 原研哉生平.设计理念及经典代表作 (可交) 2) google baidu 简洁的页面 丰富的变化 收集 (可交 ) [单选题]ABS 塑料通常用于 Jaguar L ...

  6. java中的if for循环语句怎么写_for语句用法-if语句的用法-while语句用法

    Java中的for语句的用法 格式: for (initialization;condition;increment)statement; 其中: initialization是for循环的初始部分, ...

  7. Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?

    问题一:如下面的代码示例 1,JVM 是不是会反复回收旧的变量 a 再重新创建新的变量 a 呢?还是旧的变量 a 一直保留在栈内,只是反复赋值 0 而已呢? 代码示例 1: while (true) ...

  8. java中ofd文件转pdf_ofd格式如何转换成word

    OFD格式是和PDF格式一样的,对文档进行归档要求的一种格式,如果想要进行编辑和查看的话,都是需要相应的阅读器.编辑器的.当然,我想大部分人会和我一样,都会选择先去将OFD格式转换成WORD格式进行编 ...

  9. java中SQL查询语句有like '%?%'怎么写

    在mysql里面我们直接用:这条sql语句. 是没有什么问题的,执行的结果如下 但是我们想要在java里面写一条sql语句能和这条语句相同.一开始,我在java里面用了这一条语句 当我运行结果时,我发 ...

最新文章

  1. List 为什么可以实例化ArrayList
  2. docker安装clickhouse_docker 安装ClickHouse
  3. Android自定义Application的作用
  4. 理解Floyd-Warshall算法
  5. BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)
  6. java对日期进行加减操作以及比较大小
  7. ubuntu查看node的安装目录_ubuntu安装nfs服务实现共享目录
  8. pyspark对应的scala代码PythonRDD类
  9. 文件设置索引_Linux文件系统是怎么工作的?
  10. iOS-屏幕适配-UI布局
  11. 金蝶K3服务器安装与配置方法详细图解
  12. 基于Java SpringBoot的电影院管理系统设计与实现毕业设计源码011633
  13. 网络会变的有自我意识吗
  14. C#(OpenGL MathNet)处理Gauss光斑图像
  15. c#语言定义文档pdf,C#如何更改Word的语言设置.pdf
  16. AppNode受控端命令 - AppNode帮助中心
  17. PS 2019 Mac版 自学入门系列(七)—— 调亮深色区域
  18. 去除桌面快捷方式上的小箭头
  19. 转载 :make报错:/usr/bin/ld: cannot find -lXXX
  20. 饿了么技术往事(下)

热门文章

  1. 【解决方案 七】---Git Merge时“交换文件.MERGE_MSG.swp已经存在”的问题
  2. Istio 是啥?一文带你彻底了解
  3. winfrom鼠标点击位置
  4. koolshare lede 挂载硬盘剩余空间-猫耳朵朵
  5. 3.2.2.频数分布
  6. VC 设置静态文本框透明背
  7. 面向对象IOS编程中的聚合与耦合
  8. Chrome浏览器下载失败的解决方法
  9. javascript 对象{‘key1’:‘value1‘,‘key2‘:‘value2‘} 转化为数组 [{‘key1‘:‘value1‘},{‘key2‘:‘name2‘}]
  10. c语言如何给位域变量赋值,C语言下位操作(使用位域方法)