Java基础 - 7 - 常用API(二)

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

API就是Java帮我们已经写好的一些程序,如类、方法等,可以直接拿过来用

JDK8 API文档:Java Platform SE 8


一. Object

Object类的作用

        Object类是Java中所有类的祖宗类,因此,Java中所有类的对象都可以直接使用Object类中提供的一些方法

Object类的常见方法

方法名说明
public String toString()返回对象的字符串表示形式
public boolean equals(Object o)判断两个对象是否相等
protected Object clone()对象克隆

toString存在的意义:toString()方法存在的意义就是为了被子类重写,以便返回对象具体的内容

equals存在的意义:直接比较两个对象的地址是否相同完全可以用==代替equals,equals存在的意义就是为了被子类重写,以便子类自己来定制比较规则(比如比较对象内容)

clone()方法

        当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回

clone()方法分为浅克隆和深克隆

        浅克隆:拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)

        深克隆:对象中基本类型的数据直接拷贝,字符串数据拷贝的还是地址,对象中还包含的其他对象,不会拷贝地址,会创建新对象 

//demo
public class demo {public static void main(String[] args) throws CloneNotSupportedException {Student s1 = new Student("小美",20,new double[]{99,100,90});System.out.println(s1);  //默认输出s1就是输出s1.toString()System.out.println(s1.toString());  //不重写toString方法的话返回的是s的地址Student s2 = new Student("小美",20,new double[]{99,100,90});
//        //不重写equals方法
//        System.out.println(s2.equals(s1));  // false  equals方法判断两个对象的地址是否相等
//        System.out.println(s2 == s1);  // false 比较两个对象地址是否一样,可以直接用==
//        Student s3 = s1;
//        System.out.println(s3.equals(s1));  // true   equals方法判断两个对象的地址是否相等System.out.println(s2.equals(s1));  //true 重写了equals方法//s1.clone(); //因为clone()方法是protected的,因此不能直接使用,需要重写clone()方法Student s4 = (Student) s1.clone(); //重写后System.out.println(s4.getName());  //小美System.out.println(s4.getAge());  //20System.out.println(s4.getScore());System.out.println(s4 == s1);  //false,克隆后s4和s1的地址不一样(克隆只是复制内容)System.out.println(s4.equals(s1));  //true(重写后的equals方法比较内容是否相同)}
}//Student
//Cloneable是一个标记接口(实现Cloneable接口,才能使用clone()方法)
public class Student implements Cloneable {  //extends Objectprivate String name;private int age;private double[] score;  //学生成绩数组(如语数英三门成绩)public Student() {}public Student(String name, int age, double[] score) {this.name = name;this.age = age;this.score = score;}@Overrideprotected Object clone() throws CloneNotSupportedException {//通过super调用父类Object中的clone方法//浅克隆//return super.clone();  //等同于 Student s = (Student) super.clone(); return s;//深克隆Student s = (Student) super.clone();s.score = s.score.clone(); //对象中基本类型的数据直接拷贝,字符串数据拷贝的还是地址,对象中还包含的其他对象,不会拷贝地址,会创建新对象 return s;}//重写toString方法,得到对象内容(自动生成)@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", score=" + Arrays.toString(score) +'}';}//重写equals方法,比较两个对象的内容是否一致(自动生成)//比较者:s2 == this//被比较者;s1 == o@Overridepublic boolean equals(Object o) {//判断两个对象地址是否一致,一致直接返回trueif (this == o) return true;//判断o是否是null,o是null直接返回false//判断比较者和被比较者的类型是否一致,不一致直接返回false//这里的getClass()相当于this.getClass()if (o == null || getClass() != o.getClass()) return false;//因为接收的时候是Object类型,这里需要进行强转为StudentStudent student = (Student) o;return age == student.age &&Objects.equals(name, student.name) &&Arrays.equals(score, student.score);}@Overridepublic int hashCode() {return Objects.hash(name, age);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double[] getScore() {return score;}public void setScore(double[] score) {this.score = score;}
}

二. Objects 

Objects

        Objects是一个工具类,提供了很多操作对象的静态方法给我们使用

