Java_Basis -- 2. 数据类型 + 运算符

1 标识符

简而言之,标识符就是在编程的时候使用到的名字,用于给变量,常量,函数,语句块等命名,命名也要严格遵守以下规则:
1.标识符可以由且由字母,数字,下划线(_),美符($)。
2.标识符不能以数字开头。
3.标识符严格区分大小写,大小写不同,标识的对象也不同 。
4.优雅的标识符是应该见名知意的,能反应出其作用的。

2 关键字

在Java语言中有特殊意义的单词,一共有53个,其中包含两个保留字const和goto,关键字在Java语言以及其他语言中一般是不能够被用作标识符使用的。

123456
charclasscontinuedefaultdodouble
elseextendsfalsefinalfinallyfloat
forifimplementsimportinstanceofint
interfacelongnativenewnullpackage
privateprotectedpublicreturnshortstatic
superswitchsynchronizedthisthrowthrows
transienttruetryvoidvolatilewhile
abstractbooleanbreakbytecasecatch

3 变量

Java语言中的变量指的是可以变化的,具有存储空间抽象的意义,简单来讲就是用来申请内存存储值的。变量的表示结构为:变量类型 变量名 变量值

int age = 100;
String name = "MTingCat"

3.1 变量的命名

1.变量名唯一,不能重复
2.变量名不能使用java语言关键字
3.变量名必须是一个有效的标识符
4.变量名也要遵循驼峰命名法

3.2 变量的初始化

1.在声明的同时初始化: int age = 20;
2.先声明再初始:int age; age = 20;
注意事项:变量在初始化之前必须先声明,变量在使用之前必须先初始化才能使用(局部变量),数据类型必须匹配。

3.3 变量的访问

在变量中存储数据,可以对其进行赋值,更改等操作,并且变量的操作必须和数据类型相匹配。

3.4 变量的作用域

从变量的声明开始到定义它最近的括号而结束,并且重叠的作用域内不允许出现变量重复命名。

4 数据类型

在Java语言中数据类型有两大类,即***基本数据类型和引用数据类型***,基本数据类型可简化为***四类八种***
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qisYMWZI-1599002402490)(/img/bVbMeYH)]

byteshortintlongcharfloatdoubleboolean
字节数1248248
范围-128-127-215~215-1-231-231-1-263-263-10~65535-3.4*1038-3.4*1038-1.7*10308-1.7*10308
默认值0000l或0L\u0000 ‘’ 空0.0f或0.0F0.0dfalse
存在包java.langjava.langjava.langjava.langjava.langjava.langjava.langjava.lang

4.1 基本类型

4.1.1 整型
4.1.1.1 byte

1.字节:1个字节
2.范围:-128~127
3.默认值:(byte)0

4.1.1.2 short

1.字节:2个字节
2.范围:-32768~32767
3.默认值:(short)0

4.1.1.3 int

1.字节:4个字节
2.范围:-231-231-1
3.默认值:0

4.1.1.4 long

1.字节:8个字节
2.范围:-263-263-1
3.默认值:0l或0L

4.1.1.5 注意事项

1.整型超出范围后会发生溢出,正数过大变负数,负数过小变正数。
2.整数相除,会舍弃小数部分(不是四舍五入)结果还是整数。

4.1.2 浮点型
4.1.2.1 float

1.字节:4个字节
2.范围:-3.41038-3.4*1038*
3.默认值:0.0f或0.0F

4.1.2.2 double

1.字节:8个字节
2.范围:-1.710308-1.7*10308*
3.默认值:0.0d

4.1.2.3 注意事项

如果我们需要精确计算浮点数优先选择double,想要更加精确的浮点数计算可以选择BigDecimal类来实现。

4.1.3 字符型
4.1.3.1 char

1.字节:2个字节
2.范围:0-65535,字符‘ ’采用Unicode的字符编码,16进制的写法。
3.默认值:\u0000 ‘’ 空

4.1.3.2 注意事项

一个char只能存储一个字符。

4.1.4 布尔型
4.1.4.1 boolean

1.字节:1个字节
2.取值:只允许取值 true或false
3.默认值:false

