day18-API(Math System Runtime Object BigInteger BigDecimal)

news2024/9/24 22:35:05

1 Math类

1.2 常见方法

常见方法介绍

public static int abs(int a)                    // 返回参数的绝对值
public static double ceil(double a)                // 返回大于或等于参数的最小整数
public static double floor(double a)            // 返回小于或等于参数的最大整数
public static int round(float a)                // 按照四舍五入返回最接近参数的int类型的值
public static int max(int a,int b)                // 获取两个int值中的较大值
public static int min(int a,int b)                // 获取两个int值中的较小值
public static double pow (double a,double b)    // 计算a的b次幂的值
public static double random()                    // 返回一个[0.0,1.0)的随机值

案例演示       

 

      System.out.println("-2的绝对值为:" + Math.abs(-2));//2
      System.out.println("大于或等于23.45的最小整数位:" + Math.ceil(23.45));//24.0
      System.out.println("小于或等于23.45的最大整数位:" + Math.floor(23.45));//23.0
      System.out.println("23.55四舍五入的结果为:" + Math.round(23.55));//24
      System.out.println("23和45的最大值为: " + Math.max(23, 45));//45
      System.out.println("12和34的最小值为: " + Math.min(12 , 34));//12
      System.out.println("2的3次幂计算结果为: " + Math.pow(2,3));//8.0
      System.out.println("获取到的0-1之间的随机数为: " + Math.random());//0.7322484131745958

2 System类

2.2 常见方法

常见方法介绍

public static long currentTimeMillis()            // 获取当前时间所对应的毫秒值(当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置)
public static void exit(int status)                // 终止当前正在运行的Java虚拟机,0表示正常退出,非零表示异常退出
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); // 进行数值元素copy

案例演示

案例1:演示currentTimeMillis方法

        // 获取当前时间所对应的毫秒值
        long millis = System.currentTimeMillis();//1576050298343

获取到当前时间的毫秒值的意义:我们常常来需要统计某一段代码的执行时间。此时我们就可以在执行这段代码之前获取一次时间,在执行完毕以后再次获取一次系统时间,然后计算两个时间的差值,

案例2:演示exit方法

        // 输出
        System.out.println("程序开始执行了.....");       
        // 终止JVM
        System.exit(0);
        // 输出
        System.out.println("程序终止了..........");

//程序开始执行了.....

案例3:演示arraycopy方法

// src: 	 源数组
// srcPos:  源数值的开始位置
// dest:    目标数组
// destPos: 目标数组开始位置
// length:   要复制的元素个数
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); 

代码如下所示:

   // 定义源数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;
        // 定义目标数组
        int[] desArray = new int[10] ;
        // 进行数组元素的copy: 把srcArray数组中从0索引开始的3个元素,从desArray数组中的1索引开始复制过去
        System.arraycopy(srcArray , 0 , desArray , 1 , 3);
        // 遍历目标数组
        for(int x = 0 ; x < desArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(desArray[x] + ", ");
            }else {
                System.out.println(desArray[x]);
            }
        }
    }
}

//0, 23, 45, 67, 0, 0, 0, 0, 0, 0

使用这个方法我们也可以完成数组元素的删除操作,如下所示:

public class SystemDemo02 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;
        // 删除数组中第3个元素(67):要删除67这个元素,我们只需要将67后面的其他元素依次向前进行移动即可
        System.arraycopy(srcArray , 3 , srcArray , 2 , 3);
        // 遍历srcArray数组
        for(int x = 0 ; x < srcArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(srcArray[x] + ", ");
            }else {
                System.out.println(srcArray[x]);
            }
        }
    }
}

//23, 45, 89, 14, 56, 56 

通过控制台输出结果我们可以看到此时多出了一个56元素,此时我们只需要将最后一个位置设置为0即可。如下所示:

public class SystemDemo02 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;
        // 删除数组中第3个元素(67):要删除67这个元素,我们只需要将67后面的其他元素依次向前进行移动即可
        System.arraycopy(srcArray , 3 , srcArray , 2 , 3);
        // 将最后一个位置的元素设置为0
        srcArray[srcArray.length - 1] = 0 ;
        // 遍历srcArray数组
        for(int x = 0 ; x < srcArray.length ; x++) {
            if(x != srcArray.length - 1 ) {
                System.out.print(srcArray[x] + ", ");
            }else {
                System.out.println(srcArray[x]);
            }
        }
    }
}
//23, 45, 89, 14, 56, 0

