zoukankan      html  css  js  c++  java
  • 【Java】_2_Java程序入门第三课

      为什么会想学习Java呢,一句话: 书到用时方恨少。 要不是现场现在需要用到Java,我估计就不会学习这个了,现在才深刻的体会到

    :技不压身这句话的含义。学习的时候不要想到立竿见影的求效果,也许某一天她就用到了,而这个时候,也许你就比别人的路更宽广了。

    所以不要纠结这个东西有没有用了,学吧,骚年(本来是少年的,结果出现了这个词)..........,

      上两次说了一点Java的入门的东西,到这个程度,我们是否想要干点别的事情呢?因此我们需要来认识一下Java中结构化程序设计的部分:

    流程控制;以及数据的操作结构:运算符。

    【Java 赋值运算符】

      为什么要说这个运算符呢? 因为太简单了,简单到必须说。赋值是什么意思呢? 我们通过实例来说明:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
        System.out.print("The value of IntTest is:"+IntTest);
        }
    }

      上面的程序执行结果是:

      抛出异常了,我们可以看到,编译的过程报错,为什么呢? 这个各位童鞋们可以自己想一下,就不多说了。

      下面我们对代码进行一下修改:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.print("The value of IntTest is:"+IntTest);
        }
    }

      执行结果是:

      我们看到这个时候程序已经成功执行。为什么要在这里说这个问题呢? 因为我们在C语言中,有些时候不给变量赋值也能编译通过(没有启用ALL Alarm模式),而且运行过程中

    有时候也正常,而在Java中,如果变量没有进行初始化赋值,那么就不能编译通过。同时我们也看到,我没有在定义变量的时候给变量赋初值,而是再起语句初始化变量,这个地方是与

    C语言的叫法不一致的,需要注意。

      赋值运行符,还有一些复合的用法,在下面我们会介绍。

    【Java 四则运算】

      知道数数后,我们接受的教育应当就是四则运算了,加、减、乘、除;一切简单而自然,但是在计算机的世界里面,简单却不自然了。我们通过实例来认识一下四则运算:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.println("The value of IntTest is:"+IntTest);
    
        //add
        int Sum;
            Sum=IntTest + 20121221;
            System.out.println("Sum=IntTest+20121221="+Sum);
    
        //sub
        int Dif;
            Dif=Sum - 300;
            System.out.println("Dif="+Dif);
    
        //Multiplication
        long Mul;
            Mul=Sum * Dif;
            System.out.println("Sum*Dif="+Mul); //overflow, but can execute,so you need pay atention to this
    
        double DoubleMul;
             DoubleMul=1.0*Sum* Dif; //here why we need to muliply with 1.0 ??
             System.out.println("1.0*Sum*Dif="+DoubleMul);
    
            //Division
        int Div;
            Div=Dif/789;
                System.out.println("Dif/789="+Div); //Normally 20121021/20121321 = 0.999985;how can the result be ? 
            
            double DoubleDiv;
            DoubleDiv=1.0*Dif/789;
                System.out.println("1.0*Dif/789="+DoubleDiv); //IS the same wiht the statement Div=Dif/Sum; ??
    
            //Mod
        int Mod;
                Mod=Sum % 2; //Is this equal to Sum / 2 ??
                System.out.println("Sum % 2 ="+Mod);
                System.out.println("Sum / 2 ="+Sum/2);
    
           //Multiply plus and sub
        int PostPlus;
        int PrePlus;
            int PostSub;
        int PreSub;
                System.out.println("Mod="+Mod+";"+" Dif="+Dif);
            PostPlus=Mod++;
                System.out.println("Mod++ is:"+PostPlus);
                PostPlus=++PostPlus;
                System.out.println("++Mod++ is:"+PostPlus);
                PostSub=Dif--;
                System.out.println("Dif-- is:"+PostSub);
                PreSub=--PostSub;
                System.out.println("--Dif-- is:"+PreSub);
        
        }
    }

      上面程序运行的结果是:

      四则运算需要说明的是:  在进行计算的时候,会进行类型转换。对于  /  运算符,如果操作数都是整型,则结果是整型;如果操作数有浮点类型,则结果

    是浮点类型。对于 ++ 和 —— 运算符,则和C语言一样。

    【Java关系运算符】

      Java提供了功能丰富的关系运算符:  == 、 != 、 <、<=、>、>=

      这些运算符的效果和C语言中是一样的;这里就不进行具体的介绍了,但是有一点需要说明,在判断两个浮点数相等的时候,不能简单的用==符号进行比较。

    我们就做一个简答的测试。

        //Equal to 
        float fNum1=1.0F;
            float fNum2=0.99999999F;
        if(fNum1!=fNum2)
           System.out.println("1.0 != 0.9999999");

      这段程序的输出是什么呢?输出结果如下所示:

      这里可以看到,什么也没有输出,那么就表示Java在判断if条件的时候,将 fNum1 判断为与fNum2相等了。

    【Java 逻辑运算符】

      在Java中也提供了逻辑运算符: 与、或、非;并且沿用了C语言的符号,与用 && 表示; 或用 || 表示;非用 ! 表示。

    具体的与或非逻辑我们就举例了。

      值得一提的是: 与或非逻辑运算过程中,有一个“短路”的求值过程,当可以判断出结果的时候就不会计算后面的数值了。这个有时候会影响参数的传递过程。

    具体的实例我们等到讨论方法的时候再举例。

      Java中还提供了一个三元运算符;那就是 “:?”。 这个运算符的计算规则与C语言一样,我们就不再举例了。

    【Java 位运算符】

      Java提供了与C语言类似的位运算符,这些位运算符应用非常广泛,通常用于“屏蔽技术”(怎么感觉像PLC中的屏蔽,不过两者还是有区别的)。位运算符有:

    按位与、按位或、按位异或、按位非。

      具体的实例我们就不举例了,有一个简单的应用就是求byte类型的溢出值:   300&0XFF; 具体实例见:http://www.cnblogs.com/volcanol/archive/2012/12/18/2824169.html

      这里还有一个有趣的事情就是: & 和 | 可以对boolean的进行求值,其计算规则和用法和逻辑运算符一样, & 对应 &&,而| 对应||; 我们可以看一个实例:

           //Bit oprator
           boolean bTest1=true;
           boolean bTest2=false;
           if(bTest1 & bTest2)
           System.out.println("True & True is ture");
           if(bTest1 | bTest2)
           System.out.println("True | True is ture");

      执行结果如下所示:

    【Java 移位运算符】

      在Java中也C语言一样,也提供了移位运算符,同样移位运算符适合于整型数的计算。Java提供了: 右移>>、左移<<两种运算符。其具体的用法和C语言的移位

    运算符一致。

      我们知道在C语言中右移运算符>>,最高位的补齐规则由编译器决定,标准并没有规定,为了消除这个歧义,Java特别设计一个右移运算符 ">>>" ; 并且规定

    >> 运算符是符号位填充,即>> 不会改变数值的正负; 而>>> 则规定用0补齐最高位。

    【Java中的常量】

      我们知道在C语言中提供了define机制来定义符号常量,或者说符号字面值;而在C++中则另外提供了const这一机制补充“符号字面值”的使用,那么在Java中有没有

    提供一种类似的机制呢?

      很显然,提供这样一种机制,将有利于编程人员的程序编写和阅读;在Java中也提供了这样的机制。那如何实现呢?

      在Java中我们可以通过 final 关键字来定义符号常量。其定义语法为:

      final   datatype  VaribleName=常量字面值;

      下面我们通过一个实例来说明这个问题:

      我们在看下一个例子:

      

      类中可以定义类常量,就像上面的定义,但是这样定义是默认为私有的呢?还是public的呢? 这里留下一个疑问,等到以后我们学到修饰符的时候再来解答。

    下面是这次测试代码:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
            /*********
    
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.println("The value of IntTest is:"+IntTest);
    
        //add
        int Sum;
            Sum=IntTest + 20121221;
            System.out.println("Sum=IntTest+20121221="+Sum);
    
        //sub
        int Dif;
            Dif=Sum - 300;
            System.out.println("Dif="+Dif);
    
        //Multiplication
        long Mul;
            Mul=Sum * Dif;
            System.out.println("Sum*Dif="+Mul); //overflow, but can execute,so you need pay atention to this
    
        double DoubleMul;
             DoubleMul=1.0*Sum* Dif; //here why we need to muliply with 1.0 ??
             System.out.println("1.0*Sum*Dif="+DoubleMul);
    
            //Division
        int Div;
            Div=Dif/789;
                System.out.println("Dif/789="+Div); //Normally 20121021/20121321 = 0.999985;how can the result be ? 
            
            double DoubleDiv;
            DoubleDiv=1.0*Dif/789;
                System.out.println("1.0*Dif/789="+DoubleDiv); //IS the same wiht the statement Div=Dif/Sum; ??
    
            //Mod
        int Mod;
                Mod=Sum % 2; //Is this equal to Sum / 2 ??
                System.out.println("Sum % 2 ="+Mod);
                System.out.println("Sum / 2 ="+Sum/2);
    
           //Multiply plus and sub
        int PostPlus;
        int PrePlus;
            int PostSub;
        int PreSub;
                System.out.println("Mod="+Mod+";"+" Dif="+Dif);
            PostPlus=Mod++;
                System.out.println("Mod++ is:"+PostPlus);
                PostPlus=++PostPlus;
                System.out.println("++Mod++ is:"+PostPlus);
                PostSub=Dif--;
                System.out.println("Dif-- is:"+PostSub);
                PreSub=--PostSub;
                System.out.println("--Dif-- is:"+PreSub);
    
        *********/
    
            /********************
    
        //Equal to 
        float fNum1=1.0F;
            float fNum2=0.99999999F;
        if(fNum1!=fNum2)
           System.out.println("1.0 != 0.9999999");
    
        ***********************/
    
           /******************
    
           //Bit oprator
           boolean bTest1=true;
           boolean bTest2=false;
           if(bTest1 & bTest2)
           System.out.println("True & True is ture");
           if(bTest1 | bTest2)
           System.out.println("True | True is ture");
    
        ************/
    
            final  int  finalIntTest=100;
                   System.out.println("finalIntTest is:"+finalIntTest);
        
        }
    }

      发现Java是一种类C的语言,很多的机制和规则与C语言非常相似,但是需要细心的区别两者存在的区别。

  • 相关阅读:
    (网页)中的简单的遮罩层
    (后端)shiro:Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
    (网页)jQuery的时间datetime控件在AngularJs中使用实例
    Maven Myeclipse 搭建项目
    MyBatis 环境搭建 (一)
    java 常用方法
    XML 基础
    JS BOM
    js 事件
    js 的使用原则
  • 原文地址:https://www.cnblogs.com/volcanol/p/2836440.html
Copyright © 2011-2022 走看看