        (静态方法可以直接用类名.静态方法)

Objects类的常见方法

方法名说明
public static boolean equals(Object a,Object b)先做非空判断,再比较两个对象
public static boolean isNull(Object obj)判断对象是否为null,为null返回true,反之返回false
public static boolean nonNull(Object obj)判断对象是否不为null,不为null返回true,反之返回false
//demo
public class demo {public static void main(String[] args) {String s1 = null;String s2 = "zhang";//System.out.println(s1.equals(s2)); //如果s1是null,这种比较方法会报错(空指针异常 NullPointerException)System.out.println(Objects.equals(s1, s2)); //更安全System.out.println(Objects.isNull(s1));  //trueSystem.out.println(s1 == null);  //trueSystem.out.println(Objects.isNull(s2));  //falseSystem.out.println(s2 == null);  //falseSystem.out.println(Objects.nonNull(s1));  //falseSystem.out.println(Objects.nonNull(s2));  //true}
}

三. 包装类

        Java的思想是万物皆对象,但是Java基本类型的数据(byte  short  int  long  char  float  double  boolean)不是对象,因此引入了包装类

包装类

        包装类就是把基本类型的数据包装成对象

基本数据类型对应的包装类(引用数据类型)
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

包装类的其他常见操作

        · 可以把基本类型的数据转换成字符串类型(toString())

        · 可以把字符串类型的数值转换成数值本身对应的数据类型(valueOf()更推荐)

//demo
public class demo {public static void main(String[] args) {//Integer a = new Integer(12);  //过时方案Integer a = Integer.valueOf(12);System.out.println(a);//自动装箱机制:可以自动把基本类型的数据转换成对象Integer b = 12;//自动拆箱机制:可以自动把包装类型的对象转换成对应的基本数据类型int c = b;//泛型和集合不支持基本数据类型,只能支持引用数据类型//ArrayList<int> list = new ArrayList<>();  //报错ArrayList<Integer> list = new ArrayList<>();list.add(12);  //自动装箱int r = list.get(0); //自动拆箱System.out.println("=======================");//1.把基本类型的数据转换成字符串Integer x = 23;  //自动装箱String s1 = Integer.toString(x);  //自动拆箱  Integer.toString(x)把x转换成字符串类型System.out.println(s1 + 1);  //231String s2 = x.toString();  //继承Object类,toString()也是转换成字符串System.out.println(s2 + 1);  //231String s3 = x + "";  //这样也可以转换成字符串System.out.println(s3 + 1);  //231//2.把字符串类型的数值转换成对应的基本类型//字符串类型的数值!!!不是数值没法转换//不是对应的数据类型也没办法转换,字符串中的数值是浮点型,不能用IntegerString m1 = "29";//int z1 = Integer.parseInt(m1);  //字符串转换成对应的基本类型 parseInt()不推荐使用int z1 = Integer.valueOf(m1);System.out.println(z1 + 1);  //30String m2 = "99.5";//double z2 = Double.parseDouble(m2);  //字符串转换成对应的基本类型 parseDouble()不推荐使用double z2 = Double.valueOf(m2);System.out.println(z2 + 1);  //100.5}
}

 四. StringBuilder

        StringBuilder代表可变字符串对象,相当于一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的