arraycopy方法底层细节:

1.如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错

2.在拷贝的时候需要考虑数组的长度,如果超出范围也会报错

3.如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型

3 Runtime

3.2 常见方法

常见方法介绍

public static Runtime getRuntime()        //当前系统的运行环境对象
public void exit(int status)            //停止虚拟机
public int availableProcessors()        //获得CPU的线程数
public long maxMemory()                    //JVM能从系统中获取总内存大小(单位byte)
public long totalMemory()                //JVM已经从系统中获取总内存大小(单位byte)
public long freeMemory()                //JVM剩余内存大小(单位byte)
public Process exec(String command)     //运行cmd命令

代码示例:

        //1.获取Runtime的对象
        //Runtime r1 =Runtime.getRuntime();

        //2.exit 停止虚拟机
        //Runtime.getRuntime().exit(0);
        //System.out.println("看看我执行了吗?");

        //3.获得CPU的线程数
        System.out.println(Runtime.getRuntime().availableProcessors());//8
        //4.总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);//4064
        //5.已经获取的总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);//254
        //6.剩余内存大小
        System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);//251

        //7.运行cmd命令
        //shutdown :关机
        //加上参数才能执行
        //-s :默认在1分钟之后关机
        //-s -t 指定时间 : 指定关机时间
        //-a :取消关机操作
        //-r: 关机并重启
        Runtime.getRuntime().exec("shutdown -s -t 3600");


    }
}

4 Object类

4.2 常见方法

常见方法介绍

public String toString()                //返回该对象的字符串表示形式(可以看做是对象的内存地址值)
public boolean equals(Object obj)        //比较两个对象地址值是否相等;true表示相同,false表示不相同
protected Object clone()                //对象克隆

案例1:演示toString方法

  1. 在空白处使用快捷键:alt + insert。此时会弹出如下的对话框

  1. 选择toString,此时会弹出如下的对话框

同时选择name和age属性,点击OK。此时就会完成toString方法的重写,代码如下所示:

@Override
public String toString() {
    return "Student{" +
        "name='" + name + '\'' +
        ", age='" + age + '\'' +
        '}';
}
//Student{name='itheima', age='14'}

此时我们就可以清楚的查看Student的成员变量值,因此重写toString方法的意义就是以良好的格式,更方便的展示对象中的属性值

案例2:演示equals方法

        // 创建两个学生对象
        Student s1 = new Student("itheima" , "14") ;
        Student s2 = new Student("itheima" , "14") ;

        // 比较两个对象是否相等
        System.out.println(s1 == s2);//false

因为"=="号比较的是对象的地址值,而我们通过new关键字创建了两个对象,它们的地址值是不相同的。因此比较结果就是false。

我们尝试调用Object类中的equals方法进行比较

// 调用equals方法比较两个对象是否相等
boolean result = s1.equals(s2);

// 输出结果
System.out.println(result);//false

为什么结果还是false呢?我们可以查看一下Object类中equals方法的源码,如下所示:

public boolean equals(Object obj) {		// Object类中的equals方法的源码
    return (this == obj);
}

通过源码我们可以发现默认情况下equals方法比较的也是对象的地址值。比较内存地址值一般情况下是没有意义的,我们希望比较的是对象的属性,如果两个对象的属性相同,我们认为就是同一个对象;

那么要比较对象的属性,我们就需要在Student类中重写Object类中的equals方法。equals方法的重写,我们也可以使用idea开发工具完成,具体的操作如下所示:

  1. 在空白处使用快捷键:alt + insert。此时会弹出如下的对话框

  2. 选择equals() and hashCode()方法,此时会弹出如下的对话框

点击next,会弹出如下对话框:

选择neme和age属性点击next,此时就会弹出如下对话框:

取消name和age属性(因为此时选择的是在生成hashCode方法时所涉及到的属性,关于hashCode方法后期再做重点介绍),点击Finish完成生成操作。生成的equals方法和hashCode方法如下:

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Student student = (Student) o;
    return Objects.equals(name, student.name) && Objects.equals(age, student.age);	// 比较的是对象的name属性值和age属性值
}

@Override
public int hashCode() {
    return 0;
}

hashCode方法我们暂时使用不到,可以将hashCode方法删除。重写完毕以后运行程序进行测试,控制台输出结果如下所示:

