精华内容
下载资源
问答
  • 这里写目录标题java的基本数据类型运算符数据类型byte数据类型short数据类型int数据类型long数据类型浮点数据类型字符数据类型布尔数据类型注意事项运算符算术运算符基本四则运算符 + - * / %增量赋值运算符 += -=...

    java的基本数据类型与运算符

    数据类型

    在这里插入图片描述

    byte数据类型

    占用1个字节 对应的包装类 Byte 可以表示的数字大小 (-128~127)

     public static void main(String[] args) {
            System.out.println(Byte.MAX_VALUE);
            System.out.println(Byte.MIN_VALUE);
        }
    //  输出  -128    127
    

    short数据类型

    占用2个字节 对应的包装类 Short 可以表示过的数字大小 (-32768~32767)

    		System.out.println(Short.MAX_VALUE);
            System.out.println(Short.MIN_VALUE);
    

    int数据类型

    占用四个字节 对应包装类Integer 可以表示的数字大小 (-231~231-1)

    		System.out.println(Integer.MAX_VALUE);
            System.out.println(Integer.MIN_VALUE);
    

    long数据类型

    占用八个字节 对应包装类 Long 可以表示数字大小 (-263~263-1)

    		System.out.println(Long.MAX_VALUE);
            System.out.println(Long.MIN_VALUE);
    

    浮点数据类型

    float数据类型 占用四个字节 对应的包装类Float

    double数据类型 占用八个字节 对应包装类Double

    字符数据类型

    char数据类型 占用两个字节 对应包装类 Character

    布尔数据类型

    boolean数据类型 没有大小 对应的包装类 Boolean

    注意事项

    java是强类型语言 c是若语言类型

    1. 定义float f=12.5;时必须这样写 float f=12.5f;

    2. char占用两个字节 因此可以存放汉字 char a=‘王’;

    3. char始终以字符的形式表现 char ch3=98;他会对应Ascall码 b ;

    4. 定义byte b3时不能 变量加变量

              byte b1=10;
              byte b2=20;
              //byte b3=b1+b2;报错 变量不能变量加变量
              //计算机再取数据的时候,都取4个字节 提升速度会提升为这整形进行计算
              //System.out.println(b3); 
              byte b4=10+20;
              System.out.println(b4);
      
    5. 定义的数是长整形和整形的和时会进行整形提升

    6. boolen的值只有 true 和false

    7. 字符串可以直接进行拼接

      
          public static void main20(String[] args) {
              String str1="abf";
              String str2="dfdsa";
              String str3=str1+str2;
              System.out.println(str3);
          }
      
    8. 定义变量的时候 局部变量必须初始化赋值 常量只能初始化一次;

    9. final int a=10; //类似于c语言中的const 修饰常量

    10. 数字和字符串可以相互转化

      public static void main(String[] args) {
          int a=10;
          String str1=a+"";
          System.out.println(str1);  // 输出结果字符串10
          String ret;
          ret=String.valueOf(a);    //输出结果字符串10
          System.out.println(ret);
          String str2="10";  //此处必须是数字不可以是10a等
          int h=Integer.parseInt(str2);
          System.out.println(h);    //输出结果是数字10
          float m=Integer.valueOf(str2);
          System.out.println(m);    //浮点数  10.0
      }
      
    11. 命名规则

      1. 一个变量名只能包含数字, 字母, 下划线

      2. 数字不能开头.

      3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量

      4. 变量命名要具有描述性, 见名知意.

      5. 变量名不宜使用拼音(但是不绝对).

      6. 变量名的词性推荐使用名词.

      7. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写.

      8. 不能使用关键字,下面是部分常用关键字

      9. abstract表明类或者成员方法具有抽象属性
        assert断言,用来进行程序调试
        boolean基本数据类型之一,声明布尔类型的关键字
        break提前跳出一个块
        byte基本数据类型之一,字节类型
        case用在switch语句之中,表示其中的一个分支
        catch用在异常处理中,用来捕捉异常
        char基本数据类型之一,字符类型
        class声明一个类
        const保留关键字,没有具体含义
        continue回到一个块的开始处
        default默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
        do用在do-while循环结构中
        double基本数据类型之一,双精度浮点数类型
        else用在条件语句中,表明当条件不成立时的分支
        enum枚举
        extends表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
        final用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
        finally用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
        float基本数据类型之一,单精度浮点数类型
        for一种循环结构的引导词
        goto保留关键字,没有具体含义
        if条件语句的引导词
        implements表明一个类实现了给定的接口
        import表明要访问指定的类或包
        instanceof用来测试一个对象是否是指定类型的实例对象
        int基本数据类型之一,整数类型
        interface接口
        long基本数据类型之一,长整数类型
        native用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
        new用来创建新实例对象
        package
        private一种访问控制方式:私用模式
        protected一种访问控制方式:保护模式
        public一种访问控制方式:共用模式
        return从成员方法中返回数据
        short基本数据类型之一,短整数类型
        static表明具有静态属性
        strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范
        super表明当前对象的父类型的引用或者父类型的构造方法
        switch分支语句结构的引导词
        synchronized表明一段代码需要同步执行
        this指向当前实例对象的引用
        throw抛出一个异常
        throws声明在当前定义的成员方法中所有需要抛出的异常
        transient声明不用序列化的成员域
        try尝试一个可能抛出异常的程序块
        void声明当前成员方法没有返回值
        volatile表明两个或者多个变量必须同步地发生变化
        while用在循环结构中

      运算符

      算术运算符

      基本四则运算符 + - * / %

      需注意的是int/int还是int 可以用double来表示结果

      0不能做除数

      % 表示取余, 不仅仅可以对 int 求模, 也能对 double 来求模

      System.out.println(11.5 % 2.0); 
      
      // 运行结果 1.5 
      

      增量赋值运算符 += -= *= /= %=

      a+=1; 表示 a=a+1;

      自增/自减运算符 ++ –

      1. 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.

      2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值.

      关系运算符

      == != < > <= >= 返回的结果都是boolean值

      逻辑运算符

      && || !

      结果也是boolean值

      && 两个操作数都为 true, 结果为 true, 否则结果为 false.

      || 两个操作数都为 false, 结果为 false, 否则结果为 true

      ! 操作数为 true, 结果为 false; 操作数为 false, 结果为 true

      注意的是 && || 都是短路运算

      1. 对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式.
      2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.

      位运算符

      & | ~ ^

      按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.

      按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1.

      按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0.

      按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.

      特别注意

      当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑 运算.

      移位运算

      << >> >>>

      左移 <<: 左侧位不要了, 右侧补0;

      右移 >>: 右侧位不要了, 左侧补符号位(正数补0, 负数补1)

      无符号右移 >>>: 右侧位不要了, 左侧补 0.

      条件运算符

      表达式1 ? 表达式2 : 表达式3

      // 求两个整数的大值 
      int a = 10;
      int b = 20;
      int max = a > b ? a : b; 
      
    展开全文
  • java数据类型运算符

    千次阅读 2014-04-11 17:00:38
    本文讲述java数据类型和java运算符,java数据类型包括8种基本数据类型和引用数据类型不同类型数据间有转换机制;本文还描述了java众多运算符及一些对应使用注意事项和运算符优先级。 java数据类型 Java是强数据...

    本文讲述java数据类型和java运算符,java数据类型包括8种基本数据类型和引用数据类型,不同类型数据间有转换机制;本文还描述了java众多运算符及一些对应使用注意事项和运算符优先级。

    java数据类

    Java是强数据类型语言,对于每一种数据都定义明确了的类型,并在内存中分配不同大小的空间。

    Java数据类型分为8种基本数据类型和引用型数据类型

    8种基本数据类型是:

    1. byte,short,int,long,整型,内存中分别占1个字节、2个字节、4个字节、8个字节。

    2. float,double,浮点型,分别占4个字节、8个字节。

    java中的浮点数采用的是IEEE Standard 754 Floating Point Numbers标准。
    float占用4个字节,也就是32bits,在内存中分配如下:
    第1个bit表示符号,0表示正数,1表示负数.
    第2-9个bit表示指数,一共8为(可以表示0-255),这里的底数是2,为了同时表示正数和负数,这里要减去127的偏移量.这样的话范围就是(-127到128),另外全0和全1作为特殊处理,所以直接表示-126到127。
    剩下的23位表示小数部分, 小数点后第1位基数是0.25,第2位基数是0.125,依次类推是(1/2)^n,各位上的值与基数相乘再相加就是最后结果中的小数部分。
    最后结果是:(-1)^(sign) * 1.f * 2^(exponent).这里:sign是符号位,f是23bit的小数部分,exponent是指数部分。
    这是float数据在内存中的规格化表示,IEEE 754标准中还规定了非规格化表示法,另外还有一些特殊规定,这里不再多说。
    float类型数据的取值范围是[2-149,(2-2-23)·2127],也就是Float.MIN_VALUE和Float.MAX_VALUE。
    double数据在内存中的表现形式与float有相通之处。double占8个字节,即64bits,第1位是符号位,第2~12位是指数位,第13~64位是尾数位。
    double取值范围是[2-1074, (2-2-52)*21023],也就是Double.MIN_VALUE和Double.MAX_VALUE。

    3. char,字符型,占1个字节 

    一个char字符表示Unicode字符集中的一个元素,Unicode字符由16位组成,范围从’\u0000’,’\uffff’(u代表j是unicode字符),所以char的范围是0~65535(2^16-1)。Unicode的前128个字符编码与ASCII兼容。

    4. Boolean,布尔型占一个字节,取值范围是false和true。

    引用数据类型:类、接口、数组

    类型转换

    自动类型转换:不同类型数据间不能进行运算,除非提升为同类型的;数值型的6种基本数据类型间可以进行运算,因为系统底层会对参与运算的数作自动类型提升.

    类型自动提升规则:
      所有的byte/short/char将被提升到Int
      如果一个操作数是long型,计算结果就是long
      如果一个操作数是float型,计算结果就是float
      如果一个操作数是double型,计算结果就是double

    强制类型转换:不同类型数据间还可以手动进行强制类型转换,如double型数值要想去掉小数时,可以将double型强制转成int型,强转语法格式:int a=(int)4.5.

    下面的代码中总结若干类型转换可行及不可行的情况

    public class Type {
    	public static void main(String[] args) {
    		byte b=3; /*编译通过,虽然3默认是Int类型,但是常量直接赋值给byte时,系统内部会自动作一个判断,只要在byte范围内就可以*/
    		short s=3000; /*编译通过,同上*/
    		long l=4; /*编译通过,同上,但一般也成long l=4l*/
    		long la=101000001010; /*编译不通过,101000001010超出int取值范围,系统不会自动将它当作double类型处理*/
    		long lb=101000001010l; /*编译通过,101000001010后面加l,手动将其指定为long类型*/
    		float f=2.3; /*编译不通过,因为2.3默认是double型变量,不能赋给float型变量,在范围内也不行*/
    		float f1=2.3f; /*编译通过,因为2.3f指定了2.3是float型变量*/
    		double d=34.56; /*编译通过*/
    		b=b+2; /*编译不通过,因为2是Int型,b也自动提升成int型进行运算,得到的结果还是int型的;因为b是变量,这时系统内部就无法判断运算结果是否在byte范围内,因此不能再赋给byte变量*/
    		b=(byte)(b+2); /*编译通过,但注意不能写成b=(byte)b+2,不起作用*/
             char c=’你’; /*编译通过,一个char类型变量占2个字节,一个汉字也是占2个字节*/
    		System.out.println('a'+1); /*ASCII码表中有'a'与数字的对应,和1运算时,类型就会提升为int,将ASCII表中'a'对应的数字体现出来,打印98*/
    	   System.out.println('a'); /*单独打印'a'时是显示字符效果*/
    	}
    }

    java运算符

    算术运算符

    1. 加减乘除:+-*/

    关于符点数运算,在黑马论坛上看过一个有意思的帖子,在这里记录并分享下,代码如下

    public class Test3 {
    	public static void main(String[] args) {
    		System.out.println(5-2.1);
    		System.out.println(2-1.1);
    		System.out.println(5f-2.1f);
    		System.out.println(2f-1.1f);
    		System.out.println(5f-2.1);
    		System.out.println(2f-1.1);
    	}
    }
    /*运行结果:
    2.9
    0.8999999999999999
    2.9
    0.9
    2.9
    0.8999999999999999
    */

    这个还得说到浮点数在内存中的二进制表示,并不是所有带小数都可以在内存中用32位或64位二进制精确表示出来,如3.125可以用一个32位或64位二进制精确表示,但0.1在内存中用64位二进制也无法精确表示;

    另一方面,Double类的静态toString()方法在打印double数值时是将能区分该值和其double类型的邻近值的最短小数位数的数值打印显示出来;也就是说,假设d是double类型的数,x是调用toString方法得到的d的十进制数,那么 d 一定是最接近 x 的 double 值。(参见jdk 1.6 API文档中Double类toString()方法说明)。

    基于以上2点,java中浮点数不能进行精确的四舍五入运算,这在商业领域,特别是金融行业是不允许的,如你有9.999999999999块钱,但计算机却不认为你能买10块钱的东西。java中float和double只能用来做科学计算或者是工程计算,在商业计算中需要用java.math.BigDecimal。这个就说到这,有个直观印象就好,更系统且深入的知识还有待学习。

    2. 取模:%

    就是取余数;涉及负数取余时,结果的符号与左边的数一致,如1%-5=1-1%5=-1.

    3. 自增和自减:++,--

    b=a++和b=++a:b=a++是先将a的值赋给b,然后a自增1,b=++a是a先自增1,然后将a值赋给b;2种写法中b取值不同,但下次使用a时,a值是一样的,都是自增过1的。

    4. 字符串连接符:+

    字符串数据和任何数据使用+,都是相连接,最终都会变成字符串。

    5. 转义字符:通过\来转变后面字母或者符号的含义

    常用的有:\n:换行,\b:退格,\r:按下回车键,\t:制表符,相当于tab键。
    在Linux系统中换行用\n来表示,在window系统中回车符用\r\n来表示。

    6. 赋值运算符=,+=,-=,*=,/=,%=

    用下面一小段代码说明一下:

    public class test{
        public static void main(String[] args){
                x+=4;//效果等同于x=x+4;
                short s=4;
                s=s+4;/*编译失败,2次运算,s进行类型提升为int与4相加,运算结果还是int类型,然后赋值给s时失败*/
                s+=4;/*编译通过,1次运算,将s和4的和赋给s,+=在赋值时,会自动执行强制转换操作*/
                int a,b,c;
                a=b=c=5;//Java允许这样赋值
        }
    }

    7.  比较运算符:==,!=,<,>,<=,>=,instance of(检查是否是某个类的对象)

    8.  逻辑运算符:用于连接boolean类型的表达式

    &:两边都为真时,结果为真
    |:两边只要有一个为真,结果为真
    ^:异或,两边相同结果为false,两边不同结果为true.
    &&:与&的不同是进行短路运算,只要左边为假,右边不会再运算
    ||:与|的不同是进行短路运算,只要左边为真,右边不会再运算

    9. 位运算符:直接对二进制进行运算,位运算的速度是最快的

    <<:左移,其实就是乘以2的移动的位数次幂
    >>:右移,其实就是乘除以2的移动的位数次幂;右移后最高位补什么由原有数据的最高位而定
    >>>:无符号右移,右移后高位上空出来的位都以0补
    &:与,运算规则跟&作为逻辑运算符时相同,对应位都为1时结果为1
    |:或,对应位只要有一个为1,结果为1
     ^: 异或,对应位数上,相同时为0,不同是时为1; 一个数异或同一个数2次,结果还是那个数,可用异或来加密数据,再异或同一个数来解密。
    ~:反码,取反

    这里记录一个有意思的小例子:

    /*2个数互换的3种方法,常用的是swap1*/
    public class Swap {
    	/*使用第三方变量*/
    	public static void swap1(int a,int b){
    		int temp;
    		temp=a;
    		a=b;
    		b=temp;
    	}
    	/*不用第三方变量,但如果a和b的值非常大,容易超出int范围*/
    	public static void swap2(int a,int b){
    		a=a+b;
    		b=a-b;
    		a=a-b;
    	}
             /*使用用异或*/
    	public static void swap3(int a,int b){
    		a=a^b;
    		b=a^b;
    		a=a^b;
    	}
    }

    10. 三元运算符,即条件表达式

    变量=(条件表达式)?表达式1:表达式2,条件表达式为真时,变量取值为表达式1,为假时,变量取值为表达式2.

    public class IFDemo{
          public static void main(String[] args){
                    int x=1,y;
                  y=(x>1)?’a’:200;// ‘a’与200作运算,’a’会自动提升为int
          }
    }

    这么多运算符,实际应用中往往是多个运算一块使用,因此运算符优先级和结合性就显得比较重要了,不明确这些,就不知道先算哪个再算哪个,下面通过一张表的形式来说明java所有这些运算符的优先级和结合性:

    优先级
    运算符
    结合性
    1
    () [] .
    从左到右
    2
    ! +(正)  -(负) ~ ++ --
    从右向左
    3
    * / %
    从左向右
    4
    +(加) -(减)
    从左向右
    5
    << >> >>>
    从左向右
    6
    < <= > >= instanceof
    从左向右
    7
    ==    !=
    从左向右
    8
    &(按位与)
    从左向右
    9
    ^
    从左向右
    10
    |
    从左向右
    11
    &&
    从左向右
    12
    ||
    从左向右
    13
    ?:
    从右向左
    14
    = += -= *= /= %= &= |= ^=  ~=  <<= >>=    >>>=
    从右向左
     

    ------- android培训java培训、期待与您交流! --------

    
    
    展开全文
  • 第2章 SQL中的数据类型运算符 SQL支持的数据类型主要包括预定义的数据类型和用户自定义的数据类型。其中,SQL预定义的数据类型主要包括数值类型、字符串类型、日期类型和布尔值等数据类型。本章将讲解一下SQL...

    第2章  SQL中的数据类型和运算符

    SQL支持的数据类型主要包括预定义的数据类型和用户自定义的数据类型。其中,SQL预定义的数据类型主要包括数值类型、字符串类型、日期类型和布尔值等数据类型。本章将讲解一下SQL数据类型和运算符方面的相关内容。

    2.1 数值类型 

    数值型数据类型主要用于存储数据信息。所有的数值数据类型都有精度,有些数据类型还有范围。精度是指可以存储数字的数据,范围是指该值的小数部分的数字的数目。多数据库管理系统支持多种类型的数字型数据,不同的类型支持不同的数字形式与数字范围。

    1 存储4个字节的整数类型—INTEGER

    INTEGER数据类型又称为INT,该数据类型具有4比特的整数,其数值范围为-2147483648至2147483647。

    2 存储2个字节的整数类型—SMALLINT

    SMALLINT数据类型是具有2个比特的整数,该数据类型的取值范围为-32768至32767。

    3 小数类型-- NUMBER

    Number数据类型可存放实型和整型。如果形式为Number(size),则表明最大数字的位数由括号中的参数size设置;如果形式为Number(size,d),则表明最大数字的位数由括号中的参数size设定,而括号中的参数d是设置小数点的位数。

    注意:不同的数据库管理系统所支持的数据类型不尽相同。如在SQL Server中,Number数据类型被写成Decimal或Numeric。

    4 单精度浮点数—REAL

    REAL数据类型是4比特的浮点数,可以指定精度,但没有范围。

    5 浮点数—FLOAT

    PLOAT数据类型可精确到第15位小数,每个Float类型的数据占用8个字节的存储空间,可以指定精度,而不指定范围。

    6 BIT数据类型

    BIT数据类型是单比特数据,只能取值为“0”或“1”。如果输入0或1以外的值将被视为1。BIT数据类型不能定义为NUlL值。

    当处理那种只有两个值的数据时,可使用BIT数据类型。如,可使用BIT字段来存储Yes/No或者Ture/Fasle调查问题的答案。按照通常的约定,在BIT中的1表示True,0表示Fasle。

    2.2 字符串类型

    字符型数据是最常用的数据类型之一。例如,经常用到的通信录中的姓名、性别、地址和籍贯等字段都是字符类型。字符型变量可分为固定长度和可变长度字符两种。固定长度型字符变量的字符数在数据表创建的时候就指定了,并分配了存储空间。如指定通信录表姓名的字符数为10,那么如果用户输入姓名的字符数超过10,那么数据库只记录前10个字符;如果输入的字符数少于10,则数据库会自动在字符右边以空格填补到10个字符。

    可变长度字符串可以存储任意长度的字符(其最大存储长度取决于采用的数据类型和数据库管理系统),它不需要预先指定存储长度,而是根据用户的输入动态地分配存锗空间。

    2.2.1 可变长度的字符串类型—VARCHAR、TEXT

    VARCHAR、NTEXT和TEXT数据类型都是可变长度的字符串类型,其中VARCHAR字符串数据类型具有一个参数size,并且该数据类型的最大长度由size参数来设定。TEXT数据类型用于存储大量文本数据,其容量理论上为1~231-1(2147483 647)个字节,但实际应用时要根据硬盘的存储空间而定。

    2.2.2 固定长度的字符串类型—CHAR

    CHAR是固定长度的字符串类型,长度为n个字节,n的取值范围为不超过255个字节。

    例如:

    C_Name CHAR(8)

    如果C_Name实际上只有4个字符,那么其余4个字符将是空格。

    2.3 日期类型

    日期类型用于存储不同精度和范围的时间和日期数据,用于表示某天的日期和时间。在SQL中,datetime和smalldatetime是最常见的两种日期数据类型,下面就分别讲解一下这两种日期数据类型。

    datetime数据类型所占用的存储空间为8个字节。其中第一个4字节存储“基础日期”(即1900年1月1日)之前或之后的天数;另外一个4字节存储日期的时间(以午夜后经过的毫秒数表示)。如果在输入数据时省略了时间部分,则系统将12:00:00:000AM作为时间默认值;如果省略了日期部分,则系统将1900年1月1日作为日期默认值。

    smalldatetime值是存储为4字节的整数。第一个2字节存储1900年1月1日后的天数;另外一个2字节存储午夜后经过的分钟数。

    1.日期输入格式

    日期的输入格式可分为“英文+数字格式”、“数字+分隔符格式”和“纯数字格式”三种。

    (1)英文+数字格式:此类格式中,月份可用英文全名或缩写,且不区分大小写;年和月日之间可不用逗号;年份可为4位或2位,当其为2位时,若值小于50,则视为20xx年,若大于或等于50,则视为19xx年;若日部分省略,则视为当月的1号。以下格式均为正确的日期格式:

    June 18 2010     Oct 1 2001       January 2010         2011 February

    (2)数字+分隔符格式:允许把斜杠(/)、连接符(-)和小数点(.)作为用数字表示的年、月、日之间的分隔符。格式如下所示。

    YMD :   2012/1/22    2012-1-22    2012.1.22

    MDY :   3/5/2010     3-5-2010     3.5.2010

    DMY :   31/12/2011   31-12-2011   31.12.2011

    (3)纯数字格式:纯数字格式是以连续的4位、6位或8位数字来表示日期。如果输入的是6位或8位数字,系统将按年、月、日来识别,即YMD格式,并且月和日都是用两位数字来表示;如果输入的数字是4位数,系统认为这4位数代表年份,其月份和日默认为此年度的1月1日。格式如下所示。

    20110612——2011年6月12日

    971218——1997年12月18日

    2.时间输入格式

    在输入时间时,必须按“小时、分钟、秒、毫秒”的顺序来输入。在其间用冒号“:”隔开,毫秒部分可以用小数点“.”分隔,其后第一位数字代表十分之一秒,第二位数字代表百分之一秒,第三位数字代表千分之一秒。

    当使用12小时制时,用AM(am)和PM(pm)分别指定时间是午前或午后,若不指定,系统默认为AM。AM与PM均不区分大小写,格式如下所示。

    8:7:20.2pm——下午8时7分20秒200毫秒

    2.4 大对象数据类型—BLOB

    BLOB 是“binary large object”的简称,中文意思为“二进制大对象”,是一个可以存储二进制文件的容器。 在计算机中,BLOB数据类型常常用来存储二进制文件。

    BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸很大,因此必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库中),在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB数据类型的典型例子。

    注意:在使用BLOB数据类型时可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。

    在MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的区别是存储文件的大小不同。

    下面是MySQL的四种BLOB类型:

    (1)TinyBlob数据类型,最大255K。

    (2)Blob数据类型,最大65K。

    (3)MediumBlob数据类型,最大16M。

    (4)LongBlob数据类型,最大可达4G。

    2.6 布尔值—BOOLEAN

    Boolean数据类型的缺省值为 False,如果变量的值只是“true/false”、“yes/no”或“on/off”信息,则可将它声明为Boolean 类型。

    boolean 数据类型存储为16位(2 个字节)的数值形式,该数据类型只能是True或者False。使用关键字True与False可将boolean变量赋值为True与False状态中的一个。在java中boolean值只能是true和false,而不能用0和1代替,并且一定要小写。

    2.7 自定义数据类型

    前面讲解了几种常见的数据类型。除此之外,用户还可以用自定义的数据类型来定义表的列或声明变量。用户定义的数据类型基于在Microsoft SQL Server中提供的数据类型。当几个表中必须存储同一种数据类型,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户自定义的数据类型。

    1.创建用户自定义数据类型

    在SQL SERVER中,创建用户定义的数据类型可以使用CREATE TYPE语句,或者系统存储过程sp_addtype。当创建用户定义的数据类型时,必须提供数据类型的名称、所基于的系统数据类型和数据类型是否为空。

    【语法说明】

    CREATE TYPE语句的语法格式如下所示。

    CREATE TYPE type_name

    FROM base_type [ ( precision [ , scale ] ) ] [ NULL | NOT NULL ]

    sp_addtype存储过程的语法如下所示。

    sp_addtype {type},[,system_data_bype][,'null_type']

    其中,type是用户定义的数据类型的名称。system_data_type是系统提供的数据类型。 null_type表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'NULL'、'NOT NULL'。

    【上机实战】

    创建一个用户定义的数据类型Email,其基于的系统数据类型是变长为30的字符,不允许为空,其实现的代码如下所示。

    USE Library

    GO

    sp_addtype Email,'varchar(30)','NOT NULL'

    GO

    运行代码后,即创建了用户定义的数据类型Email。

    2.删除用户自定义数据类型

    当用户定义的数据类型不需要时,可以将其删除。

    【语法说明】

    在SQL SERVER中,删除用户定义的数据类型的命令如下所示。

    sp_droptype {'type'}

    【上机实战】

    删除创建的用户定义数据类型Email,其实现的代码如下所示。

    USE Library

    GO

    sp_droptype 'Email'

    GO

    2.8 运算符

    在SQL语句中,可以运用各种运算符和函数直接对查询列的数据进行一些处理,将处理后的结果显示给用户。本节中将讲解一下,在SQL语句中一些常用运算符的使用方法。

    2.8.1 算术运算符

    算术运算符也称为数学运算符,在SQL中,数学运算符有以下几种。

    (1)“+”运算符:表示数值相加运算。

    (2)“-”运算符:表示数值相减运算。

    (3)“*”运算符:表示数值相乘运算。

    (4)“/”运算符:表示除运算。

    在使用这些运算符的时候,应该注意各运算符之间的优先级关系,一般情况下,这些运算符的优先级顺序与在算术运算中的优先级顺序基本相同。

    下面通过几个实际操作来讲解算术运算符的使用方法。

    1.使用加法运算符“+”

    【上机实战】

    从销售信息表(t_sale)中查询货物名称(s_title)、销售单价(s_value)、运费(s_trans)以及销售单价和运费的合计信息。其中销售单价和运费的合计为销售单价(s_value)与运费(s_trans)的和,其实现的代码如下所示。

    select s_title,s_value,s_trans,s_value+s_trans as all_values

    from t_sale

    代码执行以后,运行结果如图2.1所示。

    图2.1  使用“+”运算符

    从图中可以看出,货物的实际销售收入是由货物的销售单价(s_value)与运费(s_trans)的和得出来的。

    说明:ALL_VALUES是销售单价(s_value)与运费(s_trans)的和所得出的别名。

    2.使用乘法运算符“*”

    【上机实战】

    从销售信息表(t_sale)中查询货物名称(s_title)、销售单价(s_value)、销售数量(S_NUMS)以及货物总价信息。

    select S_TITLE,S_VALUE,S_NUMS,S_VALUE*S_NUMS AS ALL_VALUES

    from t_sale

    代码执行以后,运行结果如图2.2所示。

    图2.2  使用“*”运算符

    从图中可以看出,货物总价(ALL_VALUES )是由销售数量(S_ NUMS)和销售单价(s_value)的乘积得出来的。可见,通过这种随时创建数据表中字段的方法可以节省数据库的存储空间。

    3.除法运算符“/”

    【上机实战】

    从销售信息表(t_sale)中统计所有销售货物的平均运费。

    select sum(s_trans)/ sum(s_nums) as avg_trans

    from t_sale

    代码执行以后,运行结果如图2.3所示。

    图2.3  计算销售货物的平均运费

    从图中可以看出,销售货物的平均运费是由销售商品的运费合计金额除以销售货物的总数量得出的。

    4.数学运算符的组合使用

    可以将前面讲解的数学运算符组合在一起使用,从而得到某些复杂的计算结果。下面的代码演示的是从销售信息表(t_sale)中查询货物名称(gName)和销售获取总金额(s_value与s_trans之和再乘以s_nums)信息。

    select s_title,(s_value+s_trans)*s_nums

    from t_sale

    代码执行以后,运行结果如图2.4所示。

    图2.4  数学运算符的组合使用

    2.8.2 逻辑运算符

    逻辑运算符包括逻辑与(AND)运算符和逻辑或(OR)运算符两种。本节中将讲解这两种运算符的相关知识。

    1  逻辑与运算符

    逻辑与(AND)运算符表示的是查询在表达式中即符合条件1又符合条件2数据。

    【语法说明】

    逻辑与运算符的语法结构如下所示。

    SELECT column1,column2,…,column

    FROM table_name

    WHERE condition1 AND condition2

    语句中,condition1与condition2表示两个查询条件。只有同时满足这两个查询条件,才能够查询出符合条件的记录。如果不同时满足这两个查询条件,则查询的结果将为空(NULL)值。

    说明:AND运算符也可以连接两个以上的查询条件。如condition1 AND condition2 AND condition3,此时需要同时满足3个查询条件。

    【上机实战】

    在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”并且运输费用(S_TRANS)小于10的销售货物信息。为了便于读者进行学习比较,这里将销售信息表(t_sale)中的现有数据信息显示出来。

    SELECT * FROM T_SALE

    语句执行结果如图2.5所示。

    图2.5  显示t_sale数据表中的记录信息

    使用逻辑与(AND)运算符查询数据的代码如下所示。

    SELECT * FROM T_SALE

    WHERE S_SUPPLIER='HS公司' AND S_TRANS<=10

    代码执行以后,结果如图2.6所示。

    图2.6  使用AND运算符实现条件查询

    从图中可以看出,查询的数据结果即符合供应商(S_SUPPLIER)是“HS公司”又符合运输费用(S_TRANS)小于10的查询条件。

    在一个WHERE子句中,可以同时使用多个AND运算符连接多个查询条件。此时,必须满足所有的查询条件记录,才能够查询出所需要的数据信息。

    下面的代码演示的是,在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”、运输费用(S_TRANS)小于10并且销售货物名称(s_title)包含“HP”字符的销售货物信息。

    select * from t_sale

    where s_supplier='HS公司'

    and s_trans <=10

    and s_title like '%HP%'

    代码执行以后,结果如图2.7所示。

    图2.7  使用多个AND运算符实现条件查询

    注意:只有当3个查询条件都符合时,查询出的数据才不会是空(NULL)值。如果有多个查询条件,要多个查询条件都符合,否则查询出的数据将是空(NULL)值。但是,在使用了3个以上的AND运算符组成查询条件查询数据时,在分析查询结果时会比较的麻烦,既很难分析其查询结果。

    2  逻辑或运算符

    逻辑或(OR)运算符表示的是在表达式中查询符合条件1或者符合条件2的数据。

    【语法说明】

    逻辑或运算符的语法结构如下所示。

    SELECT column1,column2,…,column

    FROM table_name

    WHERE condition1 OR condition2

    语句中,condition1与condition2表示两个查询条件。只要满足这两个查询条件中的其中一个条件,就能够查询出符合条件的记录。如果同时两个查询条件都不满足,则查询的结果为空(NULL)值。

    说明:与AND运算符一样,OR运算符也可以连接两个以上的查询条件。如condition1 OR condition2 OR condition3,此时也只是满足一个查询条件即可。

    【上机实战】

    在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”或者运输费用(S_TRANS)小于10的销售货物信息。为了便于读者进行学习比较,这里将销售信息表(t_sale)中的现有数据信息显示出来。

    SELECT * FROM T_SALE

    语句执行结果如图2.5所示。

    使用逻辑或(OR)运算符查询数据的代码如下所示。

    SELECT * FROM T_SALE

    WHERE S_SUPPLIER='HS公司' OR S_TRANS<=10

    代码执行以后,结果如图2.8所示。

    图2.8  使用OR运算符实现条件查询

    从图中可以看出,查询的数据结果符合供应商(S_SUPPLIER)是“HS公司”或者运输费用(S_TRANS)小于10的查询条件。

    注意:从上面的查询结果中可以看出,只要满足其中任何一种查询条件,就会将查询结果显示出来,这一点与AND运算符有很大的区别。

    与AND运算符一样,OR运算符也可以同时使用多个查询条件。此时,只要满足其中任何一个查询条件,就能够查询出符合条件的数据信息。

    下面的代码演示的是,在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”、或者运输费用(S_TRANS)小于10、或者销售货物名称(s_title)包含“HP”字符的销售货物信息。

    select * from t_sale

    where s_supplier='HS公司'

    or s_trans <=10

    or s_title like '%HP%'

    代码执行以后,结果如图2.9所示。

    图2.9  使用多个OR运算符实现条件查询

    从图中可以看出,只要满足3个查询条件中的任何一个查询条件即可。

    注意:当3个查询条件只要有一个条件符合时,查询出的数据就不会是空值。如果有多个查询条件,多个查询条件中只要有一个符合,查询出的数据就不会是空(NULL)值。

    3  逻辑运算符的组合使用

    逻辑与(AND)运算符与逻辑或(OR)运算符除了可以单独使用之外,还可以组合在一起进行使用。但是,在将其组合在一起使用时,会涉及到运算符的优先级问题。与其他语言一样,在SQL中,逻辑与(AND)运算符的优先级要高于逻辑或(OR)运算符。

    【语法说明】

    逻辑与(AND)运算符与逻辑或(OR)运算符组合在一起使用时的语法结构如下所示。

    SELECT column1,column2,…,column

    FROM table_name

    WHERE condition1 OR condition2 AND condition3

    由于优先级的关系,上述语句中应该先执行AND运算符,即先执行condition2 AND condition3查询条件,然后再将condition1与condition2 AND condition3的结果进行逻辑或(OR)运算。因此上述的语句也可以写成如下的形式。

    SELECT column1,column2,…,column

    FROM table_name

    WHERE condition1 OR (condition2 AND condition3)

    注意:括号()的优先级要高于AND运算符和OR运算符的优先级。在将AND运算符与OR运算符进行组合使用时,建议用户采用括号()来实现需要的执行顺序,这样可以增强程序的可读性。

    【上机实战】

    在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”并且运输费用(S_TRANS)小于10、或者销售货物名称(s_title)包含“HP”字符的销售货物信息。

    select * from t_sale

    where s_supplier='HS公司'

    and s_trans <=10

    or s_title like '%HP%'

    代码执行以后,结果如图2.10所示。

    图2.10  运算符AND、OR的组合使用

    可以将多个AND和OR运算符组合在一起进行组合查询。

    下面的代码演示的是,在销售信息表(t_sale)中查询供应商(S_SUPPLIER)是“HS公司”并且运输费用(S_TRANS)小于10、或者销售货物名称(s_title)包含“HP”字符并且销售单价(s_value)大于3000的销售货物信息。

    select * from t_sale

    where (s_supplier='HS公司'

    and s_trans <=10)

    or (s_title like '%HP%'

    and s_value >3000)

    代码执行以后,结果如图2.11所示。

    图2.11  多个AND、OR运算符的组合使用

    使用组合后的运算符查询出的结果会很复杂,读者在学习时要根据自己所定义的查询条件进行仔细地分析。因为AND与OR运算符如果组合不合理,将失去查询的意义。

    2.8.4 NOT运算符

    NOT运算符通常情况下可以与其他运算符联合使用。如前面讲解的NOT IN运算符实际上就是将NOT运算符与IN运算符联合在一起使用。NOT运算符也可以单独的使用,在单独使用的情况下表示取查询条件的相反值。

    【上机实战】

    通过NOT运算符从销售信息表(t_sale)中查询供应商(S_SUPPLIER)除了 “今日科技”以外的销售货物信息。为了便于理解,现将销售信息表(t_sale)中的现有的数据信息显示出来。

    select * from t_sale

    代码执行以后,运行结果如图2.12所示。

    图2.12  销售信息表(t_sale)中的数据信息

    使用not运算符查询数据信息的代码如下所示。

    select * from t_sale

    where not s_supplier ='今日科技'

    代码执行以后,运行结果如图2.13所示。

    图2.13  NOT运算符取反查询

    分析上面的代码可知,在WHERE子句中首先查询所有供应商为“今日科技”的销售货物信息,然后在通过NOT运算符取反,所以最后的查询条件实际上是查询所有除供应商“今日科技”以外所有的销售货物信息。

    下面的代码是从销售信息表(t_sale)中查询销售单价(s_value)不大于500的销售货物信息。

    select * from t_sale

    where not s_value >500

    代码执行以后,运行结果如图2.14所示。

    图2.14  使用NOT运算符实现查询

    从上面的代码可以看出,在WHERE子句中首先查询所有销售单价大于500的销售货物信息,然后在通过NOT运算符取反,所以最后的查询条件实际上是查询所有销售单价小于等于(<=)500的销售货物信息。

    然而,需要注意的一点是,NULL值取反以后,其结果仍然是NULL。请看下面的代码。

    在销售信息表(t_sale)中查询供应商(S_SUPPLIER)字段值为NULL情况下取反的销售货物信息。

    select * from t_sale

    where not s_supplier is null

    代码执行以后,运行结果如图2.15所示。

    图2.15  NULL的取反

    从图中的查询结果发现,供应商(S_SUPPLIER)为NULL的记录并不包含在结果当中。当S_SUPPLIER为NULL时,NOT NULL的含义是查询所有数据信息。所以示例中的代码实际上是查询销售信息表(t_sale)中所有的数据信息,即上述示例中的代码也可以写成下面的形式。

    select * from t_sale

    下面再看一个与NULL取反相关的示例。

    通过NOT运算符在销售信息表(t_sale)中查询供应商(s_supplier)为“HS公司”的销售货物信息。

    select * from t_sale

    where not s_supplier <>'HS公司'

    代码执行以后,运行结果如图2.16所示。

    图2.16  NOT运算符取反查询

    分析示例中的代码可知,在WHERE子句中首先查询供应商不是“HS公司”的销售货物信息,然后在通过NOT运算符取反,所以最后的查询条件实际上是查询供应商为 “HS公司”的销售货物信息。

    2.8.5 IN的使用

    在SQL查询中,如果只需要满足多个条件中的一个条件,可以使用IN运算符。

    【语法说明】

    IN运算符的语法格式如下所示。

    SELECT column

    FROM table_name

    WHERE column IN(vaule_list)

    上述语句中,vaule_list表示与查询相匹配的字符值。

    【上机实战】

    查询图书信息表(T_BOOKINFO)中的图书编号(B_ID)、图书名称(B_NAME)、出版社名称(B_PUBLISH)、出版日期(B_DATE)、作者(B_AUTHOR)和图书价格(B_VALUE)字段,并且作者是“李俊民”的图书信息。

    SELECT B_ID,B_NAME,B_PUBLISH,B_DATE,B_AUTHOR,B_VALUE

    FROM T_BOOKINFO

    WHERE B_AUTHOR IN('李俊民')

    代码执行以后,其执行结果如图,2.17所示。

    图2.17  使用IN语句查询数据

    使用IN运算符还可以同时查询多个条件的数据信息。

    下面的代码演示的是,查询图书信息表(T_BOOKINFO)中的图书编号(B_ID)、图书名称(B_NAME)、出版社名称(B_PUBLISH)、出版日期(B_DATE)、作者(B_AUTHOR)和图书价格(B_VALUE)字段,并且作者是“李俊民”或者是“李红”的图书信息。

    SELECT B_ID,B_NAME,B_PUBLISH,B_DATE,B_AUTHOR,B_VALUE

    FROM T_BOOKINFO

    WHERE B_AUTHOR IN('李俊民','李红')

    代码执行以后,其执行结果如图2.18所示。

    图2.18  使用IN运算符查询数据

    从图中可以看出,作者为“李俊民”和“李红”的图书信息全部被查询出来。

    2.8.6 NOT IN运算符

    在SQL中,NOT IN运算符与IN运算符相对应。其判别结果与IN运算符相反。

    【语法说明】

    NOT IN运算符的语法格式如下所示。

    SELECT column

    FROM table_name

    WHERE column NOT IN(vaule_list)

    语句中,vaule_list表示与查询相匹配的字符值。下面通过一个示例来演示NOT IN运算符的用法。

    【上机实战】

    查询图书信息表(T_BOOKINFO)中的图书编号(B_ID)、图书名称(B_NAME)、出版社名称(B_PUBLISH)、出版日期(B_DATE)、作者(B_AUTHOR)和图书价格(B_VALUE)字段,并且显示除了“人民邮电出版社”以外所有的图书信息。

    SELECT B_ID,B_NAME,B_PUBLISH,B_DATE,B_AUTHOR,B_VALUE

    FROM T_BOOKINFO

    WHERE B_PUBLISH NOT IN('人民邮电出版社')

    代码执行以后,其执行结果如图2.19所示。

    图2.19  使用NOT IN运算符查询数据

    与IN运算符一样,使用NOT IN运算符也可以同时查询多个条件的数据信息。

    下面的代码演示的是,查询图书信息表(T_BOOKINFO)中的图书编号(B_ID)、图书名称(B_NAME)、出版社名称(B_PUBLISH)、出版日期(B_DATE)、作者(B_AUTHOR)和图书价格(B_VALUE)字段,并且显示除了“人民邮电出版社”和“远方出版社”以外所有的图书信息。

    SELECT B_ID,B_NAME,B_PUBLISH,B_DATE,B_AUTHOR,B_VALUE

    FROM T_BOOKINFO

    WHERE B_PUBLISH NOT IN('人民邮电出版社','远方出版社')

    代码执行以后,其执行结果如图,2.20所示。

    图2.20  使用NOT IN运算符查询数据

     

    注:文中字段大小写需根据表中要求创建!当然!习惯上一般都是用小写!



    ——文章收藏的!分享出去!若侵犯请联系删除


     

    展开全文
  • 初识Java--数据类型运算符

    多人点赞 热门讨论 2021-10-14 14:31:13
    数据类型运算符数据类型布尔类型字符串类型String拼接字符'+'转义字符运算符加减乘除模运算增量赋值运算符自增运算符和自建运算符赋值运算符判断运算符逻辑判断符按位运算符移位运算条件运算符运算符优先级 数据...

    数据类型

    布尔类型

    Java当中的bool类型也是两个:true(真) 和false(假)
    不同于C语言,在C语言中,我们可以将一个数字放在bool类型中,0为假,非0为真

    int fun(){
    	return 1;
    }
    bool a = fun();
    

    在Java中,bool类型没有具体的值,如果按照上述C语言的写法,则会出错,true就是true,false就是false,没有其他的值。

    System.out.println(true);
    System.out.println(false);
    

    输出结果如下:

    true
    false

    在JVM规范中,并没有规定bool类型大小,但是在有的书中,bool类型是1个字节大小,有的书中是1个比特位大小。

    字符串类型String

    在Java中,没有指针,但是有单独的字符串类型String
    String 也叫引用类型

    String str = "abcde";
    System.out.println(str);
    

    拼接字符’+’

    System.out.println("hello"+"world");
    

    执行结果

    helloworld

    +可以将两个字符串拼接
    但是如下代码的执行结果却不同

    System.out.println("hello"+10+20);
    System.out.println(10+20+"hello");
    System.out.println("hello"+(10+20));
    System.out.println(10+""+20+"hello");
    

    执行结果如下:

    hello1020//10和20被拼接成了字符串
    30hello//10和20先作和,变成30
    hello30//括号括了起来加和之后变成字符串
    1020hello
    //变成字符串,因为10和20中间有一个空字符串使得10和20没有加和
    

    转义字符

    转义字符’'和C语言一样
    会和下一个字符合为另一个字符
    比如我们熟知的\n换行
    如果要打印\n,可以用双转义

    System.out,println("\\n")

    输出结果如下:

    \n

    运算符

    加减乘除

    +,-,*,/,是我们最常见的运算符,这些运算符效果就是你想的那样,只不过唯一要注意’'号,除号需要注意除数不能为0,并且如果涉及到小数计算建议使用double,因为在计算机语言之中1/2=0,因为1和2都是整形,结果也只会是整形。

    模运算

    ‘%’模运算,起作用是求余数

    int a = 5%2;
    

    上面代码中,a的值是1,因为5/2 == 2余1,所以a等于1.

    增量赋值运算符

    增量赋值运算符,+=,-=,*=,/=等等
    和C语言之中的混合运算符一样
    a+=3 <==>a = a+3;
    并且在Java中,增量赋值会自带强制类型转换。

    short a = 2;
    int s = (int)a+2;//需要强制类型转换
    int b = 0;
    b+=a;//不需要,因为已经自动转换类型了 
    

    自增运算符和自建运算符

    ++和–,其等价于a+=1和a-=1;
    自增运算符分为前置和后置
    举个例子:

    int a = 0;
    int b = a++;
    //等价于int b = a;a = a+1;
    int c = --a;
    //等价于 a = a-1;int b = a;
    

    赋值运算符

    ‘=’就是赋值运算符,其作用是将右边的值赋给左边

    判断运算符

    判断运算符有==,!=,<=,>=,<,>。
    其为bool表达式,结果是bool类型的

    int a = 0;
    boolean c = false;
    c = a==0;//a==0为真,c = true;
    c = a!=0;//a==0为假,c = false;
    c = a>0;//a>0为假,c = false;
    c = a<0;//a<0为假,c = false;
    c = a>=0;//a>=0为真,c = true;
    c = a<=0;//a<=0为真,c = true;
    

    逻辑判断符

    || :逻辑或
    表达式1||表达式2||表达式3……
    从左向右判断,如果有一个为真,则停止判断返回真,否则返回假。
    && :逻辑与
    表达式1&&表达式2&&表达式3……
    从左向右判断,如果有一个为假,则停止判断返回假,否则返回假。
    !:逻辑取反
    !表达式1;
    如果表达式1为真,返回false,如果表达式1为假,返回true。

    注意:所有的表达式必须是bool表达式!!!

    按位运算符

    按位与&,按位或|,按位异或^,按位取反~

    按位与,a&b,对于两个数a和b,每一个二进制位,如果均为1则对应二进制位也放1,否则放0
    1101 & 0011 = 0001

    按位或,a|b,对于两个数a和b,每一个二进制位,如果均为0则对应二进制位也放0,否则放0
    1101 & 0011 = 1111

    按位异或,a^b,对于两个数a和b,每一个二进制位,如果相同则为0,否则放1
    1101 & 0011 = 1110

    按位取反,~a,对于每一个二进制位,除了符号位也就是第一位,其他所有的位1变0,0变1.
    ~1101 = 1010

    移位运算

    左移<<,右移>>和无符号右移>>>

    左移运算符,将其二进制位左移x个单位,不足的补0
    0101 0101 << 2(左移两位)
    结果是01 010100

    右移运算符,将其二进制位右移x个单位,不足的补符号位
    1101 0101 >> 2(右移两位)
    结果是111101 01

    无符号右移,将其二进制位右移X个单位,不足的无论是负数也好正数也好全部补0

    1101 0101 >>> 2(无符号右移两位)
    结果是001101 01

    PS:没有无符号左移

    条件运算符

    条件运算符就是三目运算符
    表达式1 ?表达式2:表达式3
    表达式1,2,3必须是bool表达式
    如果表达式1为真则返回表达式2,如果表达式1为假,返回表达式3.

    运算符优先级

    运算符存在优先级,但是大多时候不必去深究,可以通过括号来先计算内部的表达式,灵活运用括号来防止运算符优先级造成的问题。

    展开全文
  • java数据类型运算符

    千次阅读 2016-08-17 10:08:27
    java运算符的平常知识,还有一些不太常见的运算符知识, 比如:你知道非数、正无穷大、负无穷大吗? 你知道0b,0x,0都是什么意思吗? 你有知道 && 和& 或者 || 和 | 的区别吗?
  • 数据类型运算符

    2015-05-19 09:36:38
    是基本数据类型,一种是引用类型。每种类型必须先声明后使用,类型限制了他所赋予的值的不同,程序在编译时会 进行语法检查,这样会使我们的程序更加严谨,安全。 数值型:1)整型:byte 1个字节;short 2个字节;...
  • 上午学习了c语言的数据类型、变量、常量等,下午学习了运算符以及结构语句if switch for while; 不同的机子的数据类型所占字节略有区别, 32位Linux系统下  int 4Byte,short 2Byte,long 4Byte,float 4Byte,...
  • PostgreSQL:五. 数据类型运算符

    千次阅读 2020-04-29 19:52:40
    数据类型运算符 PostgreSQL支持多种数据类型,主要有整数类型、浮点数类型、任意精度数值、日期/时间类型、字符串类型、二进制类型、布尔类型和数组类型等。 5.1 PostgreSQL数据类型介绍 1、数值类型:整数类型、...
  • 数据类型运算符测试题

    千次阅读 2020-06-10 20:57:45
    数据类型运算符 选择题 print(100 - 25 * 3 % 4) 应该输出什么? (B) A. 1 B. 97 C. 25 D. 0 下列哪种说法是错误的(A)。 A. 除字典类型外,所有标准对象均可以用于布尔测试 B. 空字符串的布尔值是False C. ...
  • java数据类型运算符详解

    千次阅读 多人点赞 2021-03-17 08:49:33
    一.整型变量 1.基本格式 int 变量名 = 初始值; 代码示例: public class CSDN { public static void main...在判断数值范围时,不用考虑负数采用补码形式存储,因为补码和原码是一一对应的。当最高位是1,即为负数,
  • 除法运算符有些特殊,如果除法运算符的两个操作数都是整数类型,则计算结果也是整数,就是将自然 数除法的结果断取整。 %:求余运算符。它要求运算符两边的操作数必须是整数,他的计算结果是使用第一个操作数来除以...
  • 【java数据类型运算符

    热门讨论 2018-01-28 22:03:32
     本篇博客来总结java的数据类型运算符,复习一下java的基础知识. 核心:  首先说一下java的注释: 注释:  单行注释 //  多行注释 /* */ 文档注释/** */(maven打包mvn-package-自动...
  • C语言入门系列之2.数据类型运算符和表达式

    千次阅读 多人点赞 2020-04-16 14:14:10
    C语言中数据类型分为基本类型、构造类型、指针类型和空类型;基本数据类型量分为常量和变量;整型常量分为八进制、十六进制和十进制,整型变量需要定义,有基本型、短整型、长整型和无符号型4类;实型常量有十进制...
  • python系列2—数据类型运算符

    千次阅读 2020-06-06 18:07:50
    数据类型运算符 一、变量和类型 在程序设计中,变量是一种存储数据的载体。计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。首先...
  • 手把手教你掌握Java之数据类型运算符

    千次阅读 多人点赞 2021-04-04 20:42:42
    数据类型运算符冯·诺伊曼体系结构变量及其用法和命名整形变量(int)长整型变量(long)双精度浮点型(double)单精度浮点型变量(float)字符型变量(char)布尔类型变量(boolean)字符串类型变量(String)...
  • 数据类型就是变量值的类型,变量区分类型是因为首变量值是为了记录事物状态的,而事物的状态有不同的类型,对应着就有不同的数值类型的值来记录他们。 一、python中的基本运算符类型: 数字类型:整数型int和...
  • Java 数据类型运算符(回顾当初)

    千次阅读 2019-12-20 00:47:16
    文章目录注释注释详细介绍注释的用法标识符和关键字分隔符标识符规则Java关键字数据类型分类基本数据类型基本类型的转换 注释 编写程序总要写注释,否则写多了可能就不知道这行代码是干什么的,所以要用注释来...
  • JavaSE-2-数据类型运算符

    千次阅读 2018-04-02 21:53:22
    Javase的数据类型运算符 --by Xrzhang 1.关键字定义:关键字是SUN公司事先定义的,有特别意义的单词特点:在 Java 中关键字都是小写的组成: 2.标识符定义:标识符可以标识类名,接口名,变量名,方法名命名...
  • 【Java】02 数据类型运算符

    千次阅读 2020-04-08 01:17:49
    Java 是一门强类型语言,强类型语言可以在编译过程中发现语法错误,从而保证程序更加健壮。Java 还提供了一系列功能丰富的运算符,这些运算符是 Java 编程的基础。
  • Java的基本数据类型运算符介绍

    千次阅读 热门讨论 2021-04-03 23:19:23
    21亿这样的数字对于当前大数据时代来说,是很容易溢出的 针对这种情况, 我们就需要使用更大范围的数据类型来表示了. Java 中提供了 long 类型.
  • java数据类型运算符数据类型基本数据类型java数据类型使用的常犯错误整数的默认类型和浮点数的默认类型char类型来表示汉字理解为什么 byte c = a+1 (a=1)会出错进而理解整型提升与算数转换理解byte short int ...
  • 基础语法、变量、基础数据类型运算符、输入输出基础语法、变量、基础数据类型运算符、输入输出第一章 Python基础语法1.1 缩进1.2 注释1.3 标识符第二章 变量2.1 变量的定义2.2 变量的赋值过程2.3 Python独特的...
  • 讲义(三) Java基本数据类型运算符 (回顾上回讲的,练习完成情况,哪些不了解,有哪些疑惑?提出来) 三、数据类型运算符 1.  注释 快捷键; 怎么注释,单多行; 重要性,记录,调试; 文档注释...
  • java中的基本数据类型运算符

    万次阅读 2016-12-22 15:53:01
    & 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。 && 还具有短路的功能,即如果第一个...
  • Python中的变量,运算符和基本数据类型的理解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,415
精华内容 72,166
关键字:

不同数据类型对应的运算符