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
每个运算符都有一定的优先级,这里建议通过加小括号,来增加可读性。
总结
通过对数据类型和运算符的基本了解,可以自己去做一些数据的操作,来了解实现的原理,提高对数据运算的认识。
如果这篇文章对您有帮助,请点波关注,关注又可以让我秃头了😄😄。