true

小结:

  1. 默认情况下equals方法比较的是对象的地址值

  2. 比较对象的地址值是没有意义的,因此一般情况下我们都会重写Object类中的equals方法

案例3:对象克隆

把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制

对象克隆的分类:

深克隆和浅克隆

浅克隆:

不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来

基本数据类型拷贝过来的是具体的数据,引用数据类型拷贝过来的是地址值。

Object类默认的是浅克隆

深克隆:

基本数据类型拷贝过来,字符串复用,引用数据类型会重新创建新的

5 Objects类

5.1 概述

Objects类中无无参构造方法,因此我们不能使用new关键字去创建Objects的对象。同时我们可以发现Objects类中所提供的方法都是静态的。因此我们可以通过类名直接去调用这些方法。

5.2 常见方法

常见方法介绍

public static String toString(Object o)                     // 获取对象的字符串表现形式
public static boolean equals(Object a, Object b)            // 比较两个对象是否相等
public static boolean isNull(Object obj)                    // 判断对象是否为null
public static boolean nonNull(Object obj)                    // 判断对象是否不为null

要了解的Objects类中的常见方法如下所示:

public static <T> T requireNonNull(T obj)                    // 检查对象是否不为null,如果为null直接抛出异常;如果不是null返回该对象;
public static <T> T requireNonNullElse(T obj, T defaultObj) // 检查对象是否不为null,如果不为null,返回该对象;如果为null返回defaultObj值
public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)    // 检查对象是否不为null,如果不为null,返回该对象;如果                                                             // 为null,返回由Supplier所提供的值

上述方法中的T可以理解为是Object类型。

案例演示

案例1:演示重点学习方法

  1. 创建一个学生类,提供两个成员变量(name , age);并且提供对应的无参构造方法和有参构造方法以及get/set方法,并且重写toString方法和equals方法

  2. 创建一个测试类(ObjectsDemo01), 在该类中编写测试代码

Student类

public class Student {
    private String name ;       // 姓名
    private String age ;        // 年龄 
    ...
}

ObjectsDemo01测试类

public class ObjectsDemo01 {
    public static void main(String[] args) {
        // 调用方法
        method_01() ;
        method_02() ;
        method_03() ;
        method_04() ;
    }
    
    // 测试toString方法
    public static void method_01() {
        Student s1 = new Student("itheima" , "14") ;
        // 调用Objects中的toString方法,获取s1对象的字符串表现形式
        String result = Objects.toString(s1);       // 如果Student没有重写Object类中的toString方法,此处还是返回的对象的地址值
        // 输出结果:Test.Student@0
        System.out.println(result);
    }

    // 测试equals方法
    public static void method_02() {
        Student s1 = new Student("itheima" , "14") ;
        Student s2 = new Student("itheima" , "14") ;
        // 调用Objects类中的equals方法,比较两个对象是否相等
        boolean result = Objects.equals(s1, s2);     // 如果Student没有重写Object类中的equals方法,此处比较的还是对象的地址值
        // 输出结果:false
        System.out.println(result);
    }
    
    // 测试isNull方法
    public static void method_03() {
        Student s1 = new Student("itheima" , "14") ;
        // 调用Objects类中的isNull方法
        boolean result = Objects.isNull(s1);
        // 输出结果:false
        System.out.println(result);
    }
    
    // 测试nonNull方法
    public static void method_04() {
        Student s1 = new Student("itheima" , "14") ;
        // 调用Objects类中的nonNull方法
        boolean result = Objects.nonNull(s1);
        // 输出结果:true
        System.out.println(result);
    }
}

6 BigInteger类

6.1 引入

平时在存储整数的时候,Java中默认是int类型,int类型有取值范围:-2147483648 ~ 2147483647。如果数字过大,我们可以使用long类型,但是如果long类型也表示不下怎么办呢?

就需要用到BigInteger,可以理解为:大的整数。

有多大呢?理论上最大到42亿的21亿次方

基本上在内存撑爆之前,都无法达到这个上限。

6.3 常见方法

构造方法

public BigInteger(int num, Random rnd)         //获取随机大整数,范围:[0 ~ 2的num次方-1]
public BigInteger(String val)                 //获取指定的大整数
public BigInteger(String val, int radix)     //获取指定进制的大整数
    
