Java变量和数据类型

一.什么是变量?

一个数据存储空间的表示

二.变量的表示

1)变量名

2)变量类型

3)变量值

三.变量的命名规则

1)组成:由字母、数字、下划线“_”、美元符“$”组成

2)不能以数字开头

3)不能是关键字,不能是true/false(布尔值),null之类

4)严格区分大小写,长度不限,坚持见名知意的原则

5)驼峰命名法

四.什么是标识符

凡是可以由自己命名的地方都可以成为标识符

五.什么是关键字

具有特殊意义的词,称之为关键字,如public、static、class

六.九个数据类型


1.八个基本数据类型
1)byte
一个byte类型整数在内存里占8位,范围是-128(-27)~127(27-1)

2)short(不常用)
一个short类型整数在内存里占16位,范围是-32768(-215)~32767(215-1)

3)int
一个int类型整数在内存里占32位,范围是-2147483648(-231)~2147483647(231-1)
最常用的整数类型,整数值默认int类型

4)long
一个long类型整数在内存里占32位,范围是(-263)~(263-1)

5)float(不常用)
单精度浮点数,一个float类型浮点数在内存里占4字节、32位,范围是
1.4E-45(即1.4*10-45) ~ 3.4E+38
定义float类型的变量,必须在数值后面加"f"或"F"
不能精确表示

6)double
双精度浮点数,一个double类型浮点数在内存里占8字节、64位,范围是
4.9E-324 ~ 1.7E+308
浮点类型默认是double类型
不能精确表示,因此无法直接比较两个double类型变量的大小

	for (int i = 1; i < 20; i++) {
			System.out.println(0.369+3.145);
			//运行会发现结果不是3.514
		}


7)char
表示单个字符,定义时必须用单引号括起来

char a = '男';

使用16位Unicode字符集作为编码方式,范围是\u0000(即为 0)~\uffff(即为 65535)

8)boolean
Boolean类型的数值只能是true或false,其他基本数据类型也不能转换成Boolean类型

	static byte a;
	static int b;
	static short c;
	static long d;
	static float e;
	static double f;
	static char g;
	static boolean h;
	static String i;

	public static void main(String[] args) {
		float ab = 2.0F;		
		System.out.println(ab); // 定义float类型的变量,须在数值后面加"f"或"F"
		System.out.println(a); // byte数据类型的默认值为0
		System.out.println(b); // int数据类型的默认值为0
		System.out.println(c); // short数据类型的默认值为0
		System.out.println(d); // long数据类型的默认值为0
		System.out.println(e); // float数据类型的默认值为0.0
		System.out.println(f); // double数据类型的默认值为0.0
		System.out.println(g); // char数据类型的默认值为空
		System.out.println(h); // boolean数据类型的默认值为false
		System.out.println(i); // String数据类型的默认值为null
	}


2.一个引用数据类型

String类型

定义时须用双引号括起来

String a ="床前明月光,疑是地上霜";

七.常量


语法:

final 数类型 变量名 = 变量值;
 final double MATH_PI = 3.14;

注意:
1)常量名通常大写
2)不同分词使用下划线分隔
3)只能被赋值一次,通常定义时即对其初始化

八.数据类型的类型转换

1.自动类型转换
低精度向高精度会自动转换

   低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double

满足自动类型转换的条件:
1)两种类型要兼容
2)数值类型(整型和浮点型)互相兼容
3)目标类型大于源类型:

int before = 5;
double raise = 3.14;
double now = before + raise;	//自动类型转换	int——》double
System.out.println(now);


2.强制类型转换
高精度向低精度需要强转,只保留整数位,精度自动舍弃
强制类型转换时用小括号括起来

	int before = 20;
    double rise = 9.8;
    int now = (int)(before + rise);

九.运算符

1.赋值运算符
语法:

变量类型  变量名 = 表达式;
int sum = num1 + num2;

2.算数运算符
加+  减-  乘*  除/ (相当于除法当中的商) 求余% (相当于除法当中的余数)
加加++ 减减- -:
写在变量前:先变量值加减,后使用变量值
写在变量后:先使用变量值,后变量值加减

复合运算符:
+=  -=  *=  /=  %=

num += 2; --> num = num + 2;

是单个运算符,当数据类型不匹配时不能转换

	short a = 4;
	a += 5; // 编译通过
	a = a + 4; // 编译不通过,类型不匹配

3.关系运算符
==  等于      判断是否相等
!=  不等于    判断不相等
>  大于      判断大于
<  小于      判断小于
>=  大于等于  判断大于等于
<=  小于等于  判断小于等于

注意:> 、< 、>= 、<= 只适用于数值类型判断

4.逻辑运算符
1)短路与:&&  所有表达式都为true,整个表达式才为true,第一个表达式为false,不看第二个表达式
2)短路或:||  有一个表达式为true,整个表达式就为true,第一个表达式为true,不看第二个表达式
3)非:!  取反,表达式为true,则为false
4)不短路与:&  所有表达式都为true,整个表达式才为true,第一个表达式为false,继续后面的表达式
5)不短路非:|  有一个表达式为true,整个表达式就为true,第一个表达式为true,继续后面的表达式
6)异或:^ 两个表达式结果不同时返回true,结果相同时返回false

		int x = 8;
		int y = 9;
		//++在前先加减后使用,前一个表达式为true,继续下一个表达式
		System.out.println((++x == y) && (++x != y));	//x=10
		//++在后先使用后加减,前一个表达式为false,&&运算之后的表达式不再处理,到&&为止
		System.out.println((x++ == y) && (++x != y));	//x=9


5.三元(三目)运算符
语法:

条件表达式 ? 表达式1 :表达式2;

条件表达式为true,结果为表达式1的值,否则为表达式2的值
表达式1或者2的类型必须跟定义变量类型一致

6.运算符的优先级

1)优先级别最低的是赋值运算符
2)可以通过()控制表达式的运算顺序,()优先级最高
3)算术运算符 > 关系运算符 > 逻辑运算符

灵活用法:当不确定优先级的时候,优先选择使用小括号()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值