首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

揭秘Java方法的返回值,从void到诸多数据类型,有两下子!

在定义方法时,我们需要定义方法名、参数列表、返回值类型及方法体。其中,返回值类型表示方法返回值的类型,可以是Java基本数据类型,也可以是引用类型,甚至可以是void。...本篇文章将从Java方法返回值的基础类型讲起,逐渐深入探讨Java方法返回值的详细内容。正文1. void类型  void类型是Java中的一种基础数据类型,表示“无返回值”。...在main方法中调用这两个方法,分别将返回值赋值给result和area变量,并输出它们的值。  ...返回值的多态  Java中的继承与多态概念可以拓展到方法的返回值类型。具体来说,如果一个方法的返回值类型是父类或接口类型,那么该方法可以返回其子类或实现类的对象。...在getAnimal方法中根据参数type的值返回对应的Animal子类对象,在main方法中调用getAnimal方法,分别将返回值赋值给a1和a2变量,并输出它们的name属性的值。

48341

公司同事用float和double,结果导致..

float和double float 单精度浮点数在机内占 4 个字节,用 32 位二进制描述 double 双精度浮点数在机内占 8 个字节,用 64 位二进制描述 注意float型定义的数据末尾必须有...在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的 结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。...Java程序:使用 BigDecimal 来定义值,再进行浮点数的运算操作 BigDecimal 是 Java 在 java.math 包中提供的API类,用来对超过16位有效位的数进行精确的运算 使用...BigDecimal 要注意的东西 1.BigDecimal(double) 创建一个具有参数所指定双精度值的对象 但是这种类型是都不推荐使用的,为什么不推荐使用,我们来试一下 BigDecimal...这也是为什么在 Effective Java 和 Mysql 必会内容 书中都会提到这块内容,如果你是一个几年工作经验的人,就不会有这种错误,但是你初入职场,经验没那么多,基础没那么牢固的肯定会发生这种事

