常用类(五)System类

news2024/11/15 11:58:28

(1)System类常见方法和案例:

(1)exit:退出当前程序

我们设计的代码如下所示:

package com.ypl.System_;

public class System_ {
    public static void main(String[] args) {
        //exit: 退出当前程序
        System.out.println("ok1");
        //1.exit(0)表示程序退出
        //2. 0表示一个状态,正常的状态
        System.exit(0);  
        System.out.println("ok2");
    }
}

我们运行之后如下所示:

 

 (2)arraycopy: 复制数组元素,比较适合底层调用,一般使用Arrays.copyOf完成复制数组。

我们设计的代码如下所示:

package com.ypl.System_;

import java.util.Arrays;

public class System_ {
    public static void main(String[] args) {
      
        int[] src={1,2,3};
        int[] dest= new int[3]; //dest当前是{0,0,0}
        int[] dest1= new int[3]; //dest当前是{0,0,0}
        int[] dest2= new int[3]; //dest当前是{0,0,0}
        //1.主要是搞清楚这五个参数的含义
        //2.src – the source array.  (源数组)
        // srcPos – starting position in the source array. (从源数组的哪个索引位置开始拷贝)
        // dest – the destination array.  (目标数组,即把源数组的数据拷贝到哪个数组)
        // destPos – starting position in the destination data. (把源数组的数据拷贝到目标数组的哪个索引)
        // length – the number of array elements to be copied. (从源数组拷贝多少个数据到目标数组)
        System.arraycopy(src,0,dest,0,3); //[1,2,3]
        System.out.println("dest="+ Arrays.toString(dest));
        System.arraycopy(src,0,dest1,1,2);//[0,1,2]
        System.out.println("dest1="+Arrays.toString(dest1));
        System.arraycopy(src,0,dest2,1,src.length-1);//[0,1,2]
        System.out.println("dest2="+Arrays.toString(dest2));
    }
}

运行之后如下所示:

 

 (3)currentTimeMillens:返回当前时间距离1970-1-1 的毫秒数

我们设计的代码如下所示:

package com.ypl.System_;

import java.util.Arrays;

public class System_ {
    public static void main(String[] args) {
        //currentTimeMillens:返回当前时间距离1970-1-1的毫秒数
        //
        System.out.println(System.currentTimeMillis());
    }
}

我们运行之后如下所示:

 我们从菜鸟教程的API查看如下所示:

(4)gc:运行垃圾回收机制 System.gc( ).

(2)BigInteger和BigDecimal

应用场景:

(1)BigInteger适合保存比较大的整型

(2)BigDecimal适合保存精度更高的浮点型(小数)

BigInteger

我们查看BigInteger的类图如下所示:

我们发现BigInteger里面有许多方法。

我们设计代码如下所示:

package com.ypl.bignum;

import java.math.BigInteger;

public class BigInteger_ {
    public static void main(String[] args) {
        long l=23788888999l;
        System.out.println("l="+l);
        //当我们编程中,需要处理很大的整数,long 不够用
        //可以使用BigInteger的类来搞定
        long l1=2378888899999999l;
        System.out.println("l1="+l1);

        BigInteger bigInteger = new BigInteger("237888889999999999999");
        BigInteger bigInteger1 = new BigInteger("100");
        System.out.println(bigInteger);
        //1.在对BigInteger进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /
        //2.可以创建一个要操作的BigInteger,然后进行相应操作。
        BigInteger add = bigInteger.add(bigInteger1);
        System.out.println(add); //加
        BigInteger subtract = bigInteger.subtract(bigInteger1);
        System.out.println(subtract); //减法
        BigInteger multiply = bigInteger.multiply(bigInteger1);
        System.out.println(multiply); //乘
        BigInteger divide = bigInteger.divide(bigInteger1);
        System.out.println(divide); //除法

    }
}

 我们运行之后如下所示:

我们下来查看BigDecimal:

我们设计的代码如下所示:

package com.ypl.bignum;

import java.math.BigDecimal;

public class BigDecimal_ {
    public static void main(String[] args) {

        //当我们需要保存一个精度很高的数时,double不够用
        //可以使用BigDecimal
        double d=1999.1111111111111d;
        System.out.println(d);
        double c=1999.5555555555555555555; //会进行精度的缩减
        System.out.println(c);
        BigDecimal bigDecimal = new BigDecimal("1999.555555555555555555");
        BigDecimal bigDecimal1 = new BigDecimal("1.1");
        System.out.println(bigDecimal);
        //1.如果对BigDecimal进行运算,比如加减乘除,需要使用对应的方法
        //2.创建一个需要操作的BigDecimal然后调用相应的方法即可
        BigDecimal add = bigDecimal.add(bigDecimal1); //加
        System.out.println(add);
        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);//减
        System.out.println(subtract);
        BigDecimal multiply = bigDecimal.multiply(bigDecimal1); //乘
        System.out.println(multiply);
        BigDecimal divide = bigDecimal.divide(bigDecimal1);//除,可能抛出异常,在算除法的时候是可能除不尽的,
        // 除不尽会抛出异常,除尽则不会
        System.out.println(divide);

    }
}

