博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java课堂相关问题
阅读量:6277 次
发布时间:2019-06-22

本文共 1293 字,大约阅读时间需要 4 分钟。

1、问题:一个java类文件中真的只能有一个公有类吗?

答:一个Java类文件可以有多个类但只能有一个public类。

如以下程序有两个public类运行时会出错。

2、问题:把main()方法的返回值由void改为int,程序能编译通过吗?能运行吗?

如上截图所示将void改为int后程序将无法运行。

3问题:什么静态方法?为什么java规定作为程序入口点的main()方法静态的?

 

答:Java静态方法是使用公共内存空间的,就是说所有对象都可以引用,而且在没有创建对象时也可以利用类使用该方法。

 

函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么所在的类必须先进行实例化

4、变量的作用域

 

如截图所示java变量遵循“同名变量屏蔽原则”

5、java中类型的转换

int,short\,byte,long是整数类型,其值是精确的。而double,float是浮点型其值表示的是近似值。所以intfloatdouble会有精度损失,longdouble会有精度损失。在ASCII中都是整数所以charint无精度损失。

6、为什么double类型的数值进行运算得不到“数学上精确”的结果?

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是)。

比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

 7、在构建BigDecimal对象时应使用字符串而不是double数值,否则,仍有可能引发计算精度问题。(为什么会这样呢?)

double并不能准确的代表BigDecimal 16位有效数以上的数字在使用BigDecimal时创建对象。而BigDecimal所创建的对象不能使用+-*/等传统的算术运算符直接对其对象进行数学运算,必须调用相对应的(f1.add(f2))等方法。 因为方法中的参数必须是BigDecimal的对象,所以定义时应为字符串。

 8、

以下代码的输出结果是什么?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

为什么会有这样的输出结果?

从运行结果可以看出第一个输出是以字符串的形式处理的,而第二个输出则是以整数相加处理。当X+Y=”在前时,编译器默认的将XY转化为String类型,System.out.println()默认参数是String类型。

 

转载于:https://www.cnblogs.com/xxlya/p/7635473.html

你可能感兴趣的文章
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>