JAVA数据类型和运算符的使用

1. 数据类型转换

  • 自动类型提升 :
    小---->大 ===> 可以正常存放,但是可能会造成内存的浪费。

  • 强制类型转换 :
    大---->小 ===> 不能发生,有可能会造成损失精度。
    小范围类型 变量名 = (小范围类型)大范围类型数据。

  • 由小到大:
    byte – >short --> int —> long --> float —> double。

    注意: 如果存储多种类型的数据参与运算,结果类型为参与运算的最大类型
     	    如果结果类型为<int类型,最终会自动提升为int类型
     	    如果为byte,short,char赋值时候,把int类型的常量,只要范围允许可以成功赋值。              
     	    boolean不参与类型转换。
    

2. 引用数据类型的使用

  • 导包 : 指明要使用类型的位置。import 包名.类名,定义在类的上面。
  • 引用数据类型: 引用|变量名 = new 引用数据类型()。
  • 使用功能: 引用.功能名字();

(1)Scanner :接收用户键盘输入的内容。

  • 导入

        import java.util.Scanner;
    
  • 创建 Scanner类型的引用

        Scanner sc = new Scanner(System.in);
    
  • 使用功能

        引用.nextInt()     **** 接收用户键盘输入int类型的内容
        引用.nextByte()    **** 接收用户键盘输入byte类型的内容
        引用.nextShort()   **** 接收用户键盘输入short类型的内容
        引用.nextLong()    **** 接收用户键盘输入long类型的内容
        引用.nextDouble()  **** 接收用户键盘输入double类型的内容
        引用.nextFloat()   **** 接收用户键盘输入float类型的内容
               从有效字符开始接受,遇到enter建结束功能
        引用.next()        ****接收用户键盘输入String类型的内容
     		   从有效字符开始接收,遇到空格等不接受,遇到enter建结束功能
     	引用.nextLine()    ****接收用户键盘输入一整行的String类型的内容
     		   遇到enter建结束功能
    注意: 如果在 nextLine上面存在系列的next功能,需要处理遗留enter问题.
    

(2)Random : 产生随机数。

  • 导包

         import java.util.Random;
    
  • 创建Random类型的引用

     	 Random  ran = new Random();
    
  • 使用功能

     	ran.nextInt()              随机产生int范围内的整数
     	ran.nextInt(整数n)         随机[0,n)整数
     	ran.nextDouble() [0.0,1.0) 随机产生double范围的小数
    
  • 公式总结 :

     	随机整数:
     		[0,n)      ran.nextInt(整数n)
     		[0,n]      ran.nextInt(n+1)
     		[min,max)  ran.nextInt(max-min)+min
     					   ran.nextInt(max)->[0,max)
     					   ran.nextInt(max)+min->[min,max+min)
     					   ran.nextInt(max-min)+min->[0,max-min)+min -->[min,max)
     		[min,max]      ran.nextInt(max-min+1)+min
     注意 : 伪随机数。
    

3. 运算符

    操作数 : 运算符左右两边的数据。
	表达式 : 运算符连接操作数整体称为表达式。
	语句 : 语句以;结束。
  • 算数运算符 :
    + - * / % ++ –

    +: 
    	1)正号 (省略)。
    	2)加法运算。
    	3)字符串的连接符:
    	当+左右两边一旦出现""字符串,+就做为字符串连接符,把左右两边的数据拼接成为一个字符串。
    -: 
    	1)负号。
    	2)减法运算。
    %:
        取余数 | 取余|模以。
    	当第一个操作数<第二个操作数,结果为第一个操作数。
    
  • 赋值运算符 :
    基础赋值运算符 :=
    =是java中唯一一个自右向左运算的符号,优先级最低。

    扩展赋值运算符(算数运算符+基础 赋值运算符 )
     	+=
     		a=a+10;==> a+=10;
     	-=
     	*=
     	/=
     	%=
     	优点:
     		执行效率快
     		自动做强制类型转换
    注意: 编译期间编译器会自动把可以实现的位置优化成为扩展赋值运算符*
    
  • 比较运算符|关系运算符:
    > < >= <=
    byte,short,int,long,float,double,char
    == !=
    基本,引用

     结果都为boolean类型
    
  • 逻辑运算符:

     & 与  
     	两个都为真true,结果才为true,一个为false就是false。
     | 或
     	一个为true就是true,两个都为false才是false。
     ! 非
     	取反 
     	!true -> false。
     	!false -> true。
     ^ 异或
     	相同为false,不同为true。
     短路 : 如果左边的操作数的值能够决定最终表达式的结果 ,第二个操作数不会执行。
     	&&  : 两个都为真true,结果才为true,一个为false就是false。
     	||  : 一个为true就是true,两个都为false才是false。
     注意: 
     	操作数必须为boolean,值为boolean的表达式
     	建议使用短路运算符
    
  • 位运算符:
    把操作数转为二进制,然后根据运算符的规则运算,最终得到的结果转为十进制。

      &  : 同一位的两个数,两个都为1才是1,一个为0就是0。
      |  : 同一位的两个数,一个为1就是1,两个都为0才是0。
      ^  : 同一位的两个数,相同为0不同为1。
      注意 : 以上三个左右两边为boolean类型数据就作为逻辑运算符存在。
      
      >> 右移 
      	把第一个操作数转为二进制,向右移动第二个操作数个位数,移出的位数直接忽略不计,剩余的转为十进制。
      << 左移
      	把第一个操作数转为二进制,向左移动第二个操作数个位数,空位补0,结果转为十进制。
      	
      总结规律 : 
      	右移 :/2的次方  
      		8>>3 ==> 8/2^3
      	左移 :*2的次方
      		8<<3 ==> 8*2^3
      注意 : 建议使用位移运算符代替乘除,效率高。
    
  • 条件运算符:
    条件表达式 ? 值1 : 值2 ;
    条件表达式 : 值为boolean类型的表达式

    执行流程: 
     	1.计算条件表达式,得到boolean结果。
     	2.为true,结果为值1。
     	  为false,结果为值2。
    
  • 一元运算符|单目运算符 :
    操作数只有一个 + -(正负号) ++ --。

     ++ -- 一元运算符  a++   ++a    a--  --a
     ++ 自增 : 自身+1    a++==> a=a+1
     -- 自减 : 自身-1    a-- ==> a=a-1
     规律 : 
     	只操作自己 :
     		++放在操作数的前面后面都是自身+1
     		--放在操作数的前面后面都是自身-1
     	影响其他结果 : (赋值,表达式,输出)
     		++--放在操作数前面,先+1|-1,再去运算
     		++--放在操作数后面,先去运算,再进行+1|-1
    
  • 二元运算符|双目运算符 :
    操作数有两个 + - * /。

  • 三元运算符|三目运算符 :
    操作数有三个条件运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值