我们运行之后如下所示:

发现抛出异常,我们的解决方案如下所示:

package com.ypl.bignum;

import java.math.BigDecimal;

public class BigDecimal_ {
    public static void main(String[] args) {

        //当我们需要保存一个精度很高的数时,double不够用
        //可以使用BigDecimal
        double d=1999.1111111111111d;
        System.out.println(d);
        double c=1999.5555555555555555555; //会进行精度的缩减
        System.out.println(c);
        BigDecimal bigDecimal = new BigDecimal("1999.555555555555555555");
        BigDecimal bigDecimal1 = new BigDecimal("1.1");
        System.out.println(bigDecimal);
        //1.如果对BigDecimal进行运算,比如加减乘除,需要使用对应的方法
        //2.创建一个需要操作的BigDecimal然后调用相应的方法即可
        BigDecimal add = bigDecimal.add(bigDecimal1); //加
        System.out.println(add);
        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);//减
        System.out.println(subtract);
        BigDecimal multiply = bigDecimal.multiply(bigDecimal1); //乘
        System.out.println(multiply);
     //   BigDecimal divide = bigDecimal.divide(bigDecimal1);//除,可能抛出异常,在算除法的时候是可能除不尽的,
        // 除不尽会抛出异常,除尽则不会
        //在调用divide方法时,指定精度即可,BigDecimal.ROUND_CEILING
        //如果有无限循环小数就会保留分子的精度
        BigDecimal divide = bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING);
        System.out.println(divide);

    }
}

我们运行之后如下所示:

我们发现完美解决。 

 (3)Date介绍

1.Date:精确到毫秒,代表特定的瞬间

2.SimpleDateFormat:格式和解析日期的类

SimpleDateFormat格式化和解析日期的具体类。它允许进行格式化(日期-->文本)、解析(文本->日期)和规范化

我们查看类的关系继承图:

 我们查看他的方法,发现里面有很多方法,同时也有很多过时的方法:

 我们了解里面properties的相关:properties指的并不是我们的字段,而是如果我们的类里面有get和set的相关方法,就会把后面的名称自动当作一个properties。

我们通过具体案例来进行了解:
我们设计代码如下所示:

package com.ypl.data_;

public class Dog {
    private String name;
    private int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void cry(){

    }
    class Air{

    }
    //说明一下diagram IDEA properties 的含义
    public void  setAddress(String address){

    }
    public double getSalary( ){
        return 1.1;
    }
}

我们点击了properties之后,我们发现出现salary和address.

 我们没有点击之后,我们发现出现如下所示:出现了setAddress和getSalsry方法。

我们设计的代码如下所示:

package com.ypl.data_;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date01 {
    public static void main(String[] args) throws ParseException {
        //1.获取当前系统时间
        //2.这里的Date类是在java.util包
        //3.默认输出的日期格式是国外的方式,因此通常需要对格式进行转换
        Date d1 = new Date(); //获取当前系统时间
        System.out.println("当前日期="+d1);
        //1.创建SimpleDateFormat对象,可以指定相应的格式
        //2.这里的格式使用的字母是规定好,不能乱写
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
        String format = sdf.format(d1); //format:将日期转换成指定格式的字符串
        System.out.println("当前日期="+format);

        Date d2 = new Date(9234567); //通过指定毫秒数得到时间
        System.out.println("d2="+d2); //获取某个时间对应的毫秒数
        SimpleDateFormat smd = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
        String format1 = smd.format(d2);
        System.out.println("当前日期="+format1);

        //1.可以把一个格式化的String转成对应的Date
        //2.得到Date仍然在输出时,还是按照国外的形式,如果希望指定格式输出,需要转换(使用SimpleDateFormat)
        //3.在把String -->Date,使用的sdf格式需要和你给的String的格式一样,否则会抛出转换异常。
        String s="1996年01月01日 10:20:30 星期一"; //格式必须和sdf上的格式一致
        Date parse = sdf.parse(s);
        System.out.println("parse="+parse);
        System.out.println("parse"+sdf.format(parse));

    }
}