下面这个不是构造,而是一个静态方法获取BigInteger对象
public static BigInteger valueOf(long val)     //静态方法获取BigInteger的对象,内部有优化

构造方法小结:

  • 如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。

  • 如果BigInteger表示的超出long的范围,可以用构造方法获取。

  • 对象一旦创建,BigInteger内部记录的值不能发生改变。

  • 只要进行计算都会产生一个新的BigInteger对象

常见成员方法

BigInteger类中使用最多的还是提供的进行四则运算的方法,如下:

public BigInteger add(BigInteger val)            //加法
public BigInteger subtract(BigInteger val)        //减法
public BigInteger multiply(BigInteger val)        //乘法
public BigInteger divide(BigInteger val)        //除法
public BigInteger[] divideAndRemainder(BigInteger val)     //除法,获取商和余数
public  boolean equals(Object x)             //比较是否相同
public  BigInteger pow(int exponent)         //次幂、次方
public  BigInteger max/min(BigInteger val)                  //返回较大值/较小值
public  int intValue(BigInteger val)                     //转为int类型整数,超出范围数据有误

代码实现:

  		//获取指定进制的大整数
		//细节:
        //1.字符串中的数字必须是整数
        //2.字符串中的数字必须要跟进制吻合。
        //比如二进制中,那么只能写日和1,写其他的就报错。
        BigInteger bd4 = new BigInteger("123", 2);
        System.out.println(bd4);

        //4.静态方法获取BigInteger的对象,内部有优化
        //细节:
        //1.能表示范围比较小,只能在long的取值范围之内,如果超出long的范围就不行了。
        //2.在内部对常用的数字: -16 ~ 16 进行了优化。
        //  提前把-16~16 先创建好BigInteger的对象,如果多次获取不会重新创建新的。
        BigInteger bd5 = BigInteger.valueOf(16);
        BigInteger bd6 = BigInteger.valueOf(16);
        System.out.println(bd5 == bd6);//true

        BigInteger bd7 = BigInteger.valueOf(17);
        BigInteger bd8 = BigInteger.valueOf(17);
        System.out.println(bd7 == bd8);//false

        //5.对象一旦创建内部的数据不能发生改变
        BigInteger bd9 =BigInteger.valueOf(1);
        BigInteger bd10 =BigInteger.valueOf(2);
        //此时,不会修改参与计算的BigInteger对象中的借,而是产生了一个新的BigInteger对象记录
        BigInteger result=bd9.add(bd10);
        System.out.println(result);//3
        //1.创建两个BigInteger对象
        BigInteger bd1 = BigInteger.valueOf(10);
        BigInteger bd2 = BigInteger.valueOf(5);

        //2.加法
        BigInteger bd3 = bd1.add(bd2);
        System.out.println(bd3);//15

        //3.除法,获取商和余数
        BigInteger[] arr = bd1.divideAndRemainder(bd2);
        System.out.println(arr[0]);//2
        System.out.println(arr[1]);//0

        //4.比较是否相同
        boolean result = bd1.equals(bd2);
        System.out.println(result);//false

        //5.次幂
        BigInteger bd4 = bd1.pow(2);
        System.out.println(bd4);//100

        //6.max
        BigInteger bd5 = bd1.max(bd2);//10

        //7.转为int类型整数,超出范围数据有误
        /* BigInteger bd6 = BigInteger.valueOf(2147483647L);
         int i = bd6.intValue();
         System.out.println(i);
         */

        BigInteger bd6 = BigInteger.valueOf(200);
        double v = bd6.doubleValue();
        System.out.println(v);//200.0

7 BigDecimal类

7.1 引入

public class BigDecimalDemo01 {
    public static void main(String[] args) {
        System.out.println(0.09 + 0.01);
    }
}//0.09999999999999999

为什么会产生精度丢失呢?

进行运算的时候,计算机会将这个十进制数据转换成二进制数据,然后再进行运算,计算完毕以后计算机会把运算的结果再转换成十进制数据给我们展示;

7.3 常见方法

常见成员方法

BigDecimal类中使用最多的还是提供的进行四则运算的方法,如下:

public BigDecimal add(BigDecimal value)          // 加法运算
public BigDecimal subtract(BigDecimal value)  // 减法运算
public BigDecimal multiply(BigDecimal value)  // 乘法运算
public BigDecimal divide(BigDecimal value)      // 触发运算

