问题一:Java类文件是否只能有一个公有类?

1测试代码:

//信1603 李敦岳 20163520

//测试Java是否只能有一个公有类

//2017.10.2

public class Test {

//第一个公有类

public static void main(String[] args) {

//输出语句

System.out.println("Hello Word");

}

//第二个公有类

public  class innerclass

{

//System.out.println("Hello Word");

}

}

2测试结果:

3结论:Java类文件中并非只能有一个公有类,可以有多个内部类,它可以是共有的。

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

1测试代码:

//信1603 李敦岳 20163520

//测试把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?

//2017.10.2

package helloword;

public class helloword {

public static int main(String[] args) {

// TODO Auto-generated method stub

System.out.println("Hello Word");

return 0;

}

}

2测试截图:

3结论:在main方法中将void改为int程序可运行,能编译通过,需要在main方法里加入return 0

问题三:为什么java规定作为程序入口点的main() 方法静态的?
1静态方法可以直接用类名+方法名,不需要实例化对象,非静态方法需要实例化对象,通过对象调用该方法

2程序被打包为jar文件,给外界唯一的接口就是main方法。使用者双击jar文件,其实就是让虚拟机执行main方法

3main方法是提供给客户的,客户不知道怎么实例化对象,更不知道实例化对象需要输入什么参数,只能用静态方法

问题四:变量作用域

1测试代码:

//信1603 李敦岳 20163520

//测试变量作用域

//2017.9.26

public class Test1 {

private static int value=1;

public static void main(String[] args) {

int value=2;

System.out.println(value);

}

}

2测试截图:

(1):

(2):

3.结论:

类的变量的作用域是整个类,函数的变量作用域是整个函数,如果类中定义一个变量x,这个类的函数定义一个x,默认使用函数中的x。若函数中的最外层定义一个x,函数有循环,循环中定义一个x,就会有冲突。

问题五:查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

对于字符型和整数型如:char,int,long,byte,short,取值范围小的转化为取值范围大的,无精度的损失,但整数型向浮点型如:float,double转化是会出现精度损失,浮点型取值范围小的转化为取值范围大的,无精度的损失。

问题六:请运行以下代码,你看到了什么样的输出,意外吗?

1.代码:

public class TestDouble {

public static void main(String args[]) {

System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));

System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));

System.out.println("4.015 * 100 = " + (4.015 * 100));

System.out.println("123.3 / 100 = " + (123.3 / 100));

}

}

2.截图:

3.结论:结果有错误,并不精确。计算机只能识别二进制码,无论用什么编译器都是将程序转化为二进制的机器码。计算机进行加减乘除运算过程,带小数点的数字的二进制转化不一定准确

,浮点型可用于科学计算,但精确计算有误差。

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

1.涉及代码:

package 列子;

import java.math.BigDecimal;

public class TestBigDecimal

{

public static void main(String[] args)

{

BigDecimal f1 = new BigDecimal("0.05");

BigDecimal f2 = BigDecimal.valueOf(0.01);

BigDecimal f3 = new BigDecimal(0.05);

System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");

System.out.println("0.05 + 0.01 = " + f1.add(f2));

System.out.println("0.05 - 0.01 = " + f1.subtract(f2));

System.out.println("0.05 * 0.01 = " + f1.multiply(f2));

System.out.println("0.05 / 0.01 = " + f1.divide(f2));

System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");

System.out.println("0.05 + 0.01 = " + f3.add(f2));

System.out.println("0.05 - 0.01 = " + f3.subtract(f2));

System.out.println("0.05 * 0.01 = " + f3.multiply(f2));

System.out.println("0.05 / 0.01 = " + f3.divide(f2));

}

}

2截图:

3结论:在使用BigDecimal(double)构造器时,使用不恰当会出现精确的误差,二进制浮点数的局限性产生类型上述的问题

问题八:以下代码的输出结果是什么?为什么会有这样的输出结

1涉及代码:

public class Test {

public static void main(String[] args) {

int X=100;

int Y=200;

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

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

}

}

2截图结果:

3结论:输出结果为X+Y=100200,300=X+Y。当"X+Y="在前时,默认的把int型X,Y转化为String型,"X+Y="使编译器认为X,Y是String型的了,System.out.println()本身的参数默认为String型,遇到这种情况默认了转化,产生了如此结果,而第二个就是简单的输出,没有让计算器产生“误解”。