我们运行之后如下所示:

 

我们在api文档里面来查看SimpleDate:

(4)Calendar类(日历)

1.第二代日期类,主要就是Calendar类(日历)

2.Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

我们查看他的类图:

 我们发现Calendar的构造器是私有的:

我们查看他的方法:

 我们发现这些方法中有些是Calendar私有的。

 我们在去创建一个Calendar的时候是通过getInstance来获取的。

我们查看源码如下:

我们发现这两个构造方法都是私有的。

通过如下两个来获取Calendar:

  我们查看Calendar的字段如下所示:

我们查看他的内部类如下所示:
 我们的案例代码如下所示:

package com.ypl.data_;

import java.util.Calendar;

public class Calendar_ {
    public static void main(String[] args) {
        //1.Calendar是一个抽象类,并且构造器是private
        //2.可以通过getInstance( )来获取实例
        //3.提供大量的方法和字段提供给程序员
        //4.Calendar没有提供对应的格式化的类,因此需要程序员自己组合来输出(灵活)
        Calendar c = Calendar.getInstance();//创建日历类对象 //比较简单,自由
        System.out.println("c="+c);
        //4.获取日历对象的某个日历字段
        System.out.println("年:"+c.get(Calendar.YEAR));
        //这里为什么要+1,因为Calendar返回月时候,是按照 0 开始编号
        System.out.println("月:"+(c.get(Calendar.MONTH)+1));
        System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
        System.out.println("小时:"+c.get(Calendar.HOUR));
        System.out.println("分钟:"+c.get(Calendar.MINUTE));
        System.out.println("秒:"+c.get(Calendar.SECOND));
        //Calendar没有专门的格式化方法,所以需要程序员自己来组合显示
        System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
    }
}

 我们运行之后如下所示:

以上显示的是12小时时间,我们修改如下为24小时:

package com.ypl.data_;

import java.util.Calendar;

public class Calendar_ {
    public static void main(String[] args) {
        //1.Calendar是一个抽象类,并且构造器是private
        //2.可以通过getInstance( )来获取实例
        //3.提供大量的方法和字段提供给程序员
        //4.Calendar没有提供对应的格式化的类,因此需要程序员自己组合来输出(灵活)
        //5.如果我们需要按照24小时进制来获取时间,Calendar.HOUR==改成==>Calendar.HOUR_OF_DAY
        Calendar c = Calendar.getInstance();//创建日历类对象 //比较简单,自由
        System.out.println("c="+c);
        //4.获取日历对象的某个日历字段
        System.out.println("年:"+c.get(Calendar.YEAR));
        //这里为什么要+1,因为Calendar返回月时候,是按照 0 开始编号
        System.out.println("月:"+(c.get(Calendar.MONTH)+1));
        System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
        System.out.println("小时:"+c.get(Calendar.HOUR_OF_DAY));
        System.out.println("分钟:"+c.get(Calendar.MINUTE));
        System.out.println("秒:"+c.get(Calendar.SECOND));
        //Calendar没有专门的格式化方法,所以需要程序员自己来组合显示
        System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
    }
}

我们运行之后如下所示:

 

 (5)第三代日期类:LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocalDateTime(日期时间/年月日时分秒)JDK8加入

前面两代日期类的不足分析

JDK1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK1.1引入Calendar类之后被弃用了。而Calendar也存在问题是:

1.可变性:像日期和时间这样的类应该是不可变的。

2.偏移性:Date中的年份是从1900开始的,而月份都从0开始

3.格式化:格式化只对Date有用,Calendar则不行

4.此外,他们也不是线程安全的;不能处理闰秒等(每隔2天,多出1s)

LocalDate:只包含日期,可以获取日期字段

LocalTime只包含时间,可以获取时间字段

LocalDateTime:包含日期+时间,可以获取日期和时间字段

我们查看LocalDateTime的类图如下所示:

我们查看他的构造器:
 我们查看他的方法如下所示:
 

 我们查看他的基本获取如下所示:

package com.ypl.data_;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalDate_ {
    public static void main(String[] args) {
        //第三代日期
        //1.使用now( )返回表示当前日期时间的对象
        LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now( ); //LocalTime.now( )
        System.out.println(ldt);
        System.out.println("年="+ldt.getYear());
        System.out.println("月="+ldt.getMonth());//英文日
        System.out.println("月="+ldt.getMonthValue());//中文月

        System.out.println("日="+ldt.getDayOfYear());//一年的第几天
        System.out.println("日="+ldt.getDayOfMonth());//一个月的第几天
        System.out.println("时="+ldt.getHour());
        System.out.println("分="+ldt.getMinute());
        System.out.println("秒="+ldt.getSecond());

        LocalDate now = LocalDate.now();//可以获取年月日
        System.out.println(now.getYear());
        LocalTime now1 = LocalTime.now();//可以获取时分秒
        System.out.println(now1.getHour());


    }
}