        好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁

构造器说明
public StringBuilder()创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str)创建一个指定字符串内容的可变字符串对象
方法名称说明
public StringBuilder append(任意类型)添加数据并返回StringBuilder对象本身
public StringBuilder reverse()将对象的内容反转
public int length()返回对象内容长度
public String toString()通过toString()就可以实现把StringBuilder转换为String
//demo
public class demo {public static void main(String[] args) {//StringBuilder sb = new StringBuilder();  //sb ""StringBuilder sb = new StringBuilder("wosun");//1.拼接内容sb.append(12);  //拼接intsb.append(true);  //拼接booleansb.append(13.14);  //拼接double/floatsb.append("你好");  //拼接String//支持链式编程sb.append(1).append('a').append(5.20).append(false);System.out.println(sb);//2.内容反转sb.reverse();  //内容反转System.out.println(sb);//3.返回字符串长度System.out.println(sb.length());//4.把StringBuilder对象又转换成String类型String s = sb.toString();System.out.println(s);System.out.println("======================");//需求:拼接100万次abc//String   很很恨很慢
//        String rs = "";
//        for (int i = 0; i < 1000000; i++) {
//            rs += "abc";
//        }
//        System.out.println(rs);//StringBuilder 非常快StringBuilder rs = new StringBuilder();for (int i = 0; i < 1000000; i++) {rs.append("abc");}System.out.println(rs);}
}

注意:如果操作字符串较少,或者不需要操作,以及定义字符串变量,还是建议使用String;如果需要频繁的拼接、修改等,建议使用StringBuilder

案例:返回任意整型数组的内容

//demo
public class demo {public static void main(String[] args) {int[] arr1 = new int[]{1,2,3,4,5};System.out.println(method(arr1));int[] arr2 = new int[5];System.out.println(method(arr2));int[] arr3 = null;System.out.println(method(arr3));}//一般来说返回值是String,不会是StringBuilderpublic static String method(int[] arr){//!!!要先进行非空校验,判断arr是否为nullif(arr == null){return null;  //数组对象不存在}//数组对象存在StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {
//            if(i==0){
//                sb.append("[");
//            }sb.append(arr[i]);if(i!=arr.length-1){sb.append(",");}else{sb.append("]");}}return sb.toString();}
}

五. StringBuffer

        StringBuffer的用法和StringBuilder是一模一样的,但StringBuilder是线程不安全的,StringBuffer是线程安全的

六. StringJoiner

        StringJoiner是JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的

        好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁

构造器说明
public StringJoiner(间隔符号)创建一个StringJoiner对象,指定拼接时的间隔符号
public StringJoiner(间隔符号,开始符号,结束符号)创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号
方法名称说明
public StringJoiner add(添加de)添加数据,并返回对象本身
public int length()返回长度(字符出现的个数)
public String toString()返回一个字符串(该字符串就是拼接后的结果)
//demo
public class demo {public static void main(String[] args) {//StringJoiner s = new StringJoiner(",");  //间隔符StringJoiner s = new StringJoiner(",","[","]");  //间隔符 开始符 结束符s.add("java1");s.add("java2");s.add("java3");System.out.println(s);  //java1,java2,java3int[] arr = new int[]{1,2,3,4,5};System.out.println(method(arr));}public static String method(int[] arr){if(arr == null){return null;}StringJoiner sj = new StringJoiner(",","[","]");for (int i = 0; i < arr.length; i++) {String s = arr[i] + "";  //把数组里的整型数值 转换成 字符串sj.add(s);}return sj.toString();}
}

 七. Math

        代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法

Math类提供的常见方法

方法名说明
public static int abs(int a)获取参数绝对值
public static double ceil(double a)向上取整
public static double floor(double a)向下取整
public static long round(float a)四舍五入
public static int max(int a,int b)获取两个int值中的较大值
public static double pow(double a,double b)返回a的b次幂的值
public static double random()返回值为double的随机值,范围[0.0 , 1.0]
//demo
public class demo {public static void main(String[] args) {
// 获取参数绝对值 public static int abs(int a)	获取参数绝对值
// 获取参数绝对值 public static double abs(double a)System.out.println(Math.abs(-12));  //12System.out.println(Math.abs(123));  //123System.out.println(Math.abs(0));  //0System.out.println(Math.abs(-13.14));  //13.14// 向上取整 public static double ceil(double a)System.out.println(Math.ceil(4.3));  //5.0System.out.println(Math.ceil(3));  //3.0// 向下取整 public static double floor(double a)System.out.println(Math.floor(4.99));  //4.0System.out.println(Math.floor(3));  //3.0// 四舍五入 public static long round(float a)System.out.println(Math.round(4.49));  //4System.out.println(Math.round(4.51));  //5// 获取两个int值中的较大值 public static int max(int a,int b) (还可以是浮点型或long型)
// 获取两个int值中的较小值 public static int min(int a,int b)System.out.println(Math.max(10,20));  //20System.out.println(Math.min(10,20));  //10System.out.println(Math.min(10.07,10.09));  //10.07// 返回a的b次幂的值 public static double pow(double a,double b)System.out.println(Math.pow(2, 3));  //8.0
// 返回值为double的随机值,范围[0.0 , 1.0] public static double random()System.out.println(Math.random());  //随机数 如0.5848377958673234}
}

八. System