4.1.5 测试代码
package com.mtingcat.javabasis.datetype;
/**
 * 本类是用来测试各个数据类型的大小的类
 * @author MTing
 *
 */
public class testDateType {

	public static void main(String[] args) {
		/**
		 * 整型
		 */
		System.out.println("========Byte==========");
		System.out.println("字节数:" + Byte.BYTES);
		System.out.println("位数:" +Byte.SIZE);
		System.out.println("最小值:" + Byte.MIN_VALUE);
		System.out.println("最大值:" + Byte.MAX_VALUE+"\n"); 
		
		System.out.println("========short==========");
		System.out.println("字节数:" + Short.BYTES);
		System.out.println("位数:" + Short.SIZE);
		System.out.println("最小值:" + Short.MIN_VALUE);
		System.out.println("最大值:" + Short.MAX_VALUE+"\n");
		
		System.out.println("========Integer==========");
		System.out.println("字节数:" + Integer.BYTES);
		System.out.println("位数:" + Integer.SIZE);
		System.out.println("最小值:" + Integer.MIN_VALUE);
		System.out.println("最大值:" + Integer.MAX_VALUE+"\n");
		
		System.out.println("========Long==========");
		System.out.println("字节数:" + Long.BYTES);
		System.out.println("位数:" + Long.SIZE);
		System.out.println("最小值:" + Long.MIN_VALUE);
		System.out.println("最大值:" + Long.MAX_VALUE+"\n");
		
		/**
		 * 浮点型
		 */
		System.out.println("========Float==========");
		System.out.println("字节数:" + Float.BYTES);
		System.out.println("位数:" + Float.SIZE);
		System.out.println("最小值:" + Float.MIN_VALUE);
		System.out.println("最大值:" + Float.MAX_VALUE+"\n");
		
		System.out.println("========Double==========");
		System.out.println("字节数:" + Double.BYTES);
		System.out.println("位数:" + Double.SIZE);
		System.out.println("最小值:" + Double.MIN_VALUE);
		System.out.println("最大值:" + Double.MAX_VALUE+"\n");
		/**
		 * 字符型
		 */
		System.out.println("========Character==========");
		System.out.println("字节数:" + Character.BYTES);
		System.out.println("位数:" + Character.SIZE+"\n");
		/**
		 * 布尔类型
		 */
		System.out.println("========Character==========");
		System.out.println("值:" + Boolean.FALSE);
		System.out.println("值:" + Boolean.TRUE);
	}

}

4.2 引用数据类型

除了以上四类八种之外其他的都是引用数据类型,默认值是null,引用类型是一个对象类型,它的值指向空间地址的引用,即地址,所指向的内存中保存着变量所表示的一个值或一组值。

4.4 数据类型之间的转换

数据类型之间的转化根据字面意思是把不同的数据进行转换,但是其底层本质是数据存储空间大小的变换,涉及数据精度的增减。

4.4.1 自动类型转化(隐式类型转换)

1即小类型到大类型的转化,可以直接赋值
byte–short–int–long–float–double
char–

4.4.2 强制类型转换

1.强制类型转换时,大类型的值强制转换为小的数据类型,如果大的数据类型的值超出小类型的范围,那么会发生溢出现象,应该避免强制造成的溢出问题。
2.byte、short、char在做运算时会先转换为int类型再去做运算。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBN0Q5QD-1599002402495)(/img/bVbMf2d)]

4.4.3 测试代码
package com.mtingcat.javabasis.datetype;

public class testDateTypeChanged {
	
	byte b;
	short s;
	int i;
	long l;
	float f;
	double d;
	
	double d1 = f;
	float f1 = l;
	long l1 = i;
	int i1 = s;
	short s1 = b;
	
	byte b1 = (byte)s;
	short s2 = (short)i;
	int i2 = (int)l;
	long l2 = (long)f;
	float f2 = (float)d;	
}

5 运算符

5.1 算数运算符

内容:+,-,*,/,%,++,–
1.整数相除得整数,小数部分舍去 例:3/2=1
2.%:取余(取模) 余数为0时–整除
3.++:自增1
4.–:自减1

