1、数组
1.1 概念
由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素对应的存储地址。
数组内的元素既可以是基本数据类型,也可以是引用数据类型。
1.2数组的创建
第一种:数据类型[] 数组变量名 = new 数据类型[整数]; 整数为数组长度
new:向堆申请开辟一块新的内存空间
第二种:数据类型[] 数组变量名 = {值1, 值2, 值3, ...}; 数组的长度根据初始化决定
第三种:数据类型[] 数组变量名 = new 数组类型[]{值1, 值2, 值3, ...}
//声明一个长度为2的int数组
int[] nums1 = new int[2];
//初始化一个保存1,2元素的数组
int[] nums2 = new int[] {1, 2};
//初始化一个保存1,2,3,4的数组
int[] nums3 = {1, 2, 3, 4};
注意:数组有定长特性,长度一旦指定,不可更改。
1.3数组的取值,赋值,长度
数组取值:数组通过下标(索引)取值,下标从0开始。
int[] nums = { 10, 20, 30, 40 };
System.out.println(nums[2]); // 30
数组赋值:数组通过下标(索引)赋值/修改值。
int[] nums = { 10, 20, 30, 40 };
System.out.println(nums[2]); // 30
nums[2] = 300;
System.out.println(nums[2]); // 300
数组的长度:通过length属性获取数组长度。
int[] nums = { 10, 20, 30, 40 };
System.out.println(nums.length); // 4
2、运算符
总得来说分为6类:算数运算符、赋值运算符、关系运算符、逻辑运算符(、位运算符、三元运算符。)后面这两个先不分享。
2.1 算数运算符
注意:
- / 运算符取的是商的值,比如int只能取到整数的值,要想取到小数位数要用double或者float, % 运算符取的是结果的余数
- ++和-- 既可以放在变量的后边,也可以放在变量的前边。
- 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
- 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
- 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
2.2 赋值运算符
2.3 关系运算符
注意:
- 关系运算符的结果都是boolean类型,要么是true,要么是false。 千万不要把“==”误写成“=”,"==“是判断是否相等的关系,”="是赋值。
2.3 逻辑运算符
// 非短路
int x = 3;
int y = 4;
System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算
System.out.println(x); // 4
System.out.println(y); // 5
// 短路
int x = 3;
int y = 4;
System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与运算
System.out.println(x); // 4
System.out.println(y); // 4