Java从入门到精通 - 常用API(一)

article/2025/6/27 5:28:53

常用 API

此笔记参考黑马教程,仅学习使用,如有侵权,联系必删

文章目录

  • 常用 API
    • 1. 包
      • 代码演示
    • 2. String
      • 2.1 String 概述
        • 代码演示
        • 总结
      • 2.2 String 的常用方法
        • 代码演示
      • 2.3 String 使用时的注意事项
        • 第一点
        • 第二点
          • 代码演示
        • 总结
        • 题目
      • 2.4 String 的应用案例
        • 2.4.1 案例一
        • 2.4.2 案例二
    • 3. ArrayList
      • 3.1 ArrayList 快速入门
        • 代码演示
        • 总结
      • 3.2 ArrayList 应用案例
        • 代码实现
        • 总结
      • ArrayList 综合案例
        • 代码实现
    • 总结

API(全称 Application Programming Interface:应用程序编程接口)

就是别人写好的一些代码,给咱们程序员直接拿去调用即可解决问题的

  • Java 提供了哪些 API 给咱们使用呢?

    • API 文档
  • 为什么要先学习包?

    • 包是分门别类管理程序的
    • 别人写好的程序通常都在别人的包里面!

1. 包

什么是包?

  • 包是用来分门别类地管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护
  • 建包的语法格式:
    • Idea 会帮我们自动建
package com.itfeng.javabean;
public class Student {}

