阿里巴巴国际站官网首页北京三原色ps网站

张小明 2026/1/2 22:46:11
阿里巴巴国际站官网首页,北京三原色ps网站,北京网站建设价钱,兰州网络推广执行目录 一、认识数组 1、数组的概念 2、数组的类型 3、数组在JVM是如何存储 二、一维数组 1、一维数组的定义 1、动态初始化#xff1a; 2、静态初始化#xff1a; 2、一维数组的使用 [1、数组中元素的使用](about:blank#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%…目录一、认识数组1、数组的概念2、数组的类型3、数组在JVM是如何存储二、一维数组1、一维数组的定义1、动态初始化2、静态初始化2、一维数组的使用[1、数组中元素的使用](about:blank#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A01%E3%80%81%E6%95%B0%E7%BB%84%E4%B8%AD%E5%85%83%E7%B4%A0%E7%9A%84%E4%BD%BF%E7%94%A8) [1、通过下标使用](about:blank#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A01%E3%80%81%E9%80%9A%E8%BF%87%E4%B8%8B%E6%A0%87%E4%BD%BF%E7%94%A8) [2、遍历快速访问数组中的每一个元素](about:blank#%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A02%E3%80%81%E9%81%8D%E5%8E%86%E5%BF%AB%E9%80%9F%E8%AE%BF%E9%97%AE%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0) [1、通过循环实现遍历访问每一位元素打印了数组中的每一个元素](about:blank#%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%201%E3%80%81%E9%80%9A%E8%BF%87%E5%BE%AA%E7%8E%AF%E5%AE%9E%E7%8E%B0%E9%81%8D%E5%8E%86%E8%AE%BF%E9%97%AE%E6%AF%8F%E4%B8%80%E4%BD%8D%E5%85%83%E7%B4%A0%EF%BC%88%E6%89%93%E5%8D%B0%E4%BA%86%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%EF%BC%89%EF%BC%9A) [2、直接使用Java中遍历数组的工具](about:blank#%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%202%E3%80%81%E7%9B%B4%E6%8E%A5%E4%BD%BF%E7%94%A8Java%E4%B8%AD%E9%81%8D%E5%8E%86%E6%95%B0%E7%BB%84%E7%9A%84%E5%B7%A5%E5%85%B7)2、数组的运用场景1、保存数据2、作为函数的参数3、作为函数的返回值三、二维数组1、二维数组的定义1、普通二维数组的定义2、不规则二维数组的定义2、二维数组中的使用1、二维数组中元素的使用2、二维数组遍历元素中的每一位四、Arrays中的常用的方法1、数组转字符串1、自定义实现to String方法2、直接使用Arrays中的to String方法2、拷贝拷贝数组时也可以实现扩容1、Arrays中的copyOf方法2、Arrays中的copyOfRange方法3、System.arraycopy方法3、查找1、遍历查找2、二分查找二分查找只能在顺序排序的数组中使用1、自定义实现二分查找2、使用Arrays中的二分查找4、排序1、自定义实现冒泡排序功能2、使用Arrays中的sort()方法实现排序3、实现逆序排序一、认识数组1、数组的概念假设现在你要将一个班的成绩全部进行储存此时若一个一个定义double score190.5; double score294.12; double score387.56; double score494.5; double score588.75; //……此时可以看出一个一个定义过于复杂而且这一组数的数据类型都是一样的此时就可以通过数组来进行定义这一组数据double [] scores{90.5,94.12,87.56,94.5,88.75};用数据便于定义数据类型都一致的大量数据数组的定义数组可以看作是相同类型元素的一个集合在定义大量数据类型一致的数据时可以使用数组进行定义2、数组的类型数组变量是引用类型数据数组变量储存的是第一个数组元素在堆上的地址实际上就是一个16进制的数字3、数组在JVM是如何存储数组变量是存储在栈中的一个十六进制的一个数字这个数字是数组元素中第一个元素的地址数组名和数组元素的关系如下图所示二、一维数组1、一维数组的定义1、动态初始化先表明在内存空间中存储的元素个数先开辟一部分空间再对这部分的空间进行使用开辟空间的大小由数组中存储的元素个数和定义的数组是什么元素类型所共同决定的int [] arraynew int[5];//表明在内存空间中申请了一个长度为5的空间20个字节 String [] array1 new String[3]; //一个可以容纳三个字符串的数组2、静态初始化在为这个数组开辟空间的同时对其中的空间进行赋值int [] array{1,2,3,4,5,6}; //或者是int [] arraynew int[]{1,2,3,4,5,6}; //注在生成数组对应的空间时如果对其进行了赋值则不能在等号右端指定元素的个数 //电脑会自动查询元素个数 String[] arrayhello;2、一维数组的使用1、数组中元素的使用1、通过下标使用数组中的元素在堆中的存储空间是连续的此时若要访问数组中的某一个元素可以通过下标进行访问数组中的元素对应的下标都是从0开始的如上图中使用的scores数组对应的下标此时可以通过下标访问数组中的每一个元素对其进行更改或者赋值等操作如scores[0]96.5;//将数组中为0下标的元素赋值更改成了96.5 System.out.println(scores[0]);//打印了数组中下标为0的元素 //……2、遍历快速访问数组中的每一个元素遍历数组——即对数组中的每一位元素进行某种操作例如打印等1、通过循环实现遍历访问每一位元素打印了数组中的每一个元素int[] scoresnew int[]{1,2,3,4,5,}; int lenarr.length;//可以运用数组名.lence的形式计算数组长度类似于C语言中的strlen,计算其中的元素个数 System.out.println(数组的长度len); for (int i 0; i len; i) { System.out.print(arr[i] ); }2、直接使用Java中遍历数组的工具int []arrnew int[]{1,2,3,4,5,}; //这个循环遍历数组将数组中的每一个元素都放到y中去 for (int y:arr){ System.out.print(y ); }注意数组元素的访问不能超过数组的访问界限即有n个元素则只能访问到以n-1为下标的元素否则编译器会报下标越界异常ArrayIndexOutOfBoundsException2、数组的运用场景1、保存数据数组在Java中可以用于保存数据类型一样的大量数据例如上述的用于保存一个班的成绩double [] scores{90.5,94.12,87.56,94.5,88.75};2、作为函数的参数在Java中数组也可以作为函数的参数进行传递本质上是对数组中首元素的地址进行传递例如写一个arrayPrint方法实现打印数组中的所有元素的功能public static void arrayPrint(int[] arr){ for (int i 0; i arr.length; i) { System.out.println(arr[i]); } } public static void main(String[] args) { int[] arraynew int[]{1,2,3,4,5}; arrayPrint(array);//数组传参是传的是堆中存放元素的地址 //但在本质上还是传的数组中所指向的对象数组中的元素 }注也可以使用上述的遍历的方法实现打印public static void arrayPrint(int[] arr){ for (int i arr) { System.out.println(i ); } } public static void main(String[] args) { int[] arraynew int[]{1,2,3,4,5}; arrayPrint(array);//数组传参是传的是堆中存放元素的地址但在本质上还是传的数组中所指向的对象数组中的元素 }3、作为函数的返回值在Java中可以直接将一个数组作为函数的返回值//返回一个数组,在C语言中不能返回多个数但在Java中可以通过返回一个数组来返回多个返回值 public static int[] fun1(){ int a10; int b20; int[] arrnew int[]{a,b}; return arr; } public static void main(String[] args) { int[] arrfun1(); String s Arrays.toString(arr); System.out.println(s); }三、二维数组1、二维数组的定义1、普通二维数组的定义普通二维数组的定义方法和一维数组的类似也有动态初始化和静态初始化也可以在定义时直接赋值2//二维数组定义 public static void main(String[] args) { int[][] array{{1,2,3},{4,5,6}}; // 行列 int[][] array1new int[2][3]; int[][] array2new int[][]{{1,2,3},{4,5,6}}; System.out.println(array); System.out.println(array.length); // array存放的是地址地址指向的是两个一维数组的地址 System.out.println(array[0]); System.out.println(array[0].length); //System.out.println(Arrays.toString(array[0])); }注1、二维数组中可以通过行和列来理解例如上述举例的array1中int[2][3]表示定义了一个两行三列的数组一共是6个整数储存在这个数组中2、二维数组的本质也是一维数组只不过每一个二维数组的元素都算作是一个一维数组例如定义了一个二维数组array1其中存储了两行三列的数据{123}{456}举例中的地址是随便编的实际地址格式并不是这样的2、数组名.length 可以用来计算数组的行数例如array.length计算的是数组名为array的数组的行数public static void main(String[] args) { int[][] array{{1,2,3},{4,5,6}}; System.out.println(array.length); }例如上述代码定义了一个两行三列的数组其array.length打印出来的结果是23、数组名[a].length 假设定义了一个m行n列的数组则计算列数时,a可以取从0到m-1的任意整数值 可以用来计算二维数组的列数2、不规则二维数组的定义不规则二维数组指的是那些没有在定义时没有确定列的二维数组可以理解为可以确定一个二维数组中有多少个一维数组但是每一个一维数组中的元素个数可以不同或者说不知道是多少例如//不规则二维数组的定义 //二维数组在定义时可以省略列但是不能省略行与C语言恰好相反 public static void main13(String[] args) { int[][] arraynew int[2][]; array[0]new int[3]; array[1]new int[5]; //定义了一个两行的不规则数组第一行有3列第二行有5列 }注不规则二维数组定义时只能省略数组的列不能省略数组的行与C语言的恰好是相反的且要定义不规则的二维数组只能是先定义一个二维数组中所包含的一维数组的个数然后再分别规定一维数组中的元素个数例如一个两行第一行三列第二行五列的二维数组的空间分布2、二维数组中的使用1、二维数组中元素的使用二维数组中元素的使用和一维数组类似都是通过下标进行访问数组中的元素的值public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; System.out.println(array1[1][4]); System.out.println(array1[0][2]); }特别注意在对不规则的二维数组进行访问其中的元素时一定要特别注意不要越界访问如不关注每一行的列数然后直接进行访问可能就会导致越界访问错误public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; System.out.println(array1[1][4]); System.out.println(array1[0][4]); }![](https://i-blog.csdnimg.cn/direct/dc4b527449584e9d8cf6dba7002b4b5f.png)此处的第二个打印是打印第一行中的第五列的元素但是第一行中只有三列此时进行访问第五列就会出现越界访问的错误2、二维数组遍历元素中的每一位1、使用双循环法遍历数组中的每一位注第一层循环是指的是二维数组的行数第二层循环是指的是二维数组的列数public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; for (int j 0; j array1.length; j) { //循环行 for (int i 0; i array1[j].length; i) { //循环列 System.out.print(array1[j][i] ); } System.out.println(); } }注不能直接使用一层循环打印二维数组中的元素因为二维数组中的元素是地址一维数组中首个元素的地址2、使用循环法加Java中的遍历工具注在第一层的循环仍然是二维数组的行数第二层的for each循环是打印的存在二维数组中一维数组中的元素public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; for (int i 0; i array1.length; i) { //行数 for (int y:array1[i]) { System.out.print(y ); } System.out.println(); } }注同样不能直接使用for each循环来遍历二维数组如public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; for (int[] y:array1) { System.out.println(y); } }不然会直接遍历二维数组中的元素而二维数组中的元素是一维数组即是一维数组中首个元素的地址四、Arrays中的常用的方法1、数组转字符串1、自定义实现to String方法1、一维数组可以通过访问一维数组的下标遍历打印一维数组从而实现和to String类似的效果如使用for循环实现打印一个一维数组arrays1中的元素仿造to String方法的效果public static void main(String[] args) { int[] array1new int[]{4,5,6,7,8}; System.out.print([); for (int i 0; i array1.length-1; i) { System.out.print(array1[i], ); } System.out.print(array1[array1.length-1]); System.out.println(]); }2、二维数组同理二维数组也可以通过访问下标的方法实现和to String类似的效果public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; System.out.print([); for (int i 0; i array1.length; i) { //行 System.out.print([); for (int j 0; j array1[i].length-1; j) { System.out.print(array1[i][j], ); } System.out.print(array1[i][array1[i].length-1]); System.out.print(]); } System.out.println(]); }注实现遍历时注意最后一个元素的打印不同之前的格式之前的元素打印都是打印完这个元素之后再在其后加一个逗号和一个空格2、直接使用Arrays中的to String方法1、一维数组在Arrays包中会有将数组直接转化为字符串的方法可以使用Arrays中的方法直接将数组转化为字符串注意但是在使用Arrays中的方法前需要导入Arrays包在代码的最前方写上import java.util.Arrays;如图public static void main(String[] args) { int[] arraynew int[]{1,2,3,4,5,6}; System.out.println(Arrays.toString(array)); }2、二维数组二维数组中存的是一维数组的数组名而一维数组名表示的是一维数组首个元素的地址二维数组本质上存的是地址所以不能直接使用不然to String方法会将二维数组中的元素变成变成字符串将那些地址变成字符串如public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; System.out.println(Arrays.toString(array1)); }此时需要深度to String在toString方法前加上一个deep如public static void main(String[] args) { int[][] array1new int[][]{{1,2,3},{4,5,6,7,8}}; System.out.println(Arrays.deepToString(array1)); }2、拷贝拷贝数组时也可以实现扩容1、Arrays中的copyOf方法public static void main(String[] args) { int[] array{1,2,3,4,5}; int[] newArrayArrays.copyOf(array,3); // 拷贝的数组新数组的长度 System.out.println(Arrays.toString(newArray)); }注意1、copyOf中的长度是从左往右进行计算的如上面拷贝的array只拷贝了前三个元素2、如果长度超过被拷贝的数组的个数其会自动在后边补0实现了扩容的功能public static void main(String[] args) { int[] array{1,2,3,4,5}; int[] newArrayArrays.copyOf(array,8); // 拷贝的数组新数组的长度 System.out.println(Arrays.toString(newArray)); }![](https://i-blog.csdnimg.cn/direct/ac72c05c143f4cdcbc11d0ba0664f73d.png)2、Arrays中的copyOfRange方法1、起始和结束时的范围是左开右闭的如下面的例子的下标范围就是[2,4)public static void main(String[] args) { int[] array{1,2,3,4,5}; int[] newArrayArrays.copyOfRange(array,1,3); // 拷贝的数组 起始拷贝的下标结束拷贝的下标注下标范围是[2,4) System.out.println(Arrays.toString(newArray)); }2、如果超过了原数组的范围其会自动添0替代public static void main(String[] args) { int[] array{1,2,3,4,5}; int[] newArrayArrays.copyOfRange(array,4,8); // 拷贝的数组 起始拷贝的下标结束拷贝的下标注下标范围是[4,8) System.out.println(Arrays.toString(newArray)); }3、System.arraycopy方法public static void main(String[] args) { int[] array{1,2,3,4,5}; int[] newArray new int[array.length]; System.arraycopy(array,2,newArray,1,2); // 拷贝的数组 起始拷贝下标拷贝到哪一个数组放在新数组的哪一个下标位置开始拷贝原数组的长度 System.out.println(Arrays.toString(newArray)); }注意1、System.arraycopy方法所包含的参数相对较多在使用时要先得知每一个参数的作用再使用2、System.arraycopy方法在使用时应当先创建一个新的数组才能将原数组拷贝到这个新的数组中去3、新数组没有定义的内容会自动补03、查找1、遍历查找遍历数组中的每一个元素进行查找向要的值优点是逻辑简单缺点是不够效率public static int Find(int[] array1,int key){ for (int i 0; i array1.length; i) { if (array1[i]key) return i; } return -1; } public static void main(String[] args) { int[] array{1,2,3,4,5}; int key4; int nFind(array,key); if(n-1) System.out.println(key不在数组中); else System.out.println(key在数组中的下标为n); }2、二分查找二分查找只能在顺序排序的数组中使用1、自定义实现二分查找自定义实现二分查找的关键在于判断需要查找的值和顺序排序的数组中的中间值的大小关系一次刷掉一半的值如此循环这个过程直到找出所需查找的值大大提升了代码的效率public static int binarySearch(int[] array, int key){ int i0; int jarray.length-1; //循环判断所需查找的值和数组中位数的大小关系 //一次筛选了一半的值 while(ij){ int mid(ij)/2; if(keyarray[mid]) imid1; else if (keyarray[mid]) jmid-1; else return mid; } return -1; } public static void main(String[] args) { int[] array{1,2,3,4,5}; int key4; int nbinarySearch(array,key); if (n-1) System.out.println(key不在数组中); else System.out.println(key在数组中的下标是n); }2、使用Arrays中的二分查找同时在Arrays中提供了实现二分查找的方法——binarySearch方法其实现的功能是在binarySearch方法中输入两个参数第一个参数指定在哪一个数组中进行查找第二个参数指定所需要查找的关键词binarySearch方法会返回其在数组中对应的下标注意如果所需要查找的数在数组中不存在则返回的是-所需查找的数在数组中对应的排序位public static void main(String[] args) { int[] array{1,2,5,7,8}; int key5; int nArrays.binarySearch(array,key); // 要查找的数组元素的下标(注若该数不在数组中返回的是-(将key放入数组的排序位)) System.out.println(n); }4、排序1、自定义实现冒泡排序功能冒泡排序的核心在于每次比较数组中的两个数的大小如果大于或小于则交换位置按照这样的方法可以确定参与比较的数中的最大值或最小值按照这个方法可以依次确定数组中的第一大第二大第三大……从而实现排序的功能而这样的方法相当于每次冒出了一个最大值或者最小值冒n-1次假设这个数组中有n个元素后这个数组就变得有序了public static void bubbleSort(int[] array){ for (int i 0; i array.length - 1; i) { //总共需要冒泡的次数 boolean ntrue; //起始的n置为true for (int j 0; j array.length - 1 - i; j) { //单次冒泡时遍历还没有确定位置的数据 if(array[j1]array[j]){ int temparray[j]; array[j]array[j1]; array[j1]temp; nfalse; //如果发生了任何一次交换则将n置为false } } if(ntrue) //如果n在某一次冒泡时没有发生过一次交换数据说明剩下的数都已经有序了 //此时就不需要再接着进行冒泡排序了 break; } } public static void main(String[] args) { int[] array{2,1,5,7,8}; bubbleSort(array); System.out.println(Arrays.toString(array)); }注意n-1次是一个数组中最多需要经历n-1次冒泡排序,而不是所有的数组都要经历n-1次冒泡排序当数组中剩下的数都已经有序时此时就已经没有要再进行冒泡排序的必要了因此可以直接打破循环例如示例2、使用Arrays中的sort()方法实现排序注在Arrays也有实现排序的方法sort()方法其只需要一个参数——需要排序的数组sort()方法默认的是实现从小到大排序没有返回值使用实例public static void main(String[] args) { int[] arraynew int[]{7,2,8,4,5}; Arrays.sort(array); //从小到大排序没有返回值 System.out.println(Arrays.toString(array)); }3、实现逆序排序逆序排序就是将第一个元素放在最后第二个元素放在倒数第二以此类推实现逆序排序的方法使用的是“双指针”的方法记录最左边和最右边的数组下标并且交换最做左边和最右边的值再让左边的下标向右移动一位右边的下标移动一位当两个下标相等时或者左边的下标大于右边的下标时此时便实现了逆序排序//数组逆序将第一个元素放在最后第二个元素放在倒数第二以此类推 public static void reverse(int[] array){ int i0,jarray.length-1; while(ij){ int temparray[i]; array[i]array[j]; array[j]temp; i; j--; } } public static void main(String[] args) { int[] array{1,2,3,4,5}; reverse(array); System.out.println(Arrays.toString(array)); }说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇Java与大模型结合的技术优势推理环节的核心地位大模型训练依赖Python生态的高性能计算资源而Java在推理阶段模型部署、性能优化、系统集成具有独特优势。其“编写一次处处运行”的特性使其能无缝集成到微服务、分布式系统等企业级架构中高效处理高并发请求。例如某电商平台通过Java构建的大模型API网关支撑每日千万级请求的稳定运行响应时间缩短50%。生态成熟与性能稳定Java拥有Spring Boot、Spring Cloud等成熟框架可快速实现服务注册、负载均衡、熔断降级等生产级能力。JVM的垃圾回收机制和即时编译技术使其在长连接、高并发场景下表现优于脚本语言。例如某金融系统采用Java实现大模型推理服务系统可用率长期保持99.99%以上。兼容性与工程化能力Java与现有业务系统的兼容性极强可降低大模型落地的集成成本。例如某制造企业通过Java将大模型与ERP系统对接实现生产流程的智能优化故障率降低30%。同时Java在代码规范、测试流程、版本管理等方面的积累能大幅降低大模型项目的研发成本和维护难度。因此捕获AI掌握技术是关键让AI成为我们最便利的工具.一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇如何学习AGI大模型作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设银行网站网页丢失wap网站 微信小程序

