Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
一、数据类型
1.1首先要了解数据类型
1.2 数据类型占用的空间
数据类型 | 占用空间 | 备注 |
byte | 1B | -2^7~2^7-1(-128-127) |
short | 2B | -2^15~2^15-1(-32768-32767) |
int | 4B | -2^31~2^31-1 |
long | 8B | -2^63~2^63-1 |
float | 4B | -3.403*10^38~3.403*10^38 |
double | 8B | -1.798*10^308~1.798*10^308 |
boolean | ---- | ture/false |
char | 4B | 0~65535 |
二、运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
2.1
算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。
运算符 | 描述 | |
二元运算符 | + | 可以进行加法运算和字符串的拼接 |
- | 减法运算 | |
* | 乘法运算 | |
/ | 除法运算,整数之间除法运算结果仍然是整数 | |
% | 求余数 | |
一元运算符 | num++ | 自增运算,先返回值,再加1 |
++num | 自增运算,先加1,再返回值 | |
num-- | 自减运算,先返回值,再减1 | |
--num | 自减运算,先减1,再返回值 |
2.2
赋值运算符
运算符 | 描述 |
= | 将右边的值赋值给左边 |
+= | num+=5等于num=num+5 |
-= | num-=5等于num=num-5 |
*= | num*=5等于num=num*5 |
/= | num/=5等于num=num/5 |
%= | num%=5等于num=num%5 |
2.3
关系运算符
运算符 | 描述 |
---|---|
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |
2.4
位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。
操作符 | 描述 |
---|---|
& | 如果相对应位都是1,则结果为1,否则为0 |
| | 如果相对应位都是 0,则结果为 0,否则为 1 |
^ | 如果相对应位值相同,则结果为0,否则为1 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |
2.5
逻辑运算符
操作符 | 描述2.6 |
---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
2.6
三元运算符(?:)
三元运算符也被称为条件运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
语法格式:
条件表达式?表达式1:表达式2;
2.7
Java运算符优先级
优先级 | 类别 | 操作符 | 关联性 |
---|---|---|---|
1 | 括号 | () | 左到右 |
2 | 正负号 | +、- | 从左到右 |
3 | 一元运算符 | ++、--、! | 从右到左 |
4 | 乘除 | * 、/、% | 左到右 |
5 | 加减 | + 、- | 左到右 |
6 | 移位运算 | >> 、>>>、 << | 左到右 |
7 | 比较大小 | > 、<、>=、 <= | 左到右 |
8 | 比较是否相等 | == 、 != | 左到右 |
9 | 按位与运算 | & | 左到右 |
10 | 按位异或运算 | ^ | 左到右 |
11 | 按位或运算 | | | 左到右 |
12 | 逻辑与运算 | &&、& | 左到右 |
13 | 逻辑或运算 | | |、| | 左到右 |
14 | 三元运算符 | ?: | 从右到左 |
15 | 赋值运算符 | = | 从右到左 |
三、Java——程序控制流程总结
程序控制流程分为三大流程:
-
选择结构
-
循环结构
3.1选择结构
3.1.1 、if语句
if判断语句是Java中最基本也是最常用的流程控制语句之一,if语句是选择结构的代表,程序执行到if语句后会判断,若if1为真,则执行1;否则进入语句二判断……一个if语句后可以有0个或者多个else if 语句,也可以有0个或者多个else语句。语法格式:
if(条件表达式1){
//代码块1
}
else if(条件表达式2){
//代码块2
}
……
3.1.2 switch语句
switch语句也是选择结构,用于做一些精确值的判断,switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。语法格式如:
switch(变量){
case 值1:
代码块1;
break;
.
.
.
default:
代码块n;
break;
}
3.2.1 for语句
for循环:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。语法格式:
for(循环初始化表达式;循环表达式;循环后的操作表达式)
{
//循环体
}
3.2.2 while语句
while循环
while是最基本的循环,语法格式:
while (条件) {
// 循环体
}
3.2.3 do…while语句
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
结构为:
do {
// 循环体
} while(条件);
四、数组
4.1 数据的介绍
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的同类型元素。语法格式:
方式一:
数据类型[] 数组名 =new 数据类型 [数组长度];//最常用的方法
方式二:
数据类型[] 数组名 =new 数据类型 []{元素1,元素2,……};
方式三:
数据类型[] 数组名 ={元素1,元素2,……};
4.2 数组的常见操作
4.2.1 通过索引操作元素
4.2.2 数组的遍历:
遍历数组是指逐个访问数组中的所有元素,通常使用循环来实现。在 Java 中,常用的循环有 for
循环和 foreach
循环。foreach循环,又称作增强for循环。
foreach语法格式:
for(数据类型 变量:数组){
System.out.println(变量);
}
4.3.1 二维数组
二维数组是最常见的多维数组,它可以看作是一个表格,有行和列。在 Java 中,二维数组的声明和初始化如下:
数据类型[][] 数组名=new 数据类型[m][n];