【数据类型+运算符】Java基本语法上篇

Java基本语法上篇


导读

通过阅读本篇文章,你可以了解如下信息

  • 了解变量和常量的区别,以及变量的生命周期
  • 了解基本的数据类型,以及数据的范围
  • 了解一些基本的运算符,以及使用方法

一、量是什么?

在讲数据类型之前,先理解一下量是什么!

量分为常量变量

其中常量是永远不变的量,它可以表示数值和字符串,并且常量一般用大写来表示,在Java中一般用final来修饰常量(注意:一旦定义不可修改)

final double PI=3.1415;
final String A="a";

常量可以先声明再定义,但是只能定义一次,如

final double PI;
PI=3.1415;

变量分为局部变量和全局变量

局部变量,顾名思义,就是在一个方法块或者一个函数内起作用,超过这个范围,它将没有任何作用。由此可以看出,变量在程序中是随时可以改变的,随时都在传递着数据。

全局变量,明白了局部变量后就不难理解全局变量了,其实它就是比局部变量的作用区域更大的变量,能在整个程序内起作用。

这里就有一个问题,当同时出现全局变量和局部变量的时候,应该以那个为准了?

下面通过实验的方法来进行验证。

public class Demo{
	public static void main(String[] args){
	
	int a=5;

		{//程序块
			int b=6;
			a=6;
			System.out.println("a="+a);
			System.out.println("b="+b);

		}
	
	System.out.println("a="+a);
	//System.out.println("b="+b);

	}
}

结果如下

a=6
b=6
a=6

在程序中添加了一个程序块,可以看出局部变量可以改变全局变量的值,为了验证局部变量的范围,将注释去掉,运行结果如下

Demo.java:15: 错误: 找不到符号
	System.out.println("b="+b);
	                        ^

系统表示没有找到变量b,所以局部变量在脱离程序块的时候就销毁了。


二、数据类型有那些?

Java的数据类型主要包括简单数据类型复杂数据类型

简单数据类型主要包括:字符型、整型、浮点型、布尔型

复杂数据类型主要包括:类、接口、数组

字符型

存储字符的数据类型是字符型,用字母char表示

字符型表示有如下三种方式:

  • 直接通过单个字符来指定字符常量,如’A’、'6’等
  • 通过转义字符表示特殊的字符常量,如’\n’、’\f’等
  • 直接通过Unicode值来表示字符常量,如’\uXXXX’,其中XXXX表示16进制的整数

(注意,都必须用单引号或者双引号括起来)

实例

public class Demo{
	public static void main(String[] args){
	
	char ch1='A';
	char ch2='\\';
	char ch3='\u00ff';
	
	System.out.println("ch1="+ch1);
	System.out.println("ch2="+ch2);
	System.out.println("ch3="+ch3);

	}
}

输出结果为

ch1=A
ch2=\
ch3=ÿ

下面对转义字符进行统计

转义字符描述
\0x八进制字符
\u十六进制Unicode字符
\’单引号字符
\’’双引号字符
\\反斜杠
\r回车
\n换行
\f走纸换页
\t横向跳格
\b退格

整型

byte:

  • byte数据类型是有符号的8位表示的整数
  • 范围-128~127,-27~27-1
  • 默认值为0

short:

  • short数据类型是有符号的16位表示的整数
  • 范围-32768~32767,-215~215-1
  • 默认值0

int:

  • int数据类型是有符号的32位表示的整数
  • 范围-2147483648~2147483647,-231~231-1
  • 默认值0

long:

  • long数据类型是有符号的64位表示的整数
  • 范围-9223372036854775808~9223372036854775807,-263~263-1
  • 默认值0L

浮点型

float:

  • float数据类型是单精度32位的浮点数
  • 默认值0.0f

double:

  • double数据类型是双精度64位的浮点数
  • 默认值0.0d

布尔型

boolean:

  • boolean数据类型表示一位的信息
  • 只有true和false
  • 默认值false

实例


public class Demo{
	public char c;
	public byte b;
	public short s;
	public int i;
	public long l;
	public float f;
	public double d;
	public boolean bl;

	public void pp(){
		System.out.println("char默认值="+c);
		System.out.println("byte默认值="+b);
		System.out.println("short默认值="+s);
		System.out.println("int默认值="+i);
		System.out.println("long默认值="+l);
		System.out.println("float默认值="+f);
		System.out.println("double默认值="+d);
		System.out.println("boolean默认值="+bl);
	}


	public static void main(String[] args){
		Demo d1=new Demo();
		d1.pp();
	

	}
}

实验结果

char默认值=
byte默认值=0
short默认值=0
int默认值=0
long默认值=0
float默认值=0.0
double默认值=0.0
boolean默认值=false

其中char没有默认值哦


三、有那些运算符?

运算符主要有算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符

算术运算符

用来处理数学运算的符号,这是最简单、也最常用的符号。在数字的处理中几乎都会用到算术运算符号,算术运算符可以分为基本运算符、取余运算符和递增或递减运算符等几大类。