81840
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    充电篇:Java数据类型经典十五问

    ),int 的包装类就是Integer,从Java 5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换。...不正确。3.4是双精度。...将双精度型(double) 赋值给浮点型(float)属于下转型( down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float...int indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索 int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引...Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5 然后进行下取整。 14、下面代码运行结果是多少?

    16640

    java基本数据类型

    占用4个字节3.402823e+38 ~ 1.401298e-45 double 双精度占用8个字节1.797693e+308~ 4.9000000e-324 通常的浮点型的数据在不声明的情况下都是...对于浮点型要记住一点,浮点型的数据是不能完全精确的。 布尔型 这个类型只有两个值,true和false(真和非真) 字符型 用于存放字符的数据类型,占用2个字节,采用unicode编码。...型要大,所以结果会自动转换成int型,这样可以防止精度丢失),将int型赋值给short型,编译会出错。...第二种写法是正确的,+=是java语法规定的运算符,编译器会对它进行特殊的转换操作(应该是强制转换),所以编译不会出错。 问: float f = 6.6; 这种写法是否正确?...不正确,6.6默认是双精度数,将双精度型赋值给单精度会造成精度损失,编译器会报错,需要强制类型转换 float f = (float)3.4; 或者写成 float f = 3.4F; 问:对于1和2

    34040

    这绝逼是一个初级程序员才会干的事儿!

    2 java对金额处理 众所周知,程序在处理货币金额类数据时,最关键的是保持精度,丢失精度就丢失了准确性,这是不可接受的,银行存蓄,股票,基金都是如此。...API 构造器: 构造器 描述 BigDecimal(int) 创建一个具有参数所指定整数值的对象 BigDecimal(double) 创建一个具有参数所指定双精度值的对象 BigDecimal(long...对象中的值相加,然后返回这个对象 subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象 multiply(BigDecimal) BigDecimal对象中的值相乘...() 将BigDecimal对象中的值以双精度数返回 floatValue() 将BigDecimal对象中的值以单精度数返回 longValue() 将BigDecimal对象中的值以长整数返回 intValue...Joda-Money 是一个用于表示货币金额的开源Java类库,使用该类库处理金额相关数据,可以让你免去对数据精度的担忧。

    66010

    Java每日一练(2017718)

    A 如果程序发生错误及捕捉到异常情况了,才会执行finally部分 B 其他选项都不正确 C 当try区段的程序发生异常时,才会执行catch区段的程序 D catch部分捕捉到异常情况时,才会执行finally...---- (单选题)3、下面关于构造方法的说法不正确的是 () A 构造方法也属于类的方法,用于创建对象的时候给成员变量赋值 B 构造方法不可以重载 C 构造方法没有返回值 D 构造方法一定要和类名相同...使用构造方法时需注意以下几点: 1.构造方法名称和其所属的类名必须保持一致; 2.构造方法没有返回值,也不可以使用void; 3.构造方法也可以像普通方法一样被重载(但不能被重写); 4.构造方法不能被...3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。 4.char型和short型参与运算时,必须先转换成int型。...---- (单选题)6、如果类的方法没有返回值,该方法的返回类型应是:( ) A void B null C abstract D default 正确答案是:A 解析:没有返回值就是void ---

    652100

    【一分钟知识】面对对象、基本类型

    一分钟回顾系列文章会从基础开始到后期的高级,带你慢慢回顾java的小知识,时间花费不会很多,会尽量控制在一分钟左右。敬请期待。...1、面向对象的特征 抽象 将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面 只关注对象有哪些属性和行为,并不关注这些行为的细节是什么 继承 从已有类得到继承信息创建新类的过程。...多态性分类 编译时的多态性 方法重载(overload) 运行时的多态性 方法重写(override) 2、String 是最基本的数据类型吗 不是 Java中的基本数据类型只有8个:byte、short...type) 3、float f=3.4;是否正确 不正确 3.4是双精度数,双精度型(double) double赋值给float属于向下转型,会造成精度损失。...正确写法 float f =(float)3.4; 或float f =3.4F; 4、int和Integer区别 int的包装类就是Integer 自动装箱/拆箱机制 自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化

    57750

    Java面试题-01前言:面试题:总结:

    答:不正确。...3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4;或者写成...包装类装箱的本质是当我们给一个Integer对象赋一个int值的时候,会调用Integer类的静态方法valueOf(),大家可以查阅一下源码,这个方法做了一个判断,当整型字面量的值在-128到127之间...答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。 10、Java有没有goto?...从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

    75550

    Java 基础教学:流程控制-Scanner 用法

    Java中的Scanner类是一个非常强大的工具,用于解析原始类型和字符串的文本扫描器。它可以解析基于特定的分隔模式(默认情况下是空格)的原始输入,并将字符转换为不同类型的值。...以下是一些常用的方法: nextLine(): 读取输入直到换行("\n")。 nextInt(): 读取下一个整数。 nextDouble(): 读取下一个双精度浮点数。...; // 提示用户输入并读取一个双精度数 System.out.print("请输入您的工资:"); double salary = scanner.nextDouble...、整数和双精度数。...异常处理:在实际应用中,需要考虑到输入可能会出错的情况,并通过异常处理或其他逻辑来处理不正确的输入。 Scanner类是一个非常实用的工具,可以帮助你创建交互式的Java应用程序。

    17510

    BigDecimal一定不会丢失精度吗

    所以接下来我们就可以使用Java中的BigDecimal类来解决这类问题。 普及一下: Java中float的精度为6-7位有效数字。double的精度为15-16位。...API 构造器: 构造器 描述 BigDecimal(int) 创建一个具有参数所指定整数值的对象 BigDecimal(double) 创建一个具有参数所指定双精度值的对象 BigDecimal(long...对象中的值相加,然后返回这个对象 subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象 multiply(BigDecimal) BigDecimal对象中的值相乘...() 将BigDecimal对象中的值以双精度数返回 floatValue() 将BigDecimal对象中的值以单精度数返回 l ongValue() 将BigDecimal对象中的值以长整数返回 intValue...同时这个原则Effective Java和MySQL 必知必会中也都有提及。float和double只能用来做科学计算和工程计算。商业运算中我们要使用BigDecimal。

    9110

    Java面试之操作符

    (&)要将两个表达式计算结束之后,才会返回结果,也就是无论第一个表达式是什么结果,第二个表达式都会运行 a = a + b 与 a += b 的区别?...=:赋值运算符,在编译器将右边的表达式结果计算出来后,和左边的变量类型比较精度,如果左边的变量精度低于右边的结果的精度,编译器会显式的报错,告诉程序员去强制转型。...与前者相比,由于后者是位操作,效率也较前者高 3*0.1 == 0.3 将会返回什么?true 还是 false?...false,类型不一致 float f=3.4; 是否正确 不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失...对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。

    37850

    Java 后台开发面试题分享一

    不正确。 在 java 中,这里的 3.4 默认是双精度数。...如果将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换 float f = (float) 3.4 或者写成 float...int 的默认值为 0,而 Integer 的默认值为 null,即 Integer 可以区分出未赋值和值为 0 的区别,int 则无法表达出未赋值的情况。...在字符串的 "+" 连接中,如果有引用存在,而引用的值在程序编译期是无法确定的,所以 a + "cd" 无法被编译器优化,只有在程序运行期来动态分配并将连接后的新地址赋给 b。...从面向对象设计的角度看:抽象类属于 “is-a” 关系;接口属于 “like-a” 关系。

    68810

    【JAVA-Day05】深入理解Java数据类型和取值范围

    ☕ 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!⌨ !...深入理解Java数据类型和取值范围 摘要 本文深入介绍了Java编程语言中的基本数据类型,探讨了数据类型的概念、存储单位以及Java的八种基本数据类型,包括整数、浮点数、字符和布尔值。...,用f标识,适用于小数,约6-7位有效数字 // 双精度浮点数类型 double myDouble = 2.71828; // 双精度浮点数,默认类型,适用于小数,约15...("单精度浮点数类型在内存中占用字节数 = " + Float.BYTES); // 占用字节数 System.out.println(); } // 打印双精度浮点数类型的取值范围...("双精度浮点数类型在内存中占用字节数 = " + Double.BYTES); // 占用字节数 System.out.println(); } // 打印字符类型的取值范围

    12610
    领券