运行之后如下所示:

DateTimeFormatter格式化

我们进行格式化如下所示:

 DateTimeFormatter格式日期类,类似于SimpleDateFormat

我们在jdk1.8及其以后发现如下所示:

 我们实例如下所示:

package com.ypl.data_;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class LocalDate_ {
    public static void main(String[] args) {
        //第三代日期
        //1.使用now( )返回表示当前日期时间的对象
        LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now( ); //LocalTime.now( )
        System.out.println(ldt);

        //2.使用DateTimeFormatter对象来进行格式化
        //创建DateTimeFormatter对象
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String format = dateTimeFormatter.format(ldt);
        System.out.println("格式化的日期="+format);




    }
}

我们运行之后如下所示:

 Instant时间戳,类似于Date,提供了一系列和Date类转换的方式

Instant -->Date:Date.form(instant);

Date--->Instant:date.toInstant():

我们查看他的类图如下所示:

 我们查看他的方法如下所示:

 我们设计的代码如下所示:

package com.ypl.data_;

import java.sql.Date;
import java.time.Instant;

public class Instant_ {
    public static void main(String[] args) {
       //1.通过静态方法now( )获取表示当前时间戳的对象
        Instant now = Instant.now();
        System.out.println(now);
        //2.通过from可以把Instant转成Date
      java.util.Date from = Date.from(now);
        System.out.println(from);
        //3.通过date的toInstant( )可以把date转成Instant对象
        Instant instant = from.toInstant();
         System.out.println(instant);
        
    }
}

我们运行之后如下所示:

第三代日期类更多方法:

1.LocalDateTime类

2.MonthDay类:检查重复事件

3.是否是闰年

4.增加日期的某个部分

5.使用plus方法测试增加时间的某个部分

6.使用minus方法测试查看一年前和一年后的日期

 我们设计的代码如下所示:
 

package com.ypl.data_;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class LocalDate1_ {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        //提供 plus和minus方法可以对当前时间进行加或者减
        //看看890天后,是什么时候  把年月日-时分秒
        LocalDateTime localDateTime = now.plusDays(890);
        System.out.println("890天后="+dateTimeFormatter.format(localDateTime));

        //看看在3456分钟前是什么时候, 把年月日-时分秒输出
        LocalDateTime localDateTime1 = now.minusMinutes(3456);
        System.out.println("3456分钟前 日期="+dateTimeFormatter.format(localDateTime1));
    }
}

运行之后如下所示:

 

 

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

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

相关文章

详解C++的类型转换

文章目录前言一、C语言中的类型转换二、为什么C需要四种转换三、C强制类型转换3.1 static_cast3.2 reinterpret_cast3.3 const_cast3.4 dynamic_cast四、RTTI总结前言 在C语言的类型转换有一个非常大的坑,有好多悄悄地转换,有时候把我们转换的就蒙了,因为C要兼容C语言,所以C就…

docker容器单机网络

前言 通过文章 容器的本质可知,容器只是一个进程,而容器所能看到的网络栈,是隔离在自己的 Network Namespace 中。docker 容器单机网络支持四种网络模式,也都是基于 Network Namespace 实现的。本文主要是介绍这四种模式的使用方…

四、actions处理异步行为和调用

四、actions处理异步行为和调用 action:装方法的一个对象。 使用场景:在Vuex运行的环节中,有异步操作——>就必须经过action mutations不能进行异步操作。 最常用的案例:异步请求获取数据 使用方式: 组件中使用a…

移动WEB开发一、基础知识

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

git ssh配置

ssh配置 执行以下命令进行配置 git config --global user.name “这里换上你的用户名” git config --global user.email “这里换上你的邮箱” 执行以下命令生成秘钥: ssh-keygen -t rsa -C “这里换上你的邮箱” 执行命令后需要进行3次或4次确认。直接全部回车就…

基于 ChatGPT 3.5 和 Bing 搜索引擎的会话式搜索引擎 Perplexity 初体验

一、背景 最近 ChatGPT 非常火爆,但是基础版经常访问失败,于是乎想找一些替代品。 搜到了一个 基于 ChatGPT 3.5 和 Bing 搜索的会话式搜索引擎 Perplexity 体验了下非常不错,值得推荐。 二、联系和区别 2.1 联系 官网在外媒社交媒体上…