操作符描述
+加法-将两侧的数相加
-减法-将左侧的数减右侧的数
*乘法-将两侧的数相乘
/除法-将左侧的数除以右侧的数
%取余-左边的数除以右边的数的余数
++自增-操作数增加1
- -自减-操作数减少1

实例

public class Demo{
	public static void main(String[] args){
		int a=5;
		int b=3;
		int c=6;
		int d=10;
		
		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("d%c="+(d%c));
		System.out.println("a++="+(a++));
		System.out.println("b--="+(b--));
		System.out.println("++c="+(++c));
		System.out.println("--d="+(--d));


	}
}

运行结果

a+b=8
a-b=2
a*b=15
a/b=1
d%c=4
a++=5
b--=3
++c=7
--d=9

特别说明:递增和递减运算符,如果将符号加在变量的前面(如++a),就会使a先自加然后才执行下一步,如果将符号加在变量的后面(如a++),就会先执行程序再自加。

比如实验结果中的a++=5,就是先执行赋值操作然后在自加。

关系运算符

关系运算符是指值与值之间的相互关系,关系运算符会产生一个结果,这个结果是一个布尔值,即true或false。
表格中A为1,B为0

符号描述实例
==等于(A==B)为false
!=不等于(A!=B)为true
>大于(A>B)为true
<小于(A<B)为false
>=大于等于(A>=B)为true
<=小于等于(A<=B)为false

实例

public class Demo{
	public static void main(String[] args){
		int A=1;
		int B=0;
		
		
		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<=B 返回"+(A<=B));
	

	}
}

运行结果

A==B 返回false
A!=B 返回true
A>B 返回true
A<B 返回false
A>=B 返回true
A<=B 返回false

逻辑运算符

下面逻辑运算符的基本运算,假设A为true,B为false

符号描述实例
&&逻辑与运算符,只有当两侧都为真,返回真A&&B返回false
||逻辑或运算符,如果两侧有一个为真,返回真A||B返回true
!逻辑非运算符,如果条件为true返回false!A返回false,!B返回true

实例

public class Demo{
	public static void main(String[] args){
		Boolean A=true;
		Boolean B=false;
		
		System.out.println("A&&B 返回"+(A&&B));
		System.out.println("A||B 返回"+(A||B));
		System.out.println("!A 返回"+(!A));
		System.out.println("!B 返回"+(!B));

	}
}

运行结果

A&&B 返回false
A||B 返回true
!A 返回false
!B 返回true

位运算符

位运算符主要是操作二进制数据,可以直接操作的数据类型包括:byte、char、short、int、long

操作方式如下

位逻辑运算符说明
按位取反
&按位与运算
|按位或运算
^按位异或运算
>>右移
>>>右移并用0填充
<<左移

实例

public class Demo{
	public static void main(String[] args){
		int A=50;    //50=0011 0010
		int B=10;    //10=0000 1010
		int C=0;
		
		C=~A ;       //C=1100 1101
		System.out.println("C=~A ,C="+C);
		            //A  0011 0010
		            //B  0000 1010
		C=A&B ;     //C=  0000 0010
		System.out.println("C=A&B,C="+C);
		            //A 0011 0010
		            //B 0000 1010
		C=A|B ;     //C=0011 1010
		System.out.println("C=A|B ,C="+C);
		            //A 0011 0010
		            //B 0000 1010
		C=A^B ;     //C=0011 1000
		System.out.println("C=A^B ,C="+C);
		C=A << 2;    //C=1100 1000
		System.out.println("C=A << 2,C="+C);
		C=B>>2;      //C=10
		System.out.println("C=B>>2,C="+C);
		C=B>>>2;     //C=0000 0010
		System.out.println("C=B>>>2,C="+C);
			
	

	}
}

运行结果

C=~A ,C=-51
C=A&B,C=2
C=A|B ,C=58
C=A^B ,C=56
C=A << 2,C=200
C=B>>2,C=2
C=B>>>2,C=2

这个左移和右移很有意思,后面会单独出一篇来进行总结😊

条件运算符

条件运算符是一种特殊的运算符,也被称为三目运算符。条件运算符的目的是决定把哪个值赋给前面的变量。在Java语言中使用条件运算符的语法格式如下所示。

变量=(布尔表达式)?为true时所赋予的值:为false时所赋予的值;

实例

public class Demo{
	public static void main(String[] args){
		int A=75;    
		String H=(A>60)?"成绩及格":"成绩不及格";
		System.out.println(H);

	}
}

运行结果

成绩及格

条件运算符和if语句很相似,如果灵活运用可以简化代码

赋值运算符

赋值运算符很等号“=”是一样的,它是将右边的值赋给左边的变量,格式如下。

var=value

每个运算符都有一定的优先级,这里建议通过加小括号,来增加可读性。


总结

通过对数据类型和运算符的基本了解,可以自己去做一些数据的操作,来了解实现的原理,提高对数据运算的认识。

如果这篇文章对您有帮助,请点波关注,关注又可以让我秃头了😄😄。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值