Java 控制流程、大数值、数组

 更新时间:2021年10月12日 10:11:28   作者:吞吞吐吐大魔王  
这篇文章主要给大家介绍的是Java 控制流程、大数值、数组的一些相关自来哦,感兴趣的小伙伴可以参考下面文章的具体内容,希望文章对你有所帮助

1. 控制流程

1.1 块作用域

【易错点】: 不能在嵌套的两个块中声明同名变量,如

public static void main(String[] args){
    int n;
    ...
    {
        int n; // Error--can't redefine n in inner block
    }
}

该代码由于在嵌套的两个块中出现了同名变量,无法通过编译

注意:

在 C++ 中,可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。

1.2 条件语句

【易错点】: 在循环中,检测两个浮点数是否相等需要格外注意,如

for(double x=0; x!=10; x+=0.1);

上述循环不会结束,因为 0.1 无法精确的用二进制表示,所以 x 将从 9.99999999999998 跳到 10.09999999999998。

【补充点】: switch 语句中的 case 分支语句如果末尾不加 break,其实是一种较危险的情况。所以使用 switch 语句编译代码时可以这样写 javac -Xlint:fallthrough 文件名.java。这样写的话如果某个分支某位缺少 break,编译器就会报警告。如果你就是需要有些分支后面不加 break,可以为其外围方法加一个标注 @SuppressWarnings("fallthrough"),这样就不会对方法生成警告。

【补充点】: Java 没有 goto 语句,但 break 可以带标签,可以利用它实现从内层循环跳出的目的。如

int n;
read_data:
while(){
    for(){
        ...
        break read_data;
        ...
    }
}

注意:

该方式只能跳出语句块,而不能跳入语句块

2. 大数值

【补充点】: 如果基本的整数和浮点数不能满足需求,可以使用 java.math 包中的两个类:BigInteger BigDecinmal。这两个类可以处理包含任意长度数字序列的数值。BigInteger 类实现了任意精度的整数运算,BigDecinmal 实现了任意精度的浮点型数运算

3. 数组

【易错点】: Java 中的数组长度不要求是常量,如 new int[n] 会创建一个长度为 n 的数组。但是确定 n 的值之后就不能改变。

3.1 命令行参数

【补充点】:每一个 Java 应用程序都有一个带 String[] args 参数的 main 方法。这个参数表明 main 方法将接受一个字符串数组,也就是命令行参数。如

public class Message{
    public static void main(String[] args){
        if(args.length==0||args[0].equals("-h")){
            System.out.print("Hello,");
        }else if(args[0].equlas("-g")){
            System.out.print("Goodbye,");
        }
        for(int i=1;i<args.length;i++){
            System.out.print(" "+args[i]);
        }
    }
}

如果我们在命令行使用下面这种形式运行这个程序:java Message -g cruel world ,将显示下列信息 Goodbye, cruel world!

这表明 args 数组内存的内容如下:args[0]="-g",args[1]="cruel",args[2]="world"

注意:

在 Java 应用程序的 main 方法中,程序名并没有储存在 args 数组中

到此这篇关于Java 控制流程、大数值、数组的文章就介绍到这了,更多相关Java 控制流程、大数值、数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • maven配置文件常用模板的实现

    maven配置文件常用模板的实现

    本文主要介绍了maven配置文件常用模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • grails不能运行fork模式解决方法

    grails不能运行fork模式解决方法

    这篇文章主要介绍了如何解决grails2.3.2中不能运行fork模式的异常,大家参考使用吧
    2013-11-11
  • Java多线程导致CPU占用100%解决及线程池正确关闭方式

    Java多线程导致CPU占用100%解决及线程池正确关闭方式

    1000万表数据导入内存数据库,按分页大小10000查询,多线程,15条线程跑,最后发现CPU占用100%卡死,那么如何解决,本文就来介绍一下,感兴趣的朋友可以了解一下
    2021-05-05
  • 巧妙mybatis避免Where 空条件的尴尬

    巧妙mybatis避免Where 空条件的尴尬

    这篇文章主要介绍了巧妙mybatis避免Where 空条件的尴尬,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • SpringBoot使用@Slf4j注解实现日志输出的示例代码

    SpringBoot使用@Slf4j注解实现日志输出的示例代码

    @Slf4j 是 Lombok 库中的一个注解,它极大地简化了日志记录的代码,通过使用这个注解,Lombok 会自动在你的类中注入一个静态的日志对象,本文给大家介绍了SpringBoot使用@Slf4j注解实现日志输出的方法,需要的朋友可以参考下
    2024-10-10
  • Java OpenCV图像处理之图形与文字绘制

    Java OpenCV图像处理之图形与文字绘制

    这篇文章主要为大家介绍了如何利益Java OpenCV实现在图像上绘制文字与形状,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-02-02
  • Java入门绊脚石之Override和Overload的区别详解

    Java入门绊脚石之Override和Overload的区别详解

    重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同
    2021-10-10
  • Java使用访问者模式解决公司层级结构图问题详解

    Java使用访问者模式解决公司层级结构图问题详解

    这篇文章主要介绍了Java使用访问者模式解决公司层级结构图问题,结合实例形式分析了访问者模式的概念、原理及Java使用访问者模式解决公司曾经结构图问题的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • java 抽象类与接口的区别总结

    java 抽象类与接口的区别总结

    这篇文章主要介绍了java 抽象类与接口的区别总结的相关资料,需要的朋友可以参考下
    2017-02-02
  • guava中Multimap、HashMultimap用法小结

    guava中Multimap、HashMultimap用法小结

    这篇文章主要介绍了guava中Multimap、HashMultimap使用,Multimap它可以很简单的实现一些功能,LinkedHashMultimap实现类与HashMultimap类的实现方法一样,唯一的区别是LinkedHashMultimap保存了记录的插入顺序,本文就这些内容讲解的非常详细,需要的朋友参考下吧
    2022-05-05

最新评论