Java-01-问题解答的更多相关文章

  1. 原来你是这样的JAVA[01]-基础一瞥

    1.Java是什么呢? Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性.跨操作系统的可移植性以及自动垃圾收集等服务的执行环境. 2.JDK 和 ...

  2. java基础问题解答

    Java学习中的问题   一 枚举类型: 下面是一段源程序代码: package Demo; public class Enum { public static void main(String[] ...

  3. 从零开始学JAVA(01)-JAVA开发环境安装

    写在前面: 本人没有JAVA基础(包括语法.开发环境),未使用开发工具开发过程序,如果有不对或误导的地方,欢迎指正. 本系列所有文章使用Eclipse,JDK是Version 7 Update 51, ...

  4. .Net转Java.01.从Main(main)函数说起

    在C#中,main函数的签名可以有四种 static void Main(string[] args)static void Main()static int Main(string[] args)s ...

  5. java课后问题解答

    1.当有多个嵌套的try…catch…finally时,要特别注意finally的执行时机 答:当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位 置抛出,可能会导致不同的finall ...

  6. Effective Java 01 Consider static factory methods instead of constructors

    Advantage Unlike constructors, they have names. (BigInteger.probablePrime vs BigInteger(int, int, Ra ...

  7. [Java] 01 String 内存分析

    public class StringTest{ public static void main(String[] args){ String str1 = new String("123& ...

  8. 【Java基础】【01初识Java】

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代 ...

  9. Java I/O流 01

    文件IO·异常 和 File类 异常的概述和分类 * A:异常的概述 * 异常就是Java程序在运行过程中出现的错误 * B:异常的分类 * 用过API查看Throwable * Error * 服务 ...

  10. [翻译][Java]ExecutorService的正确关闭方法

    https://blog.csdn.net/zaozi/article/details/38854561 https://blog.csdn.net/z69183787/article/details ...

随机推荐

  1. [原]unity3D bug记录

    1.u3d 发出的xcode工程 崩溃出现这种信息 Display::DisplayLinkItem::dispatch() 到AppController.mm 修改成这样 - (void) Repa ...

  2. 【高级算法】遗传算法解决3SAT问题(C++实现)

    转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46910079 1 SAT问题描写叙述 命题逻辑中合取范式 (CNF) 的可满足性问 ...

  3. Log4net用法(App.config配置)

    配置文件 <configSections> <section name="log4net" type="log4net.Config.Log4NetCo ...

  4. ckeditor4.4.6添加代码高亮

    研究了很久才发现,在 ckeditor4.4.6中添加代码高亮超级简单啊,下面直接上过程 ckeditor4.4.6支持自定义代码高亮,利用Code Snippet插件并默认启用highlight.j ...

  5. win10禁止更新的方法

    Windows10强制更新苦恼了很多人,下面提供三种禁止Windows10更新的方法. 禁止Windows update服务 启动任务管理器->选择服务->打开服务. 找到Windows ...

  6. psutil的使用

    psutil是Python中广泛使用的开源项目,其提供了非常多的便利函数来获取操作系统的信息. 此外,还提供了许多命令行工具提供的功能,如ps,top,kill.free,iostat,iotop,p ...

  7. React Native(十一)——按钮重复点击事件的处理

    最初开始做后台管理系统的时候,就曾遇到过这样一种场景:"快速点击确认按钮,就会对此触发确认事件,导致多次请求数据库":于是最终我们得当的通过处理那个确认button,解决了上述问题 ...

  8. 【LeetCode OJ】Swap Nodes in Pairs

    题目:Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2 ...

  9. c++学习笔记—二叉树基本操作的实现

    用c++语言实现的二叉树基本操作,包括二叉树的创建.二叉树的遍历(包括前序.中序.后序递归和非递归算法).求二叉树高度,计数叶子节点数.计数度为1的节点数等基本操作. IDE:vs2013 具体实现代 ...

  10. Android设计和开发系列第二篇:Action Bar(Develop—API Guides)

    Action Bar IN THIS DOCUMENT Adding the Action Bar Removing the action bar Using a logo instead of an ...