在自己程序中调用其他包下的程序的注意事项

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用(同一个包下的类,互相可以直接调用
  • 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问!导包格式:import 包名.类名;
  • 如果当前程序中,要调用 Java 提供的程序,也需要先导包才可以使用;但是 Java.lang 包下的程序是不需要我们导包的,可以直接使用
  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问

代码演示

  • s_pkg.itcast.Demo1.java
package s_pkg.itcast;public class Demo1 {public void print() {System.out.println("Hello World2");}
}
  • s_pkg.itcast.Demo2.java
package s_pkg.itcast;public class Demo2 {public void print() {System.out.println("itcast");}
}
  • s_pkg.itfeng.Demo2.java
package s_pkg.itfeng;public class Demo2 {public void print() {System.out.println("itfeng");}
}
  • s_pkg.Demo.java
package s_pkg;public class Demo {public void print() {System.out.println("Hello World");}
}
  • s_pkg.Test.java
package s_pkg;import s_pkg.itcast.Demo1;
import s_pkg.itfeng.Demo2;import java.util.Random;
import java.util.Scanner;public class Test {public static void main(String[] args) {// 1. 同一个包下的程序,可以直接访问Demo d = new Demo();d.print(); // Hello World// 2. 访问其他包下的程序,必须导包才可以访问Demo1 d2 = new Demo1();d2.print(); // Hello World2// 3. 自己的程序中调用Java提供的程序,也需要先导包才可以使用;但是Java.lang包下的程序是不需要我们导包的,可以直接使用Scanner sc = new Scanner(System.in);String s = "Feng";Random r = new Random();// 4. 访问多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问Demo2 d3 = new Demo2();d3.print(); // itfengs_pkg.itcast.Demo2 d4 = new s_pkg.itcast.Demo2();d4.print(); // itcast}
}

2. String

2.1 String 概述

java.lang.String 代表字符串

对字符串处理的步骤:

  1. 创建对象
  2. 封装字符串数据
  3. 调用 String 的方法
  • 方式一:Java 程序中的所有字符串文字(例如 “abc”)都为此类的对象
String name = "张三";
String schoolName = "FengSchool";
  • 方式二:调用 String 类的构造器初始化字符串对象(字符串拼接)
构造器说明
public String()创建一个空白字符串,不含有任何内容
public String(String original)根据传入的字符串内容,来创建字符串对象
public String(char[] chars)根据字符串数组的内容,来创建字符串对象
public String(byte[] bytes)根据字节数组的内容,来创建字符串对象
代码演示
package t_string;public class StringDemo1 {public static void main(String[] args) {// 目标:掌握创建String对象,并封装要处理的字符串的两种方式// 1. 直接双引号得到字符串对象,并封装字符串数据String name = "itfeng";System.out.println(name); // itfeng// 2. new String创建字符串对象,并调用构造器初始化字符串String rs1 = new String();System.out.println(rs1); // ""String rs2 = new String("itfeng"); // 不太推荐System.out.println(rs2); // itfengchar[] chars = {'a', '哈', '嘿'};String rs3 = new String(chars); // a哈嘿System.out.println(rs3);byte[] bytes = {97, 98, 99};String rs4 = new String(bytes);System.out.println(rs4); // abc}
}
总结
  1. String 是什么,可以做什么?
  • 代表字符串,可以用来创建对象封装字符串数据,并对其进行处理
  1. String 类创建对象封装字符串数据的方式有几种?
  • 方式一:直接使用双引号 "..."
  • 方式二:new String 类,调用构造器初始化字符串对象

2.2 String 的常用方法

方法名说明
public int length()获取字符串的长度返回(就是字符个数)
public char charAt(int index)获取某个索引位置处的字符返回
public char[] toCharArray():将当前字符串转换成字符数组返回
public boolean equals(Object anObject)判断当前字符串与另一个字符串的内容一样,一样返回 true
public boolean equalsIgnoreCase(String anotherString)判断当前字符串与另一个字符串的内容是否一样(忽略大小写)
public String substring(int beginIndex, int endIndex)根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public String substring(int beginIndex)从传入的索引处截取,截取到末尾,得到新的字符串返回
public String replace(CharSequence target, CharSequence replacement)使用新值,将字符串中的旧值替换,得到新的字符串
public boolean (CharSequence s)判断字符串中是否包含了某个字符串
public boolean startsWith(String prefix)判断字符串是否以某个字符串内容开头,开头返回 true,反之
public String[] split(String regex)把字符串按照某个字符串内部分割,并返回字符串数组回来
代码演示
package t_string;public class StringDemo2 {public static void main(String[] args) {// 目标:快速熟悉String提供的处理字符串的常用方法String s = "FengJava";// 1. 获取字符串的长度System.out.println(s.length()); // 8// 2. 提取字符串中某个索引位置处的字符char c = s.charAt(1);System.out.println(c); // e// 字符串的遍历for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);System.out.println(ch);}System.out.println("----------------------------");// 3. 把字符串转换成字符数组,再进行遍历char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {System.out.println(chars[i]);}// 4. 判断字符串内容,内容一样就返回trueString s1 = new String("feng");String s2 = new String("feng");System.out.println(s1.equals(s2)); // true// 5. 忽略大小写比较字符串内容String c1 = "34AeFG";String c2 = "34aEfg";System.out.println(c1.equals(c2)); // falseSystem.out.println(c1.equalsIgnoreCase(c2)); // true// 6. 截取字符串内容(包前不包后)String s3 = "Java是最好的编程语言之一";String rs = s3.substring(0, 8);System.out.println(rs); // Java是最好的// 7. 从当前索引位置一直获取到字符串的末尾String rs2 = s3.substring(5);System.out.println(rs2); // 最好的编程语言之一// 8. 把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们String info = "这个电影简直就是个垃圾,垃圾电影";String rs3 = info.replace("垃圾", "**");System.out.println(rs3); // 这个电影简直就是个**,**电影// 9. 判断字符串中是否包含某个关键字String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我!";System.out.println(info2.contains("Java")); // trueSystem.out.println(info2.contains("java")); // false// 10. 判断字符串是否以某个字符串开头String rs4 = "张三丰";System.out.println(rs4.startsWith("张")); // trueSystem.out.println(rs4.startsWith("张三")); // true// 11. 把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们String rs5 = "张无忌,周芷若,殷素素,赵敏";String[] names = rs5.split(",");for (int i = 0; i < names.length; i++) {System.out.println(names[i]);}}
}

2.3 String 使用时的注意事项

第一点
  • String 对象的内容不可改变,被称为不可变字符串对象

但是:

name 指向的字符串对象确实变了啊,那为什么还说 String 的对象都是不可变字符串对象?

看执行流程:

结论:每次试图改变字符串对象实际上是新产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说 String 的对象是不可变的

  • 其实就是地址不会发生变化
第二点
  • 只要是以 “…” 方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只能存储一份
    • Java 为什么这么设计?
      • 节约内存

  • 但通过 new 方式创建字符串对象,每 new 以此都会产生一个新的对象放在堆内存中

![](https://i-blog.csdnimg.cn/direct/de21c7b5c8ac409a8d26f7989e6c8fba.png#pic_center =50)

代码演示
package t_string;public class StringDemo3 {public static void main(String[] args) {// 1. 只要是以双引号给出的字符串对象,存储在常量池中,而且内容相同时只会存储一份String s1 = "abc";String s2 = "abc";System.out.println(s1 == s2); // true// 2. new String创建字符串对象,每次new出来的收拾一个新对象,放在堆内存中char[] chars = {'a', 'b', 'c'};String a1 = new String(chars);String a2 = new String(chars);System.out.println(a1 == a2); // false}
}
总结
  1. String 有哪几点注意事项?
  • String 是不可变字符串对象
  • 只要是以 “…” 方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份
  • 但通过 new 方式创建字符串对象,每 new 以此都会产生一个新的对象放在堆内存中
题目


2.4 String 的应用案例

2.4.1 案例一

需求

  • 系统正确的登录名和密码是:itfeng/123456,请在控制台开发一个登录页面,接收用户输入的登录名和密码,判断用户是否登录成功,登录成功后展示:“欢迎进入系统!”,即可停止程序
  • 注意:要求最多给用户三次登录机会

步骤:

  1. 开发登录页面,提示用户通过键盘输入登录名和密码
  2. 设计一个登录方法,对用户的登录名和密码进行正确性认证
  3. 根据登录方法返回的认证结果,判断用户是否登陆成功
  4. 使用循环控制登录界面最多显示3次
  • 代码实现
package t_string;import java.util.Scanner;/*** 目标:完成用户的登录案例*/public class StringTest4 {public static void main(String[] args) {// 1. 开发登录页面,提示用户通过键盘输入登录名和密码for (int i = 0; i < 3; i++) {Scanner sc = new Scanner(System.in);System.out.println("请您输入登录名称:");String loginName = sc.next();System.out.println("请您输入登录密码:");String passWord = sc.next();// 5. 开始调用登录方法,判断是否登录成功boolean rs = login(loginName, passWord);if (rs) {System.out.println("恭喜您,欢迎进入系统~~~");break;} else {System.out.println("登录名或者密码错误,请您确认~~~");}}}/*** 2. 开发一个登录方法,接收用户的登录名和密码,返回认证的结果*/public static boolean login(String loginName, String passWord) {// 3. 准备一份系统正确的登录名和密码String okLoginName = "itfeng";String okPassWord = "123456";// 4. 开始真是判断用户是否登录成功
//        if (okLoginName.equals(loginName) && okPassWord.equals(passWord)) {
//            // 登录成功的
//            return true;
//        } else {
//            return false;
//        }return (okLoginName.equals(loginName) && okPassWord.equals(passWord));}
}
  • 总结
  1. 字符串的比较使用 == 比较好吗?为什么?什么时候使用 ==
  • 不好,对于字符串对象的比较,== 比较的是地址,容易出业务 bug
  • 基本数据类型的变量或者值应该使用 == 比较
  1. 开发中比较字符串推荐使用什么方式比较?
  • 使用 String 提供的 equals 方法,它只关心字符串内容一样就返回 true
2.4.2 案例二

需求

  • 实现随机产生验证码,验证码的每位可能是数字、大写字母、小写字母

分析:

  1. 设计一个方法,该方法接收一个整型参数,最终要返回对应位数的随机验证码
  2. 方法内定义2个字符串变量:1个用来记住生成的验证码,1个用来记住要用到的全部字符
  3. 定义 for 循环控制生成多少位随机字符,每次得到一个字符范围内的随机索引,根据索引提取该字符,把该字符交给 code 变量连接起来,循环结束后,在循环外返回code即可
  4. 主程序中,调用该方法即可得到随机验证码了
  • 代码实现
package t_string;import java.util.Random;public class StringTest5 {public static void main(String[] args) {System.out.println(createCode(4));System.out.println(createCode(6));}/*** 1. 设计一个方法,返回指定位数的验证码* */public static String createCode(int n){// 2. 定义2个变量,一个是记住最终产生的随机验证码,一个是记住可能用到的全部字符String code = "";String data = "abcdefghijklmnopqrstuvwxyz1234567890";Random r = new Random();// 3. 开始定义一个循环产生每位随机字符for (int i = 0; i < n; i++) {// 4. 随机一个字符范围内的索引int index = r.nextInt(data.length());code += data.charAt(index); // code = code + 字符}// 6. 返回code即可return code;}
}

3. ArrayList

3.1 ArrayList 快速入门

什么是集合?

  • 集合是一种容器,用来装数据的,类似于数组

有数组,为什么还要学习集合?

  • 数组定义完成并启动后,长度就固定了,对于经常要增删元素的业务场景数组是不太合适的
  • 集合大小可变,开发中用的更多

ArrayList:

  1. 会提供创建容器对象的方式
  2. 会提供相应的方法对容器进行操作(增删改查)
  • 添加数据
  • 删除某个数据
  • 修改某个数据
  • 获取某个数据

ArrayList

  • 是用的最多、最常见的一种集合
构造器说明
public ArrayList()创建一个空的集合对象
常用方法名说明
public boolean add(E e)将指定的元素添加到此集合的末尾
public void add(int index, E element)在此集合中的指定位置插入指定的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
public E remove(int index)删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o)删除指定的元素,返回删除是否成功
public E set(int index, E element)修改指定索引处的元素,返回被修改的元素
代码演示
package u_arraylist;import java.util.ArrayList;/*** 目标:要求掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 创建一个ArrayList的集合对象ArrayList list = new ArrayList();// 从jdk 1.7开始才支持
//        ArrayList<String> list = new ArrayList();list.add("feng");list.add(666);list.add(99.5);list.add("张三");list.add("feng");System.out.println(list); // [feng, 666, 99.5, 张三, feng]// 2. 在集合中的某个索引位置处添加一个数据list.add(1, "MySQL");System.out.println(list); // [feng, MySQL, 666, 99.5, 张三, feng]// 3. 根据索引获取集合中某个索引位置处的值System.out.println(list.get(1)); // MySQL// 4. 获取集合的大小(返回集合中存储的元素个数)System.out.println(list.size()); // 6// 5. 根据索引删除集合中的某个元素值,会返回被删除的元素值给我们System.out.println(list.remove(1)); // MySQLSystem.out.println(list); // [feng, 666, 99.5, 张三, feng]// 6. 直接删除某个元素值,删除成功会返回true,反之System.out.println(list.remove("张三")); // trueSystem.out.println(list); // [feng, 666, 99.5, feng]// 默认删除的是第一次出现的数据System.out.println(list.remove("feng")); // trueSystem.out.println(list); // [666, 99.5, feng]// 7. 修改某个索引位置处的数据,修改后会返回原来的值给我们System.out.println(list.set(1, "itfeng")); // 99.5System.out.println(list); // [666, itfeng, feng]}
}
总结
  1. 集合是什么,有什么特点?
  • 一种容器,用来存储数据的
  • 集合的大小可变
  1. ArrayList 是什么?怎么使用?
  • 是集合中最常用的一种,ArrayList 是泛型类,可以约束存储的数据类型
  • 创建对象,调用无参数构造器初始化对象:public ArrayList();
  • 调用相应的增删改查数据的方法
  1. ArrayList 提供了哪些常用方法?
    | 常用方法名 | 说明 |
    | ------------------------------------- | -------------------------------------- |
    | public boolean add(E e) | 将指定的元素添加到此集合的末尾 |
    | public void add(int index, E element) | 在此集合中的指定位置插入指定的元素 |
    | public E get(int index) | 返回指定索引处的元素 |
    | public int size() | 返回集合中的元素的个数 |
    | public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
    | public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
    | public E set(int index, E element) | 修改指定索引处的元素,返回被修改的元素 |

3.2 ArrayList 应用案例

需求:

  • 现在假设购物车中存储了如下这些商品:Java 入门,宁夏枸杞,黑枸杞,人字拖,特技枸杞,枸杞子。现在用户不想买枸杞,选择了批量删除,请完成该需求

分析:

  1. 后台使用 ArrayList 集合表示购物车,存储这些商品名
  2. 遍历集合中的每个数据,只要这个数据包含了 “枸杞” 则删除它
  3. 输出集合看是否已经成功删除了全部枸杞数据了
代码实现
package u_arraylist;import java.util.ArrayList;/*** 目标:掌握从集合容器中找数据并删除的技巧*/public class ArrayListDemo2 {public static void main(String[] args) {ArrayList<String> list = new ArrayList();list.add("Java入门");list.add("宁夏枸杞");list.add("黑枸杞");list.add("人字拖");list.add("特级枸杞");list.add("枸杞子");System.out.println(list); // [Java入门, 宁夏枸杞, 黑枸杞, 人字拖, 特级枸杞, 枸杞子]// 2. 开始完成需求:从集合中找出包含枸杞的数据并删除它
//        for (int i = 0; i < list.size(); i++) {
//            // 取出当前遍历到的数据
//            String ele = list.get(i);
//            // 判断这个数据中包含枸杞
//            if (ele.contains("枸杞")){
//                // 直接从集合中删除该数据
//                list.remove(ele);
//            }
//        }
//        System.out.println(list); // [Java入门, 黑枸杞, 人字拖, 枸杞子]// 方式一:每次删除一个数据后,就让i往左退一步
//        for (int i = 0; i < list.size(); i++) {
//            // 取出当前遍历到的数据
//            String ele = list.get(i);
//            // 判断这个数据中包含枸杞
//            if (ele.contains("枸杞")) {
//                // 直接从集合中删除该数据
//                list.remove(ele);
//                i--;
//            }
//        }
//        System.out.println(list); // [Java入门, 人字拖]// 方式二:从集合的后面倒着遍历并删除for (int i = list.size() - 1; i >= 0; i--) {// 取出当前遍历到的数据String ele = list.get(i);// 判断这个数据中包含枸杞if (ele.contains("枸杞")) {// 直接从集合中删除该数据list.remove(ele);}}System.out.println(list); // [Java入门, 人字拖]}
}
总结
  1. 从集合中遍历元素,并筛选出元素删除它,应该如何操作才能不出 bug?
  • 方式一:每次删除一个数据后,索引 - 1
  • 方式二:从集合后面遍历然后删除,可以避免漏掉元素

ArrayList 综合案例

模仿外面系统中的商家系统

需求:

  • 完成菜品的上架、以及菜品信息浏览功能

目标:

  • 使用所学的 ArrayList 集合结合面向对象编程实现以上2个需求
代码实现
  • Food.java
package u_arraylist;public class Food {private String name;private double price;private String desc; // 描述public Food() {}public Food(String name, double price, String desc) {this.name = name;this.price = price;this.desc = desc;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}
}
  • FoodOperator.java
package u_arraylist;import java.util.ArrayList;
import java.util.Scanner;/*** 菜品操作类:负责上架和浏览功能的实现*/public class FoodOperator {// 1. 定义一个ArrayList集合对象,负责存储菜品对象的信息private ArrayList<Food> foodList = new ArrayList<>();// foodList = []// 2. 开发功能:上架菜品功能public void addFood() {// 3. 创建一个菜品对象,封装上架的菜品信息Food f = new Food();// 4. 录入菜品信息进去Scanner sc = new Scanner(System.in);System.out.println("请您输入该菜品名称:");String name = sc.next();f.setName(name);System.out.println("请您输入该菜品价格:");double price = sc.nextDouble();f.setPrice(price);System.out.println("请您输入该菜品描述:");String desc = sc.next();f.setDesc(desc);// 5. 把菜品对象存入到集合中去foodList.add(f);System.out.println("上架成功!");}// 6. 展示菜品public void showAllFood() {if (foodList.size() == 0) {System.out.println("什么菜品都没有,先去上架");return;}for (int i = 0; i < foodList.size(); i++) {Food f = foodList.get(i);System.out.println(f.getName());System.out.println(f.getPrice());System.out.println(f.getDesc());System.out.println("---------------------");}}// 负责展示操作界面public void start() {while (true) {System.out.println("请选择功能");System.out.println("1. 上架菜品");System.out.println("2. 展示菜品");System.out.println("3. 退出");Scanner sc = new Scanner(System.in);System.out.println("请选择您的操作:");String command = sc.next();switch (command) {case "1":addFood();break;case "2":showAllFood();break;case "3":System.out.println("下次再来哦~~~");return; // 干掉方法default:System.out.println("您输入的命令不存在!");}}}
}
  • ArrayListTest3.java
package u_arraylist;import java.util.ArrayList;public class ArrayListTest3 {public static void main(String[] args) {// 目标:完成拓展案例:商家菜品上架操作// 1. 设计一个菜品类,负责创建菜品对象,封装菜品数据// 2. 设计一个菜品操作类FoodOperator,负责完成对菜品的业务实现:上架,浏览信息FoodOperator operator = new FoodOperator();operator.start();}
}

总结



http://www.hkcw.cn/article/uiMXemjhPc.shtml

相关文章

n8n部署工作流websecscan-ai-powered-website-security-auditor

人工智能驱动的网站安全审计工作流 此 n8n 工作流程利用DeepSeek V3的模型检测漏洞、配置问题和安全配置错误&#xff0c;提供全面的网站安全分析。该工作流程生成专业的 HTML 安全报告&#xff0c;并直接通过 QQ邮箱 发送。 1.主要特点 双层安全分析&#xff1a;使用专门的…

TC3xx学习笔记-启动过程详解(一)

文章目录 前言Firmware启动过程BMHD Check流程ABM启动Internal Flash启动Bootloader ModeProcessing in case no valid BMHD foundProcessing in case no Boot Mode configured by SSW 总结 前言 之前介绍过UCB BMHD的使用&#xff0c;它在启动过程中起着重要的作用&#xff0…

Docker 镜像制作

目录 镜像制作及原因 快照方式制作镜像 Dockerfile 制作镜像 为什么需要 Dockerfile Dockerfile 指令 常见问题 镜像制作及原因 镜像制作是因为某种需求&#xff0c;官方的镜像无法满足需求&#xff0c;需要我们通过一定手段来自定义镜像来满足要求。 制作镜像往往因为以…

模块二:C++核心能力进阶(5篇) 篇一:《STL源码剖析:vector扩容策略与迭代器失效》

一、前言&#xff1a;重新认识vector的复杂性 在C开发者中&#xff0c;std::vector常被视为"动态数组"的简单实现&#xff0c;但其底层机制实则蕴含着深刻的工程智慧。本篇将通过&#xff1a; 多维度源码剖析&#xff08;GCC/Clang/MSVC三平台实现对比&#xff09;…

散列表(哈希表)

1 散列表的引入 如果我们叭者几个学生按照顺序存储存入到下面这个数组的话&#xff0c;那么每一次的查找方法只有顺序查找或者折半查找&#xff0c;最低的时间复杂度也就只可以下降到(logn)&#xff0c;但是时间复杂度还是可以下降&#xff0c;下降到O(1) 我们只要把对应的学号…

【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数

Data Studio支持在您的数据分析代码中引用自定义的资源和函数&#xff08;支持MaxCompute、EMR、CDH、Flink&#xff09;&#xff0c;您需要先创建或上传资源、函数至目标工作空间&#xff0c;上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式…

【计算机网络】第3章:传输层—拥塞控制原理

目录 一、PPT 二、总结 &#xff08;一&#xff09;拥塞的定义 &#xff08;二&#xff09;拥塞产生的原因 &#xff08;三&#xff09;拥塞控制的目标 &#xff08;四&#xff09;拥塞控制方法分类 1. 端到端拥塞控制 2. 网络辅助拥塞控制 &#xff08;五&#xff09;…

嵌入式鸿蒙开发环境搭建操作方法与实现

Linux环境搭建镜像下载链接: 链接:https://pan.baidu.com/s/1F2f8ED5V1KwLjyYzKVx2yQ 提取码:Leun vscode和Linux系统连接的详细过程1.下载Visual Studio Code

结构型设计模式之装饰模式

文章目录 1. 装饰模式概述2. 模式结构3. 装饰模式与继承的区别4. 装饰模式的优缺点优点缺点 5. C#代码示例5.1 基本示例 - 饮料与调料5.2 更复杂的示例 - 文本格式化器 6. C#中装饰器模式的实际应用6.1 C# I/O 流处理6.2 ASP.NET Core 中间件 7. 装饰模式与其他设计模式的比较8…

开发的几种格式,TCP的十个重要机制

自定义协议中&#xff0c; 我们有几种常见的数据格式&#xff1a; 1.xml 通过标签来组织数据 请求&#xff1a; 优势&#xff1a; 让数据的可读性变更好了 劣势&#xff1a; 标签非常繁琐&#xff0c;传输的时候也占用更多网络带宽&#xff08;maven会使用xml来管理项目配…

ASP.NET Core OData 实践——Lesson9绑定和未绑定的Function和Action(C#)

大纲 概念支持的接口主要模型设计控制器设计数据源FunctionBound FunctionUnbound Function重载&#xff08;overload&#xff09; ActionBound ActionUnbound Action重载&#xff08;overload&#xff09;Bound ActionUnbound Action 主程序服务文档模型元文档 代码地址参考资…

描述性统计——让数据说话

第03篇&#xff1a;描述性统计——让数据说话 写在前面&#xff1a;大家好&#xff0c;我是蓝皮怪&#xff01;前两篇我们聊了统计学的基本概念和数据类型&#xff0c;这一篇我们要正式进入数据分析的第一步——描述性统计。别被名字吓到&#xff0c;其实就是用一组数字&#x…

【MySQL基础】库的操作:创建、删除与管理数据库

MySQL学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言&#xff1a; 在上一篇我们已经讲解了数据库的基本内容&#xff0c;相信大家对数据库已经有了一些自己的理解&#xff0c;从这篇开始我们就开始正式进入如何…

国足抵达雅加达备战世预赛 力争两连胜晋级希望

中国男足国家队于6月2日晚抵达印度尼西亚首都雅加达,准备参加5日举行的2026美加墨世界杯亚洲区预选赛18强赛第9轮对阵印尼队的比赛。当地时间晚上10时30分,中国队在主教练伊万科维奇的带领下走出雅加达苏加诺-哈达国际机场,随后乘坐大巴前往酒店。伊万科维奇表示,中国队在…

中国龙舟文化“划”向全世界

央视网消息:这个端午假期,热气腾腾的“端午经济”成为消费活力升级的缩影。“国潮”风引领文化消费新风尚,传统文化元素与现代技术交融,非遗体验“烟火气”满满,打造出独特的“国潮端午”氛围,持续火热的国潮消费也一路“火”到了海外。这段时间,在义乌国际商贸城做3D打…

马斯克宣布离职:不想为政府政策负责 “政府效率部”成替罪羊

埃隆马斯克在接受美国哥伦比亚广播公司采访时提到,他并不想公开反对美国政府,但也不愿意为政府所做的一切承担责任。他表示,他领导的“政府效率部”成了所有问题的替罪羊,无论是真是假的裁员都归咎于这个部门。马斯克还表示,他对国会共和党正在讨论的数万亿美元减税与支出…

韩国5名候选人竞逐总统 李在明领跑民调

韩国第21届总统大选于当地时间6月3日6时正式开始,全国共设有14295个投票站。没有参加提前投票的选民凭本人身份证件前往指定投票站即可参加投票,投票将于当日20时结束。本次大选共有7位候选人进行了登记,但其中两位先后宣布退出,并表示支持国民力量党候选人金文洙。因此,选…

学者:李在明若胜将大幅调整外交政策 韩国大选临近决策点

韩国总统大选即将于3日迎来正式投票。根据选前多项民调结果,共同民主党候选人李在明仍以明显优势领先国民力量党的金文洙和改革新党的李俊锡。金文洙与李俊锡合并无望的情况下,李在明距离总统宝座仅一步之遥。2日举行的选前最后一场记者会几乎成为了李在明的“总统政策说明会…

2025/6月最新Cursor(0.50.5版本)一键自动更换邮箱无限续杯教程

使用前检查&#xff1a; 使用前请先看左下角&#xff0c;是否获取到Cursor的版本号 如果没有请先在 功能页面 -→ 自定义Cursor路径 选择你Cursor的安装的路径&#xff0c;并开启后重启YCursor&#xff0c;获取到版本后才能正常使用功能 检查软件左下角的权限标识是否为绿色 如…

算法:二分查找

1.二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 二分查找算法要确定“二段性”&#xff0c;时间复杂度为O(lonN)。为了防止数据溢出&#xff0c;所以求mid时要用防溢出的方式。 class Solution { public:int search(vector<int>& nums, int tar…