案例1:演示基本的四则运算

        // 创建两个BigDecimal对象
        BigDecimal b1 = new BigDecimal("0.3") ;
        BigDecimal b2 = new BigDecimal("4") ;

        System.out.println(b1.add(b2));     //加法运算4.3
        System.out.println(b1.subtract(b2));//减法运算-3.7
        System.out.println(b1.multiply(b2));//乘法运算1.2
        System.out.println(b1.divide(b2));  //除法运算0.075

案例2:演示除法的特殊情况

如果使用BigDecimal类型的数据进行除法运算的时候,得到的结果是一个无限循环小数,那么就会报错:ArithmeticException。

        // 创建两个BigDecimal对象
        BigDecimal b1 = new BigDecimal("1") ;
        BigDecimal b2 = new BigDecimal("3") ;

        // 调用方法进行b1和b2的除法运算,并且将计算结果在控制台进行输出
        System.out.println(b1.divide(b2));

运行程序进行测试,控制台输出结果如下所示:

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
    at java.base/java.math.BigDecimal.divide(BigDecimal.java:1716)
    at com.itheima.api.bigdecimal.demo02.BigDecimalDemo02.main(BigDecimalDemo02.java:14)

针对这个问题怎么解决,此时我们就需要使用到BigDecimal类中另外一个divide方法,如下所示:

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

上述divide方法参数说明:

divisor:            除数对应的BigDecimal对象;
scale:                精确的位数;
roundingMode:        取舍模式;

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

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

相关文章

C++第一次练习

