**小白的Java学习之旅**------变量 数据类型 表达式 运算符

小白的Java学习之旅------变量 数据类型 表达式

变量

1、什么是变量?
     概念:内存中的一块空间,可以存放数据,简单来说,就是“数据的家”。
     硬盘(外存):数据会永久的存放在计算机中。
     内存条(内存):程序运行时会加载一些数据,这些数据
一般会随着程序的结束而被释放掉,不会永久的保存在计算机中。

通俗的理解:
变量 ------>酒店
变量名 ------>酒店的房间
变量类型---->酒店的房间类型(标准房、总统套房)
变量值 ------>房间里的杂物或人

2、变量的三要素:变量名、变量中存放的数据类型、变量值
3、定义变量:
     变量的声明:变量的数据类型 变量名
     变量的赋值:变量名 = 变量值 (“=”赋值号,“==”等号)
4、变量的使用:
     System.out.println(变量名)
     注意:这里切记括号里不要加引号!!!
5、定义变量的方式:
方法一:先声明,在赋值
      例:int a; //声明
       a = 5; //赋值
方法二:声明的同时给变量赋值
       例:int a = 5;
方法三:同时声明多个相同类型,可以不赋值也可以只赋一个初值还可以赋多个初值
       例:int a,b,c = 10;

数据类型

6.数据类型
基本数据类型(4种)

  •   整型(4种)
类型字节表示范围
byte1-128~127
short2-32768~32767
int4-2147483648~2147483647
long8了解
注意:long类型在定义赋值时,需要在变量值后面加上l/L 字面值:能够给变量值赋的值 字面值默认类型是int
public class V{
	public static void main(String[] args){
		int a = 10;
		System.out.println(a);

		byte b = 12;
		System.out.println(b);

		short s = 127;
		System.out.println(s);

		long l = 2147483648L;
		System.out.println(l);
	}
}
  •    小数点类型(浮点型):
类型字节
float(单精度)4
double(双精度)8
注意:float类型变量定义时,需要在变量值后面添加f/F
          double类型变量定义时,需要在变量值后面添加d/D
public class V{
	public static void main(String[] args){
		float f = 24.3F;
		System.out.println(f);
		double d = 29.78D;
		System.out.println(d);
	}
}

面试题:int和float都占4个字节,那么谁的表示范围大?
答:float采用科学计数法,所以比整型表示的范围大。
测试代码如下:

public class V{
	public static void main(String[] args){

		int i = 2147483647;
		System.out.println(i);
		float f = 2147483648F;
		System.out.println(f);

		//结果:2.14748365E9 科学计数法 E代表10 E后面的代表指数
	}
	
}
  •   字符类型:
类型字节范围
char20~65535
字符类型的变量定义方式:
1.直接用单引号赋值
  char c = 'A';
2.用数值进行赋值
  char c = 65;
  常用的ASCII值A:65 a:97 之间相差32
3.Unicode编码(十六进制)
  char c = '\u0041'
转义字符:
    \\   反斜杠
    \'  单引号
    \"  双引号
    \n  换行符
    \t  制表符
  •   布尔类型:
    boolean :
        值的形式:true(真) false(假)
  •   引用数据类型:
    String(字符串类型)用双引号括起来
    语法:数据类型 变量名 = 字符串
    案例:
public class Hello{
	public static void main(String[] args){
		String s = "Hello World";
		System.out.println(s);
	}
}

7.数据类型之间的转换

  • 自动类型的提升
    条件:
    1.数据类型互相兼容
    2.小范围数据赋值给大范围数
    两条线:
    byte—>short—>int—>long—>float—>double
    char—>int—>long—>float—>double
    案例:
public class Test{
	public static void main(String[] args){
		byte b = 14;
		int i = b;
		char c = 'A';
		i = c;
		System.out.print(i);
	}
}
  • 强制类型转换:
    条件:
    1.数据类型互相兼容
    2.大范围数据赋值给小范围数据
    语法:
    原数据类型 变量名1 = 变量值;
    目标数据类型 变量名2 = (目标数据类型)变量名1;
    案例1:
public class Test{
	public static void main(String[] args){
		int i = 128;
		byte b = (byte)i;
		System.out.print(i);
	}
}

案例2:

public class Test{
	public static void main(String[] args){
		float f =12.5F;
		int i = (int)f;
		System.out.print(i);
	}
}

注意:小数类型转换成整数类型,直接将小数点后的部分舍去。
总结:强制类型转换会损失精度。

表达式

1.概念:由变量、 运算符和字面值组成的一个式子,每一个表达式都有一个值
在表达式计算中也存在数据类型转换
规则:
1.如果有一个double 结果提升为double
2.如果有一个float 结果提升为float
3.如果有一个long 结果提升为long
4.其他情况都为int

运算符

1.算术运算符: +、-、*、/(取商的值)、%(取余的值)
注意:字符串连接符号“+”
当字符串和其他变量或字面值用“+”连接时,字符串左右的值都会以字符串的形式和这个字符串连接
案例:

public class Hello{
	public static void main(String[] args){
		String s = "班日后必定辉煌";
		
		System.out.println(3+4+s);//7班日后必定辉煌
		System.out.println(s+3+4);//班日后必定辉煌34	
	}
}

2.赋值运算符:=、+=、-=、*=、/=、%=
案例1:

public class Hello{
	public static void main(String[] args){
		int a = 3;
		//a = a+1;//等价于a+=1
		a+=1;
		System.out.println(a);//4
		
	}
}

案例2:
当赋值运算符+=、-=、*=、/=、%=的时候,不回进行类型提升

public class Hello{
	public static void main(String[] args){
		byte b = 5;
		//b = b+1;这是错误的
		//int c = b+1;
		//b = (byte)(b+1);//第二种解决方式
		b+=1;
		System.out.println(b);
		
	}
}

3.自增自减运算符:
++:----> a=+1;
注意:

  • a++和++a都是对a进行加1的操作,没有区别。
  • a–和--a 对于a来说都是在a的基础上减去1的操作

练习:

public class Hello{
	public static void main(String[] args){
		int a = 5;
		int b = (a++)+(--a)+(a--);
		System.out.println(b);//15
		System.out.println(a);//4		
	}
}

4.关系运算符:>、>=、<、<=、!=、==
用关系运算符得出的结果是布尔类型的值 true / false
5.逻辑运算符
& 与:当运算符两边的值都为true 那么这个表达式的值为true,反之为false
&& 短路与
| 短路或
! 非 :!true = = false
          !false = = true
案例:
与和短路的区别

public class Hello{
	public static void main(String[] args){
		int a = 5;
		int b = 4;
		//					false  true
		System.out.println(a<b)&(++a==7);//false
		System.out.println(a);//7
		//			短路与	false直接短路 后边不执行		
		System.out.println((a<b)&&(++a==7));//false
		System.out.println(a);//6
				
	}
}

或和短路或

public class Hello{
	public static void main(String[] args){
		int a = 6;
		int b = 4;
		//					true  false
		System.out.println((a>b)|(++a!=7));//false
		System.out.println(a);//7
		//				   true		
		System.out.println((a>b)||(++a!=7));//true
		System.out.println(a);//6
				
	}
}

6.三元运算符
语法:布尔表达式?值1:值2;
如果布尔表达式的值为true,则表达式的值取1;否则取值2
案例:

public class Hello{
	public static void main(String[] args){
		int a = 4;
		int b = 7;

        int c = a>b?a:b;
        
		System.out.println(c);//7
				
	}
}

7.运算符的优先级

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值