Cuberite作为一款轻量级、快速且可扩展的Minecraft游戏服务器,其日志系统是维护服务器稳定运行的"诊断利器"。掌握Cuberite日志分析技巧,能够帮助管理员快速识别性能瓶颈、插件冲突和系统错误,确保玩家获得流畅的游戏体验。本文将为…

张小明 2025/12/31 5:26:25 网站建设

重庆城市建设集团官方网站企业做网站收费

AI架构师的碳监测新战场:从“数烟囱”到“算碳流”的智能跃迁 关键词 碳排放监测、AI应用架构、碳流感知、边缘智能、数字孪生、联邦学习、碳足迹溯源 摘要 当全球都在为“双碳”目标踩油门时,传统碳监测却像一辆“老破车”:人工台账慢得像蜗牛、传感器数据准得像掷骰子…

张小明 2025/12/31 1:17:52 网站建设

合肥住房和城乡建设部网站襄阳万家灯火网站建设

Android设备标识获取全攻略:3分钟掌握合规高效解决方案 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案,可替代移动安全联盟(MSA)统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识(OAID)、海…

张小明 2025/12/31 5:58:55 网站建设

浙江嘉兴seo网站优化推广做网站需提供什么资料

第一章:Open-AutoGLM模型下载慢的根源剖析 Open-AutoGLM作为一款开源大语言模型,在实际使用过程中,用户普遍反馈模型下载速度缓慢,严重影响部署效率。该问题并非单一因素导致,而是由多个技术与网络层面的原因共同作用的…

张小明 2025/12/31 5:02:39 网站建设

外贸小家电网站推广江西做网站优化好的

Elasticsearch浏览器端管理神器:Elasticvue完整使用指南 【免费下载链接】elasticvue Elasticsearch gui for the browser 项目地址: https://gitcode.com/gh_mirrors/el/elasticvue Elasticvue是一款专为浏览器环境设计的Elasticsearch图形化管理工具&#…

张小明 2025/12/30 18:16:51 网站建设

建设项目环境影响网站wordpress镜像存储插件

在AI技术快速发展的今天,内容安全已成为企业部署大模型的核心挑战。阿里通义千问团队推出的Qwen3Guard-Gen-8B安全模型,通过创新的技术架构和多语言支持能力,为企业提供了前所未有的安全防护解决方案。 【免费下载链接】Qwen3Guard-Gen-8B …

张小明 2025/12/30 19:49:01 网站建设