题目1 class Solution { public:bool isletter(char s){if(s<z&&s>a)return true;if(s>A&&s<Z)return true;return false;}string reverseOnlyLetters(string s) {if(s.empty()){return s;}int left,right;left0;rights.size()-1;while(left<ri…

最新绿豆影视系统 /反编译版源码/PC+WAP+APP端 /附搭建教程+软件

源码简介&#xff1a; 最新的绿豆影视系统5.1.8&#xff0c;这可是个反编译版的源码哦&#xff01;它不仅支持PC端、WAP端&#xff0c;还有APP端&#xff0c;一应俱全。而且附上了搭建教程和软件&#xff0c;安卓和苹果双端都能用&#xff0c;实用方便&#xff01; 优化内容&…

聆思CSK6大模型开发板上手参考

前面发了很多大模型语音交互相关的技术文章&#xff0c;这篇给大家介绍一下大模型语音交互示例的硬件和上手概况。 硬件概况 聆思CSK6大模型开发板长宽尺寸是99.1x72.1mm&#xff0c; 集成了摄像头、麦克风、扬声器、屏幕、无线模块、TF卡等&#xff0c;可以直接用于大模型语音…

2k1000LA 调试HDMI

问题: 客户需要使用HDMI 接口,1080p 的分辨率。 ---------------------------------------------------------------------------------------------------------------- 这里需要看看 龙芯派的 demo 版 的 硬件上的连接。 硬件上: 官方的demo 板 , dvo1 应该是 HDMI的…

如何选择游戏高防服务器,有什么需要注意的点?

自二十世纪初互联网迅速发展&#xff0c;市场发展瞬息万变&#xff0c;游戏行业也迎来了发展的春天。如今游戏行业已成为互联网行业的支柱&#xff0c;占据市场重要的比重。对于游戏行业的企业来说选择服务器是至为重要的一步&#xff0c;市场上的服务器良莠不济&#xff0c;如…

你的提交信息还在拖后腿?看这里,提升代码质量的绝招!

文章目录 前言一、什么是约定式提交&#xff1f;二、创建新仓库三、将代码推送到远程仓库的步骤1.检查当前远程仓库2.添加代码到暂存区3. 进行约定式提交4. 推送代码到远程仓库5. 完成推送 总结 前言 在当今软件开发领域&#xff0c;Git已经成为最广泛使用的版本控制系统之一。…

SpringMVC简单入门操作

一、创建项目 1、创建Maven项目并导入依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- https:/…

2024年9月23日---关于MyBatis框架(2)

4.7 不同返回值类型的查询 4.7.1 返回基本数据类型 /**查询student表中的记录个数 */ int selectCount(); <select id"selectCount" resultType"_int">select count(*) from student; </select> 4.7.2 返回引用类型(实体类) /**返回值为实…

LeetCode题练习与总结:二叉树的最近公共祖先--236

一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也…

【秋招笔试题】多多的平均值

解法&#xff1a;抽掉的两个数字之和为2倍的平均数&#xff0c;那么判断一下2倍的平均数是不是整数。然后在搞一个哈希表存取过的值即可。 package com.sky;import java.util.*;public class Test1 {public static void main(String[] args) {Scanner scanner new Scanner(Sy…

【Linux探索学习】第一弹——Linux的基本指令(上)——开启Linux学习第一篇

前言&#xff1a; 在进入Linux学习之前&#xff0c;我们首先要先做好以下两点&#xff1a;1、已经基本掌握C语言或C&#xff0c;2、已经配置好了Linux的环境&#xff0c;做完以上两点后我们就开始Linux的学习&#xff0c;今天我们首先要学习的就是Linux中最基础的操作&#xff…

毕设基于SSM+Vue3实现设备维修管理系统四:后台框架及基础增删改查功能实现

本章介绍后端基础框架及基础的增删改查功能实现&#xff0c;创建基础的dao、service即controller层相关的基类&#xff0c;并实现基础的增删改查相关功能。 源码下载&#xff1a;点击下载 讲解视频&#xff1a; SMMVUE3实现设备维修管理系统毕设&#xff1a;后端框架搭建及表外…

重塑“万免”电商平台的魅力与潜力

今天&#xff0c;我想与大家深入探讨一个近期在电商领域备受瞩目的新概念——“万免”电商平台。我们将一同剖析其独特的运营模式&#xff0c;挖掘它在私域电商领域的非凡魅力与潜在价值。 一、万免模式的创新解读 万免联盟&#xff0c;一个旨在打破传统电商界限的创新平台&am…

内生性检验与过度识别检验

目录 一、文献综述 二、理论原理 三、实证模型 四、程序代码 一、文献综述 内生性问题在经济学和社会科学研究中一直是一个关键挑战&#xff0c;众多学者致力于寻找有效的方法来解决这一问题并确保研究结果的可靠性。 Angrist 和 Krueger&#xff08;1991&#xff09;在研究…

信用卡存量经营读书笔记

信用卡的各项收益和损失分析表 用杜邦分析法拆利润如下 信用卡要不要烧钱&#xff1f;不要&#xff0c;因为没有网络效应&#xff08;用户量增加带来的优惠比较少&#xff09;和赢家通吃的情况 线上获客的几种方式&#xff1a;引流分成、某个项目的联名信用卡、营业收入分成 …

828华为云征文 | 使用Linux管理面板1Panel管理华为云Flexus云服务器X实例

828华为云征文 | 使用Linux管理面板1Panel管理华为云Flexus云服务器X实例 一、华为云Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点 二、1Panel介绍2.1 1Panel 简介2.2 1Panel 特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购…

【machine learning-17-分类(逻辑回归sigmod)】

分类问题 先说一下什么是分类问题&#xff0c;举个例子&#xff1a; 判定一封邮件是否是垃圾邮件&#xff1b; 判定图片是不是一直猫&#xff1b; 等等 这些问题的答案都是有限的&#xff0c;而不像是线性回归&#xff0c;是存在无限可能的不确定值。 这种问题就是分类问题&am…

分区与分桶

分区 分区字段大小写&#xff1a; 在hive中&#xff0c;分区字段名是不区分大小写的&#xff0c;不过字段值是区分大小写的。我们可以来测试一下 导入数据 load data local inpath /home/hivedata/user1.txt into table part4 partition(year2018,month03,DAy21); load data …

Mysql——初识Mysql

目录 数据库基础 创建数据库 服务器&#xff0c;数据库&#xff0c;表关系 数据逻辑存储 MySQL架构 SQL分类 存储引擎 mysql服务端是一个网络服务器&#xff0c;采用的是TCP协议在应用层 &#xff0c;mysql有自己的协议。 数据库基础 mysql不是数据库&#xff0c;是mysql的…

18.1 k8s服务组件之4大黄金指标讲解

本节重点介绍 : 监控4大黄金指标 Latency&#xff1a;延时Utilization&#xff1a;使用率Saturation&#xff1a;饱和度Errors&#xff1a;错误数或错误率 apiserver指标 400、500错误qps访问延迟队列深度 etcd指标kube-scheduler和kube-controller-manager 监控4大黄金指标 …