美文网首页
Java数据类型与运算符

Java数据类型与运算符

作者: 白玩VAC | 来源:发表于2019-03-28 22:57 被阅读0次

隐式转换

在这段代码中就发生了隐式数据类型转换,本来是byte数据类型的y因为与int x相加,byte被隐式提升为int;

int x = 3 ; 
byte y = 4 ;
x = x + y ;
------------ 
x = 7

不同数据类型之间的运算

byte与byte(short,char)运算,会提升为int数据类型,把int赋值给byte会损失精度.

byte b1 = 3 ;
byte b2 = 4 ; 
byte b3 = b1 + b2  ; //报错,因为b1 + b2过程中会升到int数据类型,不可以赋值给byte类型的b3;
byte b4 = 4 + 3 ;  //正常,并不会报错;
System.out.println ( 'a' + 1 ) ;  //会输出98是因为在ASCII码中,字符a的值为97;
---------------------------------------
98

强制转换

在值前加(byte)强制设定byte数据类型.

int x = 3 ; 
byte b = 4 ; 
b = (byte)(x+6) ;
System.out.println((byte)(126+4));  //-126因为byte类型范围是-128~127

字符串拼接

任何数据类型用+与字符串连接会产生新的字符串.
java用Unicode编码,用两个字节存储char,所以可以保存汉字.

System.out.println("hello"+1) ; //输出hello1
System.out.println(1+1+"hello"); //输出2hello

自增(减)

a++与++a的区别:两者都是自增,但a++是先赋值,后自增

int a = 3;
int b ;
b = a ++ //因为是先赋值,在自增.所以此时b = 3 , a = 4 ; 
b = ++a //如果执行这条语句,那么b = a = 4 ;

下面一个较难的例子

int x = 4 ; 
int y = (x++)+(++x)+(x*10); //4+6+60 
System . out .println (y); //输出70

逻辑运算符

&与&&的区别

&&当左边为false的时候.就不会执行&&右边的式子了.这种现象也叫短路效果.但用&和用&&的效果是一样的.
同样的|与||也有短路效果.

System.out.println( 6&3) ; //&只有两者都为true(相同)才为true;
//6 =>110
//3 => 011 
//6&3 => 2

同理:6|3 => 7 (有true(1)则为true)

位运算符

"^" 异或
"~ "取反
"<<"左移,左移n位则为乘以2的n次幂.
">>"右移,右移n位则为除以2的n次幂.

一个可以输入的demo

import java.util.Scanner;    //导包
class test {
    public static void main (String [] args){
       Scanner sc = new Scanner (System . in);
        System.out.println("请输入一个整数");
        int a = sc. nextInt ();
    }
}

相关文章

网友评论

      本文标题:Java数据类型与运算符

      本文链接:https://www.haomeiwen.com/subject/ccyhbqtx.html