-
1. eclipse 操作
-
2. 数组 定义和概述
-
3. 数组 静态初始化和动态初始化
-
4. 获取数组长度 和 遍历数组
-
5. 不同类型数组的默认值
-
6. 数组的内存解析
-
7. 多维数组
-
8. 二维数组获取长度 和 遍历数组
-
9. 多维数组的默认值
-
10. 二维数组的内存解析
-
11. 数组赋值
-
12. 数组的复制
-
13. 数组算法 线性查找
-
14. 数组算法 二分法查找
-
15.排序 算法的优劣
-
16. 冒泡排序
-
17. 快速排序
-
18. Arrays数组工具类
===========================================================================
官方下载eclipse.
修改字符集utf8,设置字体格式等。
alt + / 可以自动填充代码。 像下面的都可以直接操作。
-
main => 对应main函数。
-
syso => 对应System.out.println();
导入已有的项目工程
导入的项目工程,可能会出现乱码情况(字符集问题)。正常情况下,windows系统默认是GBK,这里转为了utf8肯定乱码。因此,我们可以通过notepad++,给他转为utf8格式再导入。
隐藏关闭项目
我们在ctrl+鼠标左键,查看源码,可能需要先关联源码(attach source),配置如下:
设置注释内容,例如:作者,版本,创建时间等等。
=========================================================================
数组定义:
数组注意事项:
-
数组本身是引用数据类型。
-
数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
-
数组的长度一旦确定,就不能修改了。
===============================================================================
数组静态初始化如下:
public static void main(String[] args) {
int[] ids;
ids = new int[]{1,2,3,4,5,6};
//静态初始化,就是数组的初始化和数组元素的赋值操作同时进行了。
}
数组动态初始化如下:
public static void main(String[] args) {
String[] str = new String[5];
//动态初始化,数组的初始化和数组元素的赋值操作分开进行
}
==============================================================================
length获取长度,for循环遍历数组。
public static void main(String[] args) {
String[] str = new String[5];
str[0] = “张三”;
str[1] = “张四”;
str[2] = “张五”;
str[3] = “张六”;
str[4] = “张七”;
// 获取第二个字符
System.out.println(str[0].charAt(1));
// 获取长度
System.out.println(str.length);
// 遍历数组
for(int i=0;i<str.length;i++) {
System.out.println(str[i]);
}
}
//三
//5
//张三
//张四
//张五
//张六
//张七
===========================================================================
public static void main(String[] args) {
//int型数组默认为0
int[] in = new int[5];
for(int i=0;i<in.length;i++) {
System.out.print(in[i]);
}
System.out.println();
System.out.println(“******************”);
//short型数组默认为0
short[] sh = new short[5];
for(int i=0;i<sh.length;i++) {
System.out.print(sh[i]);
}
System.out.println();
System.out.println(“******************”);
//float型数组默认为0.0
float[] fl = new float[5];
for(int i=0;i<fl.length;i++) {
System.out.print(fl[i]);
}
System.out.println();
System.out.println(“******************”);
//char型数组默认为0或’\u0000’ ,而非’0’ ,这里默认不显示的!!
char[] ch = new char[5];
for(int i=0;i<ch.length;i++) {
System.out.print(“----”+ch[i]+"---- ");
}
if(ch[3] == 0)
System.out.println(“验证是否等于0,是!!”);
System.out.println(“******************”);
//boolean类型数组默认是false
boolean[] bool = new boolean[5];
for(int i=0;i<bool.length;i++) {
System.out.print(bool[i]+" ");
}
System.out.println();
System.out.println(“******************”);
//String类型数组默认为null
String[] str = new String[5];
for(int i=0;i<str.length;i++) {
System.out.print(str[i]+" ");
}
System.out.println();
System.out.println(“******************”);
}
========================================================================
=====================================================================
多维数组,从数组底层的运行机制来看,其实没有多维数组。
多维数组很简单,就是一层一层套。
像二维数组,就可以简单分为外层数据元素和内层数组元素。
public static void main(String[] args) {
//二维数组的静态初始化
int[][] arr = new int[][] {{1,2,3},{4,5},{7,8}};
//二维数组的动态数组化
String[][] arr1 = new String[3][2];
String[][] arr2 = new String[3][];
//这里注意,前面的数字3必须写,后面可以不用写,这就可以当成一个一维数组来看。
//String[][] arr3 = new String[][3]; //这就是错误的!!!!
}
================================================================================
public static void main(String[] args) {
//二维数组的静态初始化
int[][] arr = new int[][] {{1,2,3},{4,5},{7,8}};
//对于arr而言,length 其实就是查看里面有几个数组
System.out.println(arr.length); // 3
//对于arr[1]而言,length就是查看第二个数组arr[1]的长度为多少
System.out.println(arr[1].length); //2
System.out.println(“***********”);
//遍历二维数组
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j] + “,”);
}
System.out.println();
}
}
// 3
// 2
// ***********
// 1,2,3,
// 4,5,
// 7,8,
=========================================================================
其实和上面的数组默认值是一样的。只不过这里注意的是像arr[0],这是返回的地址!!!
public static void main(String[] args) {
int[][] arr = new int[4][3];
//arr[0]的默认值是一个地址
System.out.println(arr[0]); //[I@7d6f77cc , 这里解释一下I,意思就是int型!
//int型的arr[0][0]的默认值为0
System.out.println(arr[0][0]); // 0
//像这种没有列只有行的,就是null了
double[][] arr = new double[4][];
System.out.println(arr[0]); //null
}
===========================================================================
其实就是一个arr1总地址,arr1[0]保存arr1[0]数组的地址信息,一次类推。
此外数组的写法还有一下几种形式:
======================================================================
对于赋值而言,array2并不是复制了一份array1,而仅仅指向了和array1相同的地址而已!!
public static void main(String[] args) {
int array1[][] = new int[][] {{1,2,3},{4,5},{6}};
int[][] array2;
array2 = array1;
//array2并不是复制了一份array1,而仅仅指向了和array1相同的地址而已!!
//这一点要记住!!!
}
=======================================================================
使用for循环来进行复制!!!
public static void main(String[] args) {
String array1[][] = new String[][] {{“aa”,“bb”,“cc”}};
String[][] array2 = new String[array1.length][];
//复制array2
for(int i=0;i<array1.length;i++) {
array2[i] = array1[i];
}
//遍历array2
for(int i=0;i<array2.length;i++) {
for(int j=0;j<array2[i].length;j++) {
System.out.print(array2[i][j]+" ");
}
}
}
总目录展示
该笔记共八个节点(由浅入深),分为三大模块。
高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。该笔记将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。
一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。
高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。
篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),麻烦各位转发一下(可以帮助更多的人看到哟!)
由于内容太多,这里只截取部分的内容。
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB
);
}
}
}
总目录展示
该笔记共八个节点(由浅入深),分为三大模块。
高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。该笔记将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。
一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。
高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。
篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),麻烦各位转发一下(可以帮助更多的人看到哟!)
[外链图片转存中…(img-mjKv1ThR-1724304415239)]
[外链图片转存中…(img-FY9r0ege-1724304415240)]
由于内容太多,这里只截取部分的内容。
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB