1.float 与 double

1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型。

// float f = 1.1;

Java 不能隐式执行向下转型,因为这会使得精度降低。

1.1f 字面量才是 float 类型。

float f = 1.1f;

2. 隐式类型转换

因为字面量 1 是 int 类型,它比 short 类型精度要高,因此不能隐式地将 int 类型下转型为 short 类型。

short s1 = 1;
// s1 = s1 + 1;

但是使用 += 运算符可以执行隐式类型转换。

s1 += 1;

上面的语句相当于将 s1 + 1 的计算结果进行了向下转型:

s1 = (short) (s1 + 1);

3. switch

从 Java 7 开始,可以在 switch 条件判断语句中使用 String 对象

String s = "a";switch (s) {case "a":System.out.println("aaa");break;case "b":System.out.println("bbb");break;
}

switch 不支持 long,是因为 switch 的设计初衷是对那些只有少数的几个值进行等值判断,如果值过于复杂,那么还是用 if 比较合适。

// long x = 111;
// switch (x) { /* Incompatible types. Found: 'long',* required:'char, byte, short, int, * Character, Byte, Short, Integer, String, or an enum'*/// case 111:// System.out.println(111);// break;// case 222:// System.out.println(222);// break;
// }

4. 重写与重载

4.1 重写(Override)

存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。

为了满足里式替换原则,重写有有以下两个限制:

  • 子类方法的访问权限必须大于等于父类方法;
  • 子类方法的返回类型必须是父类方法返回类型或为其子类型。

使用 @Override 注解,可以让编译器帮忙检查是否满足上面的两个限制条件。

4.2 重载(Overload)

存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。

应该注意的是,返回值不同,其它都相同不算是重载。

5. Java 与 C++ 的区别

  • Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C++ 为了兼容 C 即支持面向对象也支持面向过程。
  • Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。
  • Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。
  • Java 支持自动垃圾回收,而 C++ 需要手动回收。
  • Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。
  • Java 不支持操作符重载,虽然可以对两个 String 对象支持加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。
  • Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。
  • Java 不支持条件编译,C++ 通过 #ifdef #ifndef 等预处理命令从而实现条件编译。

6.JRE or JDK

  • JRE is the JVM program, Java application need to run on JRE.
  • JDK is a superset of JRE, JRE + tools for developing java programs. e.g, it provides the compiler "javac

float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK相关推荐

  1. oracle c op,ORACLE中内部函数SYS_OP_C2C和隐式类型转换

    什么是SYS_OP_C2C呢?官方的介绍如下: SYS_OP_C2C is an internal function which does an implicit conversion of varc ...

  2. c语言float转换为int_C语言的隐式类型转换和显示类型转换

    C语言是一种强类型语言,当使用一种类型的对象代替另外一种类型的对象进行操作时,必须首先进行类型转换. 类型转换的方式,一般可分为隐式类型转换和显示类型转换(也称为强制类型转换). 1.隐式类型转换 隐 ...

  3. int转换为cstring_PostgreSQL 隐式类型转换探秘

    个人简介 何小栋, 从事产品研发和架构设计工作,对Oracle.PostgreSQL有深入研究,ITPUB数据库版块资深版主.现就职于广州云图数据技术有限公司,系统架构师,博客:http://blog ...

  4. C语言操作符详解 隐式类型转换 (整型提升 算数转换)

    目录 一.算术操作符 二.左移操作符 右移操作符 1.二进制序列 2.左移操作符 3.右移操作符 3.1.逻辑运算/算术运算 3.2.对于移位运算符,不要移动负数位,这是标准未定义的 3.3.对于移位 ...

  5. 关于显式类型转换以及隐式类型转换

    哈喽嗷,铁汁们,咱们又见面了.是我嗷,一个不正经楼主. 首先提出一点,关于这个小细节专栏,看了绝对没好处(滑稽) 咳咳,咱们言归正传. 目录 隐式类型转换 ①算术运算中的隐式转换 规则一:字符和整数的 ...

  6. 显式类型转换和隐式类型转换区别?

    一般情况下,数据的类型的转换通常是由编译系统自动进行的,不需要人工干预,所以被称为隐式类型转换.但如果程序要求一定要将某一类型的数据转换为另外一种类型,则可以利用强制类型转换运算符进行转换,这种强制转 ...

  7. 没有学不会的C++:用户自定义的隐式类型转换

    C++ 中的类型转换包含内建类型的转换和用户自定义类型的转换,而这两者都又可分为隐式转换和显示转换,所以一共有如下四象限表格中的 A.B.C.D 四种情况 隐式转换 显示转换 (casting) 内建 ...

  8. c++ 隐式类型转换

    隐式类型转换由编译器自动执行,不需程序员介入. 何时发生隐式类型转换 1. 在混合类型的表达式中,操作数会被转换为相同类型 int ival; double dval; ival >= dval ...

  9. 数据类型,隐式类型转换

     关于数据类型: 1.常量也是有类型的 常量数据大体分两类,一类是带点(实型,浮点型),一类是不带点叫整型. 编译器对带点,通常默认为double,不带点通常编译为int 2.对于数据   .2  ...

最新文章

  1. SpringBoot 启动错误搜集
  2. 明明表中有这个索引,但mysql的force index 无效?
  3. Sqoop(一)安装及基本使用
  4. 大数据WE阶段(十七)文件上传
  5. java 8 io_Java IO8:IO简单总结
  6. php dos,防止用户利用PHP代码DOS造成用光网络带宽
  7. mac下nvm_【干货分享】Mac最全用法指导,学不会学费全退!!!(反正我也没收你们学费)...
  8. matplotlib绘制子图,自定义子图大小并分别绘图
  9. 荣耀V40渲染图曝光 将搭载双曲面瀑布屏
  10. eclipse 中 project facet 的作用
  11. 算法:回溯十二 Word Search字符串匹配二维矩阵
  12. WWDC2019最值得看的十个视频
  13. 设置计算机开机密码的步骤,电脑设置开机密码的方法
  14. vue函数@click.prevent使用纪要
  15. 关于服务器托管,你了解多少?
  16. JavaScript|日期格式化、今天、昨天、明天和某天
  17. Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_窗体控制模块(win32con、win32gui)...
  18. 算法导论第三章思考题
  19. 利用node爬取王者荣耀英雄信息,并存入数据库
  20. C语言-实现栈(stack)

热门文章

  1. Nginx 负载均衡配置和策略
  2. JavaWeb学习总结(四十九)——简单模拟Sping MVC
  3. 浅析IT软件项目团队人力资源管理
  4. 一周安全事件点评:***黑手正伸向商业数据
  5. 【Leetcode】刷题题单记录
  6. kafka数据文件.log
  7. 【收藏】docker安装redis
  8. etcd安装及go简单操作
  9. golang基本数据类型默认值
  10. nl.basjes.parse.useragent.UserAgentAnalyzer内存泄漏问题解决