Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1036668
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1701
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-24 10:06
文章分类
文章存档

2014年(19)

2013年(27)

分类: Java

2014-03-18 13:59:57

这两天看javaSE语言基础,看到一些以前没太注意的问题,在此记录一下。

问题1:
   
package com.ccit.yichu;
public class LightSpeed {
    /**
     * 本实例主要测试整型变量的溢出
     * 本程序计算光1000天所走的公里数
     * 在本程序中将 second和distance的类型改成int程序不会报错,但结果是-127631360,原因是:
     * 对于类的成员变量,整型变量的默认初始值为0,但是在方法中声明的局部变量没有默认值,
     * 所以程序在编译的时候他们并没有被初始化,所以这是不存在溢出的问题,
     * 但是当程序运行时变量second和distance是int类型,无法表示25920000000000,发生了溢出,所以结果是错的
     * @param args
     */
                  
    public static void main(String[] args) {
        int speed=300000;
        int days=1000;
        long second;
        long distance;
        second=days*24*60*60*365;
        distance=speed*second;
                      
        System.out.println("光1000天走"+distance+"公里");
    }
}


问题2:
   
package com.ccit.bijiao;
public class Denghao {
    /**
     * 本程序主要验证"=="和"equals()"函数在进行字符串比较时是否等价
     * 结果是不等价的
     * 注:String不是基本类型,而是引用类型,所以两个字符串相等(也就是"==")意味着两个引用指向同一空间
     * 所以e和f尽管有长度相等,类型相同,值也相等,但是运算结果依然为false
     * e.equals(f)意味着e和f长度相等,类型相同,值也相等,但不一定指向同一空间
     * @param args
     */
    public static void main(String[] args) {
        String a="aaa";
        String b="aaa";
        String c,d;
        c="aaa";
        d="aaa";
        String e=new String("aaa");
        String f=new String("aaa");
                
        System.out.println("a==b----------"+(a==b));
        System.out.println("a.equals(b)----------"+a.equals(b));
        System.out.println("c==d----------"+(c==d));
        System.out.println("c.equals(d)----------"+c.equals(d));
        System.out.println("e==f----------"+(e==f));
        System.out.println("e.equals(f)----------"+e.equals(f));
    }
}


问题3:
   
public class Test {
    /**本程序测试怎么将结果输出到文本文件中,要用到IO的知识
     * 课本中的意思是在dos命令中运行javac编译java文件
     * 然后运行java来运行Test.class文件,
     * 格式为:java Test>>F:\result.txt
     * 就可以将本程序的运行结果输出到F:\result.txt中
     * 注意:本文件在默认包中的时候才能运行成功,
     * 对于Yest文件只能编译成功但是不能运行,
     * 会报找不到类的异常。
     * 但是为什么会这样,现在还不明白?!!
     *
     * @param args
     */
    public static void main(String[] args) {
        String a="hello world!";
           
        System.out.printf(a);
    }
}
阅读(3385) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~