JavaSE入门:JavaSE程序基础——数据类型与运算符

数据类型

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

  • 基本数据类型
    - 数值型
    1. 整数
/*
 *整数
 - 当给定一个数字没有赋值类型   默认为int型
 - byte=8bit     -128~127
 - short=16bit   短整型
 - int=32bit       整型    无赋值类型数字的默认类型
 - long=64bit   长整型   该类型的值后面加L/l    建议大写区分l和1
 */	
		byte b_1=127 ;
		short s_1=128 ;
		int    i_1=3333 ;
		long l_1=2147483647L;
		System.out.println(l_1);
    2. 浮点数
/*
 - 浮点数
 - float 32bit   单浮点    该小数后需要用F/f来声明类型
 - double  64bit  双浮点    无赋值类型,默认小数为double
 */	
		float f_1=1.2F;
		double d_1=1.22;
		System.out.println(f_1);
		System.out.println(d_1);
 - 布尔型
/*
 - boolean   只有true/false    占用一个字节
 */	
			boolean b_1 = false;
			boolean b_2 = true;
			System.out.println(b_2);
			System.out.println(false);
 - 字符型
/*
 - 字符型
 - char    16bit
 - 引用数据类型         类   数组   接口
 - ASCII码         a  97      A   65   0    48
 - char 类型的值在‘’单引号中     只能有一位   空格也算
 */ 
		char c_1 = ' ';
		char c_2 = 'a';
		char c_3 = '明';
		System.out.println(c_3);
  • 引用数据类型
    引用数据类型分为数组,类,接口。
    ( 这些之后有专门的篇幅介绍)

  • 类型转换
    分为自动转换和强制转换
    自动转换:又叫隐式转换,转换规则是小容量的往大容量的转换,可以直接转换。

//	自动转换
		int i=b;
		long l=b;

强制转换:又叫显式转换,就是自动转换的反向转换,需要在前面加(转换的类型)。

//	强制转换
		byte b1=(byte)i;
		short s1=(short)l;

但是注意,char,short,byte不能相互转换,这是规定。但也有一种特殊的形式,类似于:

		byte b=20;
		short s=b;

因为在计算机种他们的默认结果为int型,直接以int型来计算的

运输符

  • 算术运算符
/*
 * 算数运算符    +,-,*,/,%,   ++  , --
 * i++(--)和(--)++i结果无区别
 * 但 i=i++和i=++i结果有区别
 * 前者先赋值后计算
 * 后者先计算再赋值    都是输出等号后的i   但前者输出i,本身却为运算后的i+1      后者直接输出运算后的i+1
 * 注意这里在运算变量里面,其他变量的++和--也会影响这个变量(其他变量,++,--的那个)的值
 */
		int i=4,a=3;
		int b=i++ + ++a + ++i + a++;
//	即,等于  b=4+4+6+4
		System.out.println(b);
		System.out.println(a);
		System.out.println(i);
		//结果为b=18    a=5     i=6
  • 移位运算符
/*
 * >>   右移,考虑符号位,正数补0,负数补1,相当与除以二   除几次就是移几位    不会有小数,取商
 * <<   左移  不考虑符号位   最大的移动就会变成负数  最小的移动就会变成正数
 * >>>  右移  不考虑符号位  正数无影响,负数就会变成正数
 */ 
		int a=4,b=5;
		System.out.println(-111111111<<1);
		System.out.println(-111111111>>1);
		System.out.println(a>>2);
		System.out.println(-111111111>>>1);
//结果:
//-222222222
//-55555556
//1
//2091928092

  • 关系运算符
/*
 * 关系运算符
 * <=   >=   ==  !=   小于等于   大于等于  全等   不等
 * 都是进行比较判断的
 * 返回值都是Boolean型
 */
		int a=1,b=2;
		System.out.println(a<=b);
		System.out.println(a>=b);
		System.out.println(a==b);
		System.out.println(a!=b);
  • 逻辑运算符
/*
 * 位运算符    &         |       !         ^        ~                  
 * 既是         位与    位或  位非  位异或  按位非       
 * 按位非 就是数字二进制取相反(0变1,1变0)  然后取反码
 * && 且   短路与  和&相似 但当碰到假的时候后面就不执行
 * ||   或   短路或   和|相似    但当碰到真时后面就不执行了
 */ 
 int a=4,b=5;
		System.out.println(a<b&a<b);
		System.out.println(a<b|a>b);
		System.out.println(!(a<b));
		System.out.println(true^false);
		System.out.println(~a);
//结果:
//true
//true
//false
//true
//-5	
  • 赋值运算符
/*
 * 赋值运算符  
 * +=     把左边的值加上右边的值   然后赋给左边
 * -=     同上    左边减去右边,给左边
 * *=    同上
 * /=     同上
 * %=    同上
 *注意强制类型转换这块 
 *赋值运算符和++   --  这些都是默认强制类型转换,不需要手动写   但该有的数据超出还是存在
 */
		byte b=1;
		b=(byte)(b+1);
		b++;
		++b;
		b--;
		--b;
		b+=1;
		b+=300;
		System.out.println(b);
  • 字符串连接符
/*
 * 字符串连接符
 * +   即是 算术运算符  也是字符串连接符
 * 用“”表示字符串
 * 字符串连接符是可以让两个字符串连接为一个字符串
 */
		int a=1,b=2;
		System.out.println("a+b="+(a+b));
	    System.out.println("a="+a);
		System.out.println(a+"+"+b+"="+(a=b));
  • 条件运算符
    结构:Boolean?x(true时):y(false时),又叫三目运算符
		int a=4,b=5;
		System.out.println(a>b? 3:6);
		System.out.println(a<b? 3:6);
		//结果
		//6
		//3

优先级
一元>二元(算术>移位>关系>逻辑)>三元(三目)>赋值;
元就是代表未知数个数,一元就是一个未知数,如i++

猜你喜欢

转载自blog.csdn.net/lfz9696/article/details/107731568
今日推荐