        System代表程序所在的系统,也是一个工具类

System类提供的常见方法

方法名说明
public static void exit(int status)终止当前运行的Java虚拟机
public static long currentTimeMillis()返回当前系统的时间毫秒值形式

时间毫秒值:指的是从1970年1月1日00:00:00走到此刻的总的毫秒值(ms)  1s=1000ms

//demo
public class demo {public static void main(String[] args) {
//        public static void exit(int status)//终止当前运行的Java虚拟机//该参数用作状态代码,按照惯例,非零状态代码表示异常终止//System.exit(0); //人为终止虚拟机(不要使用)System.out.println("===============");//        public static long currentTimeMillis()//返回当前系统的时间毫秒值形式Long l1 = System.currentTimeMillis();System.out.println(l1);for (int i = 0; i < 10000; i++) {System.out.println(i);}Long l2 = System.currentTimeMillis();System.out.println((l2-l1)/1000.0 +"s");  //l2-l1是毫秒值//时间差即两次时间中间程序的运行时间,可以做程序的性能分析}
}

九. Runtime

        Runtime代表程序所在的运行环境

        Runtime是一个单例类

Runtime类提供的常见方法

方法名说明
public static Runtime getRuntime()返回与当前Java应用程序关联的运行时对象
public void exit(int status)终止当前运行的虚拟机
public int availableProcessors()返回Java虚拟机可用的处理器数
public long totalMemory()返回Java虚拟机中的内存总量
public long freeMemory()返回Java虚拟机中的可用内存
public Process exec(String command)启动某个程序,并返回代表该程序的对象
//demo
public class demo {public static void main(String[] args) throws IOException, InterruptedException {//public static Runtime getRuntime() 返回与当前Java应用程序关联的运行时对象Runtime r = Runtime.getRuntime();//public void exit(int status) 终止当前运行的虚拟机,该参数用作状态代码;按照惯例,非零状态代码表示异常终止//r.exit(0);  //不要使用//public int availableProcessors() 返回Java虚拟机可用的处理器数System.out.println(r.availableProcessors());//public long totalMemory() 返回Java虚拟机中的内存总量//1024 = 1Kb  1024 * 1024 = 1MbSystem.out.println(r.totalMemory());  //返回的是字节System.out.println(r.totalMemory() / 1024.0 +"Kb");System.out.println(r.totalMemory() / 1024.0 /1024.0 +"Mb");//public long freeMemory() 返回Java虚拟机中的可用内存System.out.println(r.freeMemory() );System.out.println(r.freeMemory() / 1024.0 /1024.0 +"MB");//public Process exec(String command) 启动某个程序,并返回代表该程序的对象Process p = r.exec("");  //电脑中QQ程序的地址//r.exec("QQ");  //想要这样直接启动QQ,需要把QQ配置到环境变量Thread.sleep(5000);  //让程序在这里暂停5s再往下走p.destroy();  //销毁(即关闭程序)}
}

十. BigDecimal