System.out.println("=======算数运算符========");
		int a = 10;
		int b = 9;
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("a + b = "+(a+b));
		System.out.println("a - b = "+(a-b));
		System.out.println("a * b = "+(a*b));
		System.out.println("a / b = "+(a/b));
		System.out.println("a % b = "+(a%b));
		System.out.println("++a = "+(++a));
		System.out.println("a++ = "+(a++));
		System.out.println("--b = "+(--b));
		System.out.println("b-- = "+(b--));

5.2 关系运算符

内容:<,> ,<=,>=,==,!=
关系运算符的结果是布尔类型,即非false则true

System.out.println("=======关系运算符========");
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("a>b\t"+(a>b));
		System.out.println("a<b\t"+(a<b));
		System.out.println("a>=b\t"+(a>=b));
		System.out.println("a<=b\t"+(a<=b));
		System.out.println("a==b\t"+(a==b));
		System.out.println("a!=b\t"+(a!=b));	
		

5.3 逻辑运算符

内容:&&,||,!,&,|,^
1.建立在关系运算符的基础之上,运算的结果也是boolean型
2.&&:短路与,一假则假全真则真,当&&左边为false时会发生短路。
3.||:短路或,一真则真全假则假,当||左边为true时会发生短路。
4.&非短路与 和 |非短路或 运算的结果和&& ||是一样的,但是不会有短路现象,所以产生的结果可能不一样。
5.!:非 非真则假 非假则真
6.^: (逻辑异或)全假为假,一真为真

ABA&&BAllB!AA&BAlBA^B
truetruetruetruefalsetruetruefalse
truefalsefalsetruefalsefalsetruetrue
falsetruefalsetruetruefalsetruetrue
falsefalsefalsefalsetruefalsefalsefalse
System.out.println("=======逻辑运算符========");
		boolean A = true;
		boolean B = false;
		System.out.println("A\t"+A);
		System.out.println("B\t"+B);
		System.out.println("A&&B\t"+(A&&B));
		System.out.println("A||B\t"+(A||B));
		System.out.println("!B\t"+(!B));
		System.out.println("A&B\t"+(A&B));
		System.out.println("A|B\t"+(A|B));
		System.out.println("A^B\t"+(A^B));

5.4 三元运算符

也叫三目运算符
boolean?a:b

System.out.println("=======三目运算符========");
		System.out.println("A\t"+A);
		System.out.println("B\t"+B);
		System.out.println("A?1:2\t"+(A?1:2));
		System.out.println("B?1:2\t"+(B?1:2));

5.5 位运算符

内容:&,|,~,^,>>,>>>,<<
1.& | ~ ^表示的值是布尔类型的true或者false
2.>>和>>>是把数据对应的二进制补码向右移动,高位填高位和高位填零的操作
3.<<表示把数据二进制补码向左移动,低位填零的操作

符号含义
a>>3带符号右移符,a向右移动三位,如果是正数,在高位补0,如果是负数,在高位补1
a>>>3无符号右移符,a向右移动三位,无论正负都在高位补0
a<<3左移符,a向左移动三位,低位补0
System.out.println("=======位运算符========");
		int c = 8;
		int d = 1;
		int f = -1;
		System.out.println("c&d\t"+(c&d));
		System.out.println("c|d\t"+(c|d));
		System.out.println("~c\t"+(~c));
		System.out.println("~d\t"+(~d));
		System.out.println("c^d\t"+(c^d));
		System.out.println("f>>3\t"+(f>>3));
		System.out.println("f>>>3\t"+(f>>>3));
		System.out.println("c<<3\t"+(c<<3));

5.6 赋值运算符

内容:=,+=,-= ,*=,/=
优先级最低

System.out.println("=======赋值运算符========");
		int v = 1;
		int t = 10;
		System.out.println("v="+v);
		System.out.println("t="+t);
		System.out.println("v+=t\t"+(v+=t));
		System.out.println("v-=t\t"+(v-=t));
		System.out.println("v*=t\t"+(v*=t));
		System.out.println("v/=t\t"+(v/=t));

5.7 字符连接运算符

内容:+
1.若+两边为基本数据类型 ,做加法运算。
2.若一边为字符串(String) " " 就做字符串与另一边的连接运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值