三、NetworkX工具包实战3——特征工程【CS224W】(Datawhale组队学习)

开源内容:https://github.com/TommyZihao/zihao_course/tree/main/CS224W 子豪兄B 站视频:https://space.bilibili.com/1900783/channel/collectiondetail?sid915098 斯坦福官方课程主页:https://web.stanford.edu/class/cs224w NetworkX…

【安卓开发】安卓广播机制

读书笔记系列(第一行代码) 5.1 广播机制简介 标准广播:完全异步执行,广播发出后,所有广播接收器几乎都同一时刻收到这条广播(无法被截断)有序广播:同步执行,广播发出后…

优秀!19年后,它再次成为TIOBE年度编程语言

新年伊始,TIOBE发布了2022年度编程语言,C时隔19年再度登顶,成为2022年最受欢迎的编程语言。TIOBE在2003年首次统计编程语言的流行指数时,C便成为年度编程语言。2022年,C获得了最高的人气4.62%,紧随其后的是…

maven打包顺序与jvm类加载顺序

背景:一次dev测试过程中,发现代码中关于jsr303的校验失效,校验类如下,会报一个莫名其妙的运行时错误;遂进行排查。import javax.validation.constraints.NotBlank;Data Accessors(chain true) public class Demo {Not…

为什么会有跨域问题,代理是怎么解决的?

📖 文章导航关于跨域问题同源策略跨域资源共享解决方案前端代理后端服务端代理关于跨域问题 同源策略 同源策略(Same-origin policy)是浏览器中一个重要的安全策略,它用于限制不同源之间的资源交互。其目的是为了帮助阻隔恶意文…

由浅入深,一起来刷Java高级开发岗面试指南,面试必定无忧!

前言 我只想面个CV工程师,面试官偏偏让我挑战造火箭工程师,加上今年这个情况更是前后两男,但再难苟且的生活还要继续,饭碗还是要继续找的。在最近的面试中我一直在总结,每次面试回来也都会复盘,下面是我根…

Dubbo之SpringBoot启动源码详解

需要前置知识,了解spring源码,springboot自动加载机制等 DubboBootstrap启动 详细信息可看 学习Dubbo源码需要了解的基础内容源码详解 DubboBootstrap 启动所需要的信息 添加应用程序配置添加注册中心配置添加协议配置添加服务配置启动 SpringBoot启…

广东MES系统实施过程中的要点和难点

MES系统已经成为企业目前实施的焦点。但是MES系统又分为很多的种类,对企业之间则是很难选择的,因为大部分的企业对MES系统的要点和难点并不清楚,而今天就让先达盈致的小编带大家了解一下广东MES系统实施过程中的要点和难点。MES系统是实现企业…

戴尔T5810电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。硬件型号驱动情况主板戴尔T5810,C610/612芯片处理器英特尔至强E5-2620 v3已驱动内存12 GB已驱动硬盘500GB WD Blue Solid State Drive & 2TB Seagate Mobile Hard Drive (Upgraded)已驱动显卡RX 570 4Gb已驱…

october-cms

环境准备 靶机链接:百度网盘 请输入提取码 提取码:3e4s 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2021.1 信息收集 1.探测目标靶机ip。 2.探测靶机开放端口和服务情况。 漏洞探测 1.访问网页 2.用dirsearch扫描…

用javascript分类刷leetcode15.链表(图文视频讲解)

链表操作如下图: 动画过大,点击查看 时间复杂度: prepend: O(1)append: 如果已知尾节点O(1),否则需要遍历到尾节点,然后加入新节点O(n)insert: 插入到已知节点的后面O(1),需要先查找后插入O(n)lookup: O…

【STM32笔记】__WFI();进入不了休眠的可能原因

【STM32笔记】__WFI();进入不了休眠的可能原因 【STM32笔记】低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)…

Outlook邮箱注册教程 不信你看完还不懂

Outlook作为Microsoft Office家族的办公软件套装之一,关联着很多微软的其他产品。而且Outlook是欧美地区认可度比较高的,不仅可以用于一些境外联络还可以拿来注册Instagram、Twitter、Facebook等各种社交媒体平台。龙哥在这里就给大家出一份详细的Outloo…

Python打包调试问题解决

使用pyinstaller打包,发现问题:代码运行时调试的结果不一致代码中设定的图标打包后没有显示出来打包代码程序test.py为入口函数main()所在的文件pyinstaller -F -w -i test.ico test.py 不会出现控制台,图标为test.ic…