        用来解决浮点型运算时,出现结果失真的问题

BigDecimal的常见构造器、常用方法

构造器说明
public BigDecimal(double val)  注意:不推荐用这个将double转换为BIgDecimal
public BigDecimal(String val)将String转换为BIgDecimal
方法名说明
public static BigDecimal valueOf(double val)转换一个double成BIgDecimal
public BigDecimal add(BigDecimal b)加法
public BigDecimal subtract(BigDecimal b)减法
public BigDecimal multiply(BigDecimal b)乘法
public BigDecimal divide(BigDecimal b)除法

public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式)

public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

除法,可以控制精确到小数几位
public double doubleValue()将BigDecimal转换为double
//demo
public class demo {public static void main(String[] args) throws IOException, InterruptedException {System.out.println(0.1+0.2);  //0.30000000000000004  失真System.out.println("=====================");//把他们变成字符串封装成BigDecimal对象来运算double a = 0.1;double b = 0.2;
//public BigDecimal(String val)	将String转换为BIgDecimal//BigDecimal a1 = new BigDecimal(Double.toString(a));//BigDecimal b1 = new BigDecimal(Double.toString(b));//推荐用以下方式:把小数转换成字符串再得到BigDecimal对象来使用(更简洁)BigDecimal a1 = BigDecimal.valueOf(a);BigDecimal b1 = BigDecimal.valueOf(b);BigDecimal c1 = a1.add(b1);BigDecimal c2 = a1.subtract(b1);BigDecimal c3 = a1.multiply(b1);BigDecimal c4 = a1.divide(b1);System.out.println(c1);System.out.println(c2);System.out.println(c3);System.out.println(c4);//除法中如果除不尽,不给精确位数,会报错BigDecimal x = BigDecimal.valueOf(0.1);BigDecimal y = BigDecimal.valueOf(0.3);//System.out.println(x.divide(y)); //报错 没有精确值System.out.println(x.divide(y,2, RoundingMode.HALF_UP));  //0.4//不会写代码的时候用ctrl+alt+空格//public double doubleValue() 将BigDecimal转换为doubledouble m = x.doubleValue();System.out.println(m);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis多数据源切换

1.前提 项目中有可能需要去其他的数据库取其他的表的信息 2.思路 2.1 直接使用原生jdbc&#xff08;不推荐&#xff09; 2.2 不使用我们全局配置的mybatis&#xff0c;对指定文件夹下使用我们指定的Session 3.解决办法 指定该配置的范围 package com.maycur.openapi.dao.my…

『Linux从入门到精通』第 ㉓ 期 - 管道

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f427;进程间通信的目的&#x1f427;如何进行进程间通信&#x1f427;进程间通信的分类&#x1f427;管道&#x1f426;什么是管道&#x1f426;管道原理 &#x1f427;实例代码&#x1f427;管道的特点&#x1f4…

Protobuf学习笔记以及序列化的一些概念要点(暂放C++笔记专栏)

Protobuf学习笔记以及序列化的一些概念要点 —— 杭州 2024-03-03 文章目录 Protobuf学习笔记以及序列化的一些概念要点1.Protobuf概念2.实际测试2.1.准备一个test.proto2.2.使用 protoc 命令行工具来编译一个 Protocol Buffers 文件 test.proto3.3.创建一个main.cpp写C++代码…

mysql 事务的隔离级别

一、事务的隔离级别要解决的问题&#xff1a; 1&#xff09;脏读&#xff1a;读到了其它事务未提交的数据即脏读&#xff0c;未提交意味着数据有可能会被回滚&#xff0c;也就是最终有可能不会存储到数据库中&#xff0c;即读到了最终不一定存在存在的数据&#xff0c;即为脏读…

如何选择程序员职业赛道:挑战与机遇并存的职业探索指南

程序员如何选择职业赛道&#xff1f; 作为程序员&#xff0c;选择职业赛道是一项重要的决策&#xff0c;不仅影响你的职业发展&#xff0c;也影响着你的工作生活。本文将为你介绍如何选择程序员职业赛道&#xff0c;以及每个方向的特点、挑战和机遇&#xff0c;帮助你做出明智…

《极客时间 - 左耳听风》【文章笔记 + 个人思考】

《极客时间 - 左耳听风》 原文链接 &#xff1a;https://time.geekbang.org/column/intro/100002201?tabcatalog 备注&#xff1a;加粗部分为个人思考 01 | 程序员如何用技术变现&#xff1f;&#xff08;上&#xff09; 备注&#xff1a;加粗部分为个人思考) 01 | 程序员如何…

Window系统部署Splunk Enterprise并结合内网穿透实现远程访问本地服务

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 本文主要介绍如何简单几步&#xff0c;结合cpolar内网穿透工具实现随时随地在任意浏览器&#xff0c;远程访问在本地…

【24最新版PythonPycharm安装教程】小白保姆级别安装教程

今天&#xff0c;我就来教大家一下&#xff0c;如何去安装Python&#xff01; 需要博主打包好的一键激活版Pycharm&&Python也可扫下方直接获取 ​ 1 了解Python Python是一种面向对象的解释型计算机程序设计语言&#xff0c;由荷兰人Guido van Rossum于1989年发明&…

[C++]使用纯opencv去部署yolov9的onnx模型

【介绍】 部署 YOLOv9 ONNX 模型在 OpenCV 的 C 环境中涉及一系列步骤。以下是一个简化的部署方案概述&#xff0c;以及相关的文案。 部署方案概述&#xff1a; 模型准备&#xff1a;首先&#xff0c;你需要确保你有 YOLOv9 的 ONNX 模型文件。这个文件包含了模型的结构和权…

Flutter Gradle下载失败的解决方案

Flutter Gradle可能会由于网络原因下载失败,这个时候我们可以首先下载Gradle&#xff0c;然后再进行配置。具体步骤如下&#xff1a; 第一步&#xff1a;下载对应版本的gradle 可以通过下面地址下载&#xff0c;也可以百度里面搜对应的版本 【极速下载】gradle各版本快速下载地…

【HTML】HTML基础2(一些常用标签)

目录 例子 首先是网页图标 然后是一些常用标签 插入图片 例子 <!DOCTYPE html> <html><head><link rel"icon" href"img/银河护卫队-星爵.png" type"image/x-icon"><meta charset"utf-8"><title>…

大数据的分类分级管理

一.背景 为了公司给的师带徒&#xff0c;为培训写点材料。让徒弟做事情要有章法&#xff0c;有行业视野&#xff0c;知道方向和资料从哪里去找。 二.参考标准 要管理企业的大数据&#xff0c;从什么地方开始呢&#xff1f;首先应该完成企业数据的分类、分级&#xff0c;或者参…

一文掌握python常用的dict(字典)操作

目录 一、字典的创建与基本特性 1.创建字典 2.字典的基本特性 二、字典的常用操作 1.访问字典中的值 2.添加、修改键值对 3.删除键值对 4.获取字典中的所有键、值和键值对 5.遍历字典 6.查找键是否存在 7.使用 get() 方法获取值 8.合并字典 9.字典排序 10.使用字…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

Javascript:数组的使用

目录 一、前言 二、正文 三、结语 一、前言 为了能存储多个数据&#xff0c;我们接下来介绍数组。 二、正文 数组是一种将一组数据存储在单个变量名下的方式。 let arr[] 声明语法: let 数组名[数据1,数据2,..数据n] 例 let names[小明,小刚,小红,小丽] 数组是按顺序保存…

【大厂AI课学习笔记NO.56】(9)模型评测

作者简介&#xff1a;giszz&#xff0c;腾讯云人工智能从业者TCA认证&#xff0c;信息系统项目管理师。 博客地址&#xff1a;https://giszz.blog.csdn.net 声明&#xff1a;本学习笔记来自腾讯云人工智能课程&#xff0c;叠加作者查阅的背景资料、延伸阅读信息&#xff0c;及学…

Python采集学习笔记-request的get请求和post请求

使用http://httpbin.org测试,一个简单的 HTTP 请求和响应服务。(需联网)1.导入requests包 import requests 2.测试get请求 url http://httpbin.org/get par {key1: value1, key2: value2} # 不带参数请求 r1 requests.get(url) # 带参数请求 r2 requests.get(url, paramspa…

甘特图资源视图和任务视图的区别

甘特图(Gantt chart)是一种常用的项目管理工具,用于直观地展示项目的进度和各项任务的时间安排。甘特图包含资源视图和任务视图两种视角。 一个项目的甘特图demo &#xff1a; https://zz-plan.com/share/87f1340286f1343ba5 资源视图主要显示项目中不同资源的分配和利用情况…

植物神经功能紊乱患者,家属应该怎么照顾!

植物神经功能紊乱181-01-317-367&#xff0c;通常被称为植物人状态&#xff0c;是指由严重脑部受损引起的意识丧失、无法自主呼吸、难以醒来或维持清醒状态的一种严重健康状况。植物神经功能紊乱患者通常面临长期卧床、意识不清、无法言语交流等严重问题&#xff0c;需要家属的…

代码随想录算法训练营Day 36 | LeetCode435. 无重叠区间、LeetCode763.划分字母区间、LeetCode56. 合并区间

LeetCode435. 无重叠区间 和上题引爆气球的逻辑非常像&#xff0c;只要想到左边界排序之后&#xff0c;更新右边界为最小值&#xff0c;则就可以轻松写出代码&#xff0c;如果按照右边界来排序&#xff0c;则就可以省去取最小值的逻辑。 代码如下&#xff1a;时间复杂度O(nlo…