精华内容
下载资源
问答
  • 深度理解原始值类型和引用值类型数据类型基本数据类型引用值类型特点栗子栗子在内存中的存储复制总结 数据类型 基本数据类型 String Number Boolean Null Undefined Symbol 引用值类型 Object Array Function … ...

    数据类型

    基本数据类型

    • String
    • Number
    • Boolean
    • Null
    • Undefined
    • Symbol

    引用值类型

    • Object
    • Array
    • Function

    前五个是ES5之前的,第六个是ES6之后出现的。引用数据类型如果不太严谨的来说,几乎全是引用数据类型,也就是一切皆对象。

    因为JavaScript语言,本就是一个趋向面向对象的脚本语言,可以看出,它受Java的影响很深,借鉴了Java语言的数据结构,将值分为原始值和对象两大类,虽然数据结构上分开了,但是Java中有包装类的概念,可以将原始值包装成对象,也就是引用数据类型。这样更加满足在Java中的一切皆对象的思想,面向对象的思想也就完整了,那么这个思想也被设计者(Brendan Eich-布兰登·艾奇)拿了过来,在JavaScript中同样适用,JavaScript中也有包装类。

    特点

    栗子

    123.length; //报错
    123.toString() //报错
    
    var a = 123;
    a.length; //undefined
    a.toString(); //"123"
    
    var a = "123";
    a.length; //3
    

    1、为什么直接使用纯原始值直接去获取属性调用方法会报错?

    答:123.length,123是一个值,而且是一个原始值类型,这句代码是想要在原始值上获取属性名叫 length 的属性,但是它报错了,说明如果是纯原始值我们绝对不能获取属性,那么方法呢?事实上也不行

    2、为什么var了一个变量后,获取属性就不报错了,返回undefined,但是调用方法却正常?

    答:当在控制台var了一个a,并赋值原始值123后,a. 的时候会出现 so many方法或属性的提示。
    在这里插入图片描述
    而纯原始值123.的时候什么东西都没有,那么关键是a. 这些方法和属性都是从哪里来的呢?从而引出了一个叫包装类的概念。

    js是一种弱类型语言,var一个变量可以存储不同的数据类型,不需要类型声明,js引擎系统也是宽宏大度的,当你想要使用原始值类型获取属性或者方法的时候,js引擎系统会默认帮你自动包装成一个对象,也就是包装类对象,在构造此对象的构造函数的原型链上有着这些方法。

    那么a.length为什么不报错,还是undefined以及a.toString()是正常的返回数据也就能解释的通了。当存储着原始值类型的a变量获取属性和方法时,js引擎系统认为你有可能不是有意在原始值类型上获取属性或方法的,既然是无心之过,就大度原谅你一下吧,就使用包装类将其包装成包装类对象要是原型链上有属性或者方法,你就用就可以了,如果没有也不会报错,只是返回一个undefined
    在这里插入图片描述
    3、为什么原始值string获取属性正常,调用方法也正常?

    答:因为构造出string类型的包装类对象的构造函数的原型链上的方法多,有lengthtoString()
    在这里插入图片描述

    栗子

    var a = 123;
    var b = a;
    b = 456;
    b.m = 456;
    console.log(a); //123
    console.log(b); //456
    console.log(b.m) //undefined
    console.log(a.m) //undefined
    
    var c = {m: 123};
    var d = c;
    d.m = 456;
    d.n = 789;
    console.log(c.m); //456
    console.log(d.m); //456
    
    console.log(c.n); //789
    console.log(d.n); //789
    

    1、为什么明明给原始值类型新增了属性b.m,访问这个属性返回的是undefined?

    答:这个其实是js引擎系统自动搞的事情。上面提到了,原始值类型是不能有属性和方法的,但是因为js是一个弱语言类型,js引擎系统它是很大度的,如果你想在原始值类型上去获取属性或者执行方法,js引擎系统会自动对其进行包装成包装类对象,我们在原始值上获取属性或者方法,实质上只在这个包装类对象上或者原型链上获取属性和方法,但这里需要注意的是,这个包装类对象不是一直存在的,而是在你进行操作之后就立即销毁了

    在这里插入图片描述
    销毁了之后,再console.log(b.m);是又重新包装了一个对象,和增加属性时的根本不是同一个对象,当然返回的是undefined。

    2、把存储原始值类型变量的复制到新变量中,新的变量中的值发生改变,原来的变量中的值不随之改变。

    答:这种现象出现的本质是数据内存中存储机制造成的。
    在内存中,原始值类型存储在栈(Stack)中,引用值类型则是将地址引用存储在栈里,内容值存储在堆(Heap)里。

    在内存中的存储

    原始值类型在内存中的存储
    var a;在栈内存中开辟一个内存空间标识为a,存储值为123.
    引用数据类型在内存的存储
    var c;在栈内存中开辟一个内存空间标识为c,存储值为c对象的地址引用 m
    堆内存开辟一块内存空间,用来存储c对象中的键值对内容,这块堆内存引用的地址被栈内存中标识符为c的内存空间存储着。都是无序的键值对,类似Java的HashMap集合。

    复制

    当复制原始值时

    只是将栈内容空间中存储的值拿了过去,空间上还是相互独立,互不干扰。所以新的变量中的值发生改变,原来的变量的值不随之改变。

    当复制引用值类型时

    也是将栈内存中存储的值拿了过去,只不过这次拿的是堆内存的地址引用,并不是值本身,所以地址的指向并没有变,指向的还是堆内存中的那个存储对象键值对内容的那个对象。所以新的变量中的值的属性发生变化,原来的变量中的值的属性也随之改变。

    总结

    1. 从应用角度出发,原始值类型是绝对不能有属性和方法的,引用值类型却可以拥有属性和方法。

    2. 从底层角度出发,原始值类型存储在栈中,引用值类型则是将地址引用存储在栈里,内容值存储在堆里。

    3. 首先要注意的是,js的语言特性,它是一种弱类型语言,相比强类型语言,异常的灵活多变。

    4. 不要试图通过原始值类型去获取属性或者执行方法,因为有包装类的自动包装,但会立即销毁。你可能得不到你想要的结果,除非你对原型链上的属性和方法很熟悉。

    5. 尽量不要去使用 ==号去比较两个引用值类型是否相等,因为 ==号对于原始值来说,比较的是值本身,但是对于引用值 比较的是地址,如果地址指向相同,那么系统就认为两者是同一对象,也就相等,反之则不相等。这就有可能就算 看上去对象长得一样,实际上是两个对象并不相等。所以在这一点要格外的注意。

    展开全文
  • Android GNSS原始观测的含义及伪距计算

    千次阅读 热门讨论 2021-03-19 16:38:39
    如何接收原始观测 通过LocationManager注册实现了GnssMeasurementsEvent.Callback接口的监听器,通过onGnssMeasurementsReceived回调方法来接收原始观测。 GnssMeasurementsEvent.Callback ...


    引言


    2016年谷歌在Android上开放原始观测值的访问接口之后,开发者可以通过获取原始观测值进行自主的定位计算,本文简要介绍定位过程中的一环,即伪距的计算。


    本文首先对Android应用框架层和其中的位置服务类进行简要介绍,随后说明开发者如何在Android中获取原始观测值及它们各自的含义,最后介绍如何通过对原始观测值进行简单计算获得伪距观测值

    Android应用框架层


    Android系统架构分为五层:从上到下依次是应用层、Java应用框架层、系统Native库和Android运行时环境、硬件抽象层和Linux内核层。


    Android应用框架层是用来支持应用层中的程序运行的框架层。简而言之,框架层就是Android系统提供给开发者的轮子,你调用这里面的各种类去完成你应用的搭建。


    这一层提供了构建应用程序时可能用到的各种API,如:
    Android位置管理器(LocationManager):提供了一系列方法来处理地理位置相关的问题。


    我们就是要调用这个位置管理的API去完成原始观测值的获取,当然,如何计算就由我们自己定义了。

    如何获取原始观测值


    要获取原始观测值必须通过LocationManager类,向LocationManager注册监听器后请求位置更新,就能获得相应的信息。


    监听器有很多种,比如:
    1.GnssMeasurements.Callback:测量监听器
    2.GnssStatus.Callback:卫星状态监听器
    3.GnssNavigationMessage.Callback:卫星导航监听器

    在这里我们要实现的是伪距的计算,所以注册测量监听器就可以。


    当我们通过LocationManager注册实现了GnssMeasurementsEvent.Callback接口的监听器,就可以通过onGnssMeasurementsReceived回调方法来接收原始观测值(实际上是通过参数)。


    那么我们如何通过LocationManager注册监听器呢?
    首先当然要创建好监听器,这里的监听器就是实现了GnssMeasurementsEvent.Callback接口的类的实例化对象,因为这个对象必然实现了接口中定义的回调方法。


    然后通过以下三步注册监听器:

    第一步:获取系统位置服务的引用。通过调用当前活动对象的getSystemService方法,传入Context.LOCATION_SERVICE参数,再将结果进行一个类型转换。

    第二步:调用第一步获取的位置服务引用的registerGnssMeasurementsCallback方法,方法的名字已经基本说明了它的含义,将监听器对象作为参数传进去。

    第三步:请求位置更新。调用第一步获取的位置服务引用的requestLocationUpdates方法,这个方法有四个参数,含义分别为:类容提供者(一般为LocationManager.GPS_PROVIDER)、最小时间间隔、最小位移间隔、位置监听器(这里给一个空实现)。


    获取原始观测值的过程及其含义见下方代码和注释

    // 使用匿名类来创建一个监听器,不了解匿名类的可以先学习一下
    GnssMeasurementsEvent.Callback mGnssMeasurementsListener = new GnssMeasurementsEvent.Callback() {
                @Override
                public void onGnssMeasurementsReceived(GnssMeasurementsEvent eventArgs) {
                    super.onGnssMeasurementsReceived(eventArgs);
                    // 通过参数的 getClock()方法获取钟对象
                    GnssClock clock = eventArgs.getClock();
                    // 通过参数的 getMeasurements()方法获取观测值对象的集合
                    // 因为接收机只有一部,而观测卫星众多,这就是钟对象只有一个
                    // 而观测值对象有多个的原因
                    Collection<GnssMeasurement> measurements = eventArgs.getMeasurements();
                    // 遍历观测值对象集合,定义行为
                    for(GnssMeasurement measurement : measurements){
                    	// to do
                    }
                    });
                }
    
                @Override
                public void onStatusChanged(int status) {
                    super.onStatusChanged(status);
                }
            };
    
    // 获取系统 LocationManager 的一个引用
    LocationManager mLocationManager = (LocationManager) mActivity.getSystemService(Context.LOCATION_SERVICE);
    // 向 LocationManager 注册我们的测量监听器
    mLocationManager.registerGnssMeasurementsCallback(mGnssMeasurementsListener, null);
    // 请求位置跟新,所有监听器的回调都必须通过此方法
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 0, new LocationListener() {
        @Override
        public void onLocationChanged(@NonNull Location location) {
        }
    });
    

    下面介绍一下与伪距计算相关的两个重要的类

    GnssMeasurement类


    这个类的准确定义如下,相信大家都能看懂:
    A class representing a GNSS satellite measurement, containing raw and computed information.


    获取方式:通过eventArgs.getMeasurements()获取GnssMeasurement对象的集合遍历得到每一个GnssMeasurement对象。


    下面的方法都属于GnssMeasurement对象:

    方法含义
    getSvid()获取卫星id
    getConstellationType()获取卫星星座类型
    hasCarrierFrequencyHz()
    getCarrierFrequencyHz()获取该信号的载波频率
    getTimeOffsetNanos()Gets the time offset at which the measurement was taken
    getReceivedSvTimeNanos()获取卫星信号发射时间

    GnssClock类


    这个类的准确定义如下,相信大家也能看懂:

    1. A class containing a GPS clock timestamp.
    2. It represents a measurement of the GPS receiver’s clock.

    获取方式:eventArgs.getClock()获取GnssClock对象


    下面的方法都属于GnssClock对象:

    方法含义
    getTimeNanos()获取本地硬件时钟
    hasFullBiasNanos()
    getFullBiasNanos()获取本地硬件时钟与GPST的偏差
    hasBiasNanos()
    getBiasNanos()获取FullBiasNanos的亚纳米级偏差
    hasLeapSecond()
    getLeapSecond()(1)

    Note:
    (1)GPST属于原子时,GPST在起点1980年1月6日0h00m00s与UTC时刻相等;UTC也是以原子时的时间频率基准来记录,但为了维持其与UT1的差距保持在0.9s以内,UTC会跳秒。getLeapSecond()获取的就是1980年1月6日0h00m00s以来UTC所跳的秒数

    对时间系统有疑问的话可以看一下这篇文章 时间系统


    伪距的计算原理


    伪距 = (信号接收时间 - 信号发射时间)* 光速
    下面的接收时间和发射时间的计算都以GPS为例,如果要根据其它系统的卫星来计算伪距,参考GNSS各星座时间系统转换
    在这里插入图片描述

    (一)原始观测值计算得到 信号接收时间:
    在这里插入图片描述
    其中,TimeNanos由GnssClock对象调用 getTimeNanos() 方法得到,其它变量的获取方式类似。

    另外,还要计算GPS整周纳秒数,GPS整周weekNumber的计算方法如下:
    在这里插入图片描述
    将weekNumber乘以一星期的纳秒数,就得到了GPS整周纳秒数。


    (二)原始观测值计算得到 信号发射时间:

    发射时间取决于每个信号,所以从GnssMeasurement对象获得。
    在这里插入图片描述
    注意GLONASS的发射时间使用的是日内秒,需要对接收时间以86400取余。


    样例代码
    我的思路是,自定义一个GnssRawData类,用一个GnssClock和一个GnssMeasurement对象来创建这个RawData对象,然后从中获取伪距、载波、卫星标识等信息。

    public class GnssRawData {
    
    	// 用到的常量
        private static final double L1Frequency = 1575.42 * 1E6;
        private static final double L2Frequency = 1227.60 * 1E6;
        private static final double c_ON_NANO = 299792458E-9;
        private static final double WEEK_SECOND = 604800;
        private static final double WEEK_NANOSECOND = 604800 * 1E9;
        private static final double DAY_NANOSECOND = 86400 * 1E9;
    
        private final GnssMeasurement measurement;  // final修饰的成员变量必须在定义时或者在构造器中初始化。
        private final GnssClock clock;
        private final int prn;
        private final int constellationType;
        private final double carrierFrequencyHZ;
    
        private double pseudorange;
    
    	// 构造函数,传入 GnssClock 和 GnssMeasurement 对象
        public GnssRawData(GnssMeasurement measurement, GnssClock clock) {
            this.measurement = measurement;
            this.clock = clock;
            this.prn = measurement.getSvid();
            this.constellationType = measurement.getConstellationType();
            this.carrierFrequencyHZ =
                    measurement.hasCarrierFrequencyHz() ? measurement.getCarrierFrequencyHz() : L1Frequency;
            this.pseudorange = 0;
    
            calcPseudorange();
        }
    
    	// 获取卫星标识
        public String getPRN() {
            Locale locale = Locale.getDefault();
            switch (constellationType) {
                case GnssStatus.CONSTELLATION_BEIDOU:
                    return "C" + String.format(locale, "%02d", prn);
                case GnssStatus.CONSTELLATION_GLONASS:
                    return "R" + String.format(locale, "%02d", prn);
                case GnssStatus.CONSTELLATION_GPS:
                    return "G" + String.format(locale, "%02d", prn);
                case GnssStatus.CONSTELLATION_GALILEO:
                    return "E" + String.format(locale, "%02d", prn);
                case GnssStatus.CONSTELLATION_QZSS:
                    return "J" + String.format(locale, "%02d", prn);
                default:
                    return "U" + String.format(locale, "%02d", prn);
            }
        }
    
    	// 获取信号载波频率,以 MHz 为单位
        public double getCarrierFrequencyHZ() {
            return carrierFrequencyHZ / 1E6;
        }
    
    	// 获取伪距,以 m 为单位
        public double getPseudorange() {
            return pseudorange;
        }
    
        private void calcPseudorange() {
            double TimeNanos = clock.getTimeNanos();
            double TimeOffsetNanos = measurement.getTimeOffsetNanos();
            double FullBiasNanos = clock.hasFullBiasNanos() ? clock.getFullBiasNanos() : 0;
            double BiasNanos = clock.hasBiasNanos() ? clock.getBiasNanos() : 0;
            double ReceivedSvTimeNanos = measurement.getReceivedSvTimeNanos();
            double LeapSecond = clock.hasLeapSecond() ? clock.getLeapSecond() : 0;
    
            // Arrival Time
            double tTxNanos = ReceivedSvTimeNanos;
    
            // Transmission Time
            int weekNumber = (int) Math.floor(-(double) (FullBiasNanos) * 1E-9 / WEEK_SECOND);
            double tRxNanos = (TimeNanos + TimeOffsetNanos) - (FullBiasNanos + BiasNanos) - weekNumber * WEEK_NANOSECOND;
    
            switch (constellationType) {
                case GnssStatus.CONSTELLATION_GALILEO:
                case GnssStatus.CONSTELLATION_GPS:
                    break;
                case GnssStatus.CONSTELLATION_BEIDOU:
                    tRxNanos -= 14E9;
                    break;
                case GnssStatus.CONSTELLATION_GLONASS:
                    tRxNanos = tRxNanos - LeapSecond * 1E9 + 3 * 3600 * 1E9;
                    tRxNanos = tRxNanos % DAY_NANOSECOND;
                    break;
                default:
                    tRxNanos = tTxNanos;
            }
    
            pseudorange = (tRxNanos - tTxNanos) * c_ON_NANO;
        }
    }
    

    只需要按第一个代码块接收GnssMeasurementsEvent参数eventArgs,然后遍历获取GnssMeasurement对象,和GnssClock对象传入构造器,就可以从GnssRawData对象中获取所需的信息。注意 GnssClock同一历元是相同的,而GnssMeasurement有多个 ,如果一颗卫星有多频的观测,会有多个GnssMeasurement对象有相同的prn而carrierFrequencyHz不同。


    我的工程中此部分的完整代码如下,便不再多做叙述,有不懂的地方可以私信我,也可以自行学习相关知识:

    private final GnssMeasurementsEvent.Callback gnssMeasurementsListener = new GnssMeasurementsEvent.Callback() {
            @Override
            public void onGnssMeasurementsReceived(GnssMeasurementsEvent eventArgs) {
                super.onGnssMeasurementsReceived(eventArgs);
                GnssClock clock = eventArgs.getClock();
                Collection<GnssMeasurement> measurements = eventArgs.getMeasurements();
                List<Mea> mLst = new ArrayList<>();
                for (GnssMeasurement measurement : measurements) {
                    GnssRawData data = new GnssRawData(measurement, clock);
                    mLst.add(new Mea(data.getPRN(), data.getCarrierFrequencyHZ(), data.getPseudorange(),
                            clock.getTimeNanos(), clock.getFullBiasNanos(), measurement.getReceivedSvTimeNanos()));
                }
                Collections.sort(mLst);
                StringBuilder builder = new StringBuilder();
                Locale locale = Locale.getDefault();
                builder.append(String.format(locale, "%5s%20s%20s\n", "SV", "Carrier(MHz)", "Value"));
                for (Mea m : mLst) {
                    builder.append(String.format(locale, "%5s%20.3f%20.3f\n", m.getPRN(),
                            m.getCarrier(), m.getPseudorange()));
                }
                mActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(builder.toString());
                    }
                });
            }
    
            @Override
            public void onStatusChanged(int status) {
                super.onStatusChanged(status);
            }
        };
        
    	/**
         * 将 measurement排序(为了查看是否有多频)
         */
        class Mea implements Comparable<Mea> {
            private final String prn;
            private final double carrier;
            private final double pseudorange;
            private final double TimeNanos;
            private final double FullBiasNanos;
            private final double ReceivedSvTimeNanos;
    
            public Mea(String prn, double carrier, double pseudorange, double TimeNanos,
                       double FullBiasNanos, double ReceivedSvTimeNanos) {
                this.prn = prn;
                this.carrier = carrier;
                this.pseudorange = pseudorange;
                this.TimeNanos = TimeNanos;
                this.FullBiasNanos = FullBiasNanos;
                this.ReceivedSvTimeNanos = ReceivedSvTimeNanos;
            }
    
            @Override
            public int compareTo(Mea o) {
                return this.prn.compareTo(o.prn);
            }
    
            public String getPRN() {
                return prn;
            }
    
            public double getCarrier() {
                return carrier;
            }
    
            public double getPseudorange() {
                return pseudorange;
            }
    
            public double getTimeNanos() {
                return TimeNanos;
            }
    
            public double getFullBiasNanos() {
                return FullBiasNanos;
            }
    
            public double getReceivedSvTimeNanos() {
                return ReceivedSvTimeNanos;
            }
        }
    
    展开全文
  • 有时用户会修改Win10系统的环境变量,改到后面原来是什么的也记不得了,想要改回去还要去别的电脑查看,这里小编分享下Win10 64位环境变量的默认初始。推荐:Win10 64位正式版下载用户变量Path: %USERPROFILE%\...

    有时用户会修改Win10系统的环境变量,改到后面原来是什么的也记不得了,想要改回去还要去别的电脑查看,这里小编分享下Win10 64位环境变量的默认初始值。

    推荐:Win10 64位正式版下载

    6e1f0ffab0f8a97a67e5362307e71c38.png

    用户变量

    Path: %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;

    TEMP: %USERPROFILE%\AppData\Local\Temp

    TMP:  %USERPROFILE%\AppData\Local\Temp

    系统变量

    ComSpec: %SystemRoot%\system32\cmd.exe

    NUMBER_OF_PROCESSORS: 4

    OS: Windows_NT

    PATH :

    %SystemRoot%\system32 w10zj.com

    %SystemRoot%

    %SystemRoot%\System32\Wbem

    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

    PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

    PROCESSOR_ARCHITECTURE: AMD64

    PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel

    PROCESSOR_LEVEL: 6

    PROCESSOR_REVISION: 3a09

    PSModulePath:

    %ProgramFiles%\WindowsPowerShell\Modules

    %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules

    TEMP: %SystemRoot%\TEMP

    TMP:  %SystemRoot%\TEMP

    USERNAME: SYSTEM

    windir: %SystemRoot%

    以上就是Win10系统 64位的默认原始环境变量,希望对大家有用。

    展开全文
  • 真实表示真实世界中的数据(总体) 观测表示机器学习模型的样本数据(样本),但不一定是真实世界中的数据(可以来自真实世界) 预测表示学习模型预测出的数据 我们要用预测训练机器学习算法,然后用模型...
    1. 真实值表示真实世界中的数据(总体)
    2. 观测值表示机器学习模型的样本数据(样本),但不一定是真实世界中的数据(可以来自真实世界)
    3. 预测值表示学习模型预测出的数据

    我们要用预测值训练机器学习算法,然后用模型得到的预测值去预测真实世界的数据

    展开全文
  • 有时用户会修改windows10专业版系统的环境变量,改到后面原来是什么的也记不得了,想要改回去还要去别的电脑查看,这里小编分享下win10专业版环境变量的默认初始。用户变量Path: %USERPROFILE%...
  • 如果要问奇异表示什么物理意义,那么就必须考虑在不同的实际工程应用中奇异所对应的含义。下面先尽量避开严格的数学符号推导,直观的从一张图片出发,让我们来看看奇异代表什么意义。 这是一张照片,像素为...
  • 原始递归

    2020-12-25 00:13:55
    设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性相同时,则它们的Y属性也相同,则称X函数决定Y,或Y函数依赖于X。 2,部分函数依赖、完全函数依赖 设X,Y是关系R的两个属性集合,且存在X→Y...
  • 对象的valueOf旨在返回对象的原始值,会在需要将对象转换成原始值的地方自动执行。详细点这里。 Object.prototype.toString() toString()方法会返回表示该对象的字符串,会在对象预期要被转换成字符串的地方自动执行...
  • 随着互联网的不断发展,越来越多的人都希望通过自学或者参加系统化的培训来学习java编程开发的相关知识,而今天我们就给大家简单介绍一下,java编程中原始数据类型都有哪些。Java编程语言是静态类型的,这意味着必须...
  • 在Java中,变量有两种类型,一种是原始类型,一种是引用类型。原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double。在Java API中,有它们对应的包装类,分别是(首字母大写)Character,...
  • 用Python计算列表中列的平均

    千次阅读 2020-12-19 11:35:26
    假设你有你的清单table = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]您可以使用zip转置它,并将原始列表作为参数列表传递(星号做什么):transposed = zip(*table): [(1, 10, 100), (2, 20, 200), (3, 30, 300)]要...
  • Java中的布尔和布尔的默认值

    千次阅读 2021-03-08 22:13:31
    Java中boolean(原始)和boolean(原始包装器)的默认值是什么?Boolean(对象)的默认值为null。Boolean(原始)的默认值为false。请添加官方源链接任何Object(例如Boolean)的默认值为null。Boolean的默认值为false。注意:...
  • 这篇文章主要介绍了web前端vue实现插值文本和输出原始html,现在分享给大家,也给大家做个参考。Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是...
  • nan的出现

    千次阅读 2020-12-21 13:44:45
    nan出现的原因 NaN(Not a Number,非数)是计算机科学中数值数据类型的一类,表示未定义或不可表示的。常在浮点数运算中使用。首次引入NaN的是1985年的[IEEE 754]...
  • JLS: "此外,如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节): 如果变量的类型为byte,short或char,并且常量表达式的可表示为变量的类型,则可以使用缩窄的原始转换。 如果变量的类型是:...
  • 定理究竟在讲什么

    千次阅读 2021-03-19 13:05:59
    定理 书本上的定义 翻译成人话就是 函数最原始的定义, 我们初中就知道 一个函数最根本的性质就是 : 函数值 自变量 一一对应 所以介定理就是在反复说一件事: 一个数如果属于值域、在定义域内, 一定能够...
  • 2007-07-01VB问题VB有哪几种数据类型?每种数据类型所占的字节数分别是多少?...Boolean 变量的显示为 True 或 False(在使用 Print 的时候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的时候)。 ...
  • python处理原始音频数据

    千次阅读 2021-12-10 13:31:35
    audioop是python标准库中用于处理原始音频数据的模块,封装了一些便捷的编码转换函数。 基础知识 PCM(pulse code modulation),即脉冲编码调制,是将模拟信号转为数字信号的一种编码系统。而模数转换主要分两步,...
  • vue获取proxy对象中的原始对象

    千次阅读 2021-04-18 16:53:26
    在使用vuex时,由于state是响应式的,用它获取对象输出也是proxy对象。例如: 无论是Vuex还是使用的Composition API 的reactive(),vue中的响应式对象可使用toRaw()方法获取原始对象。 // 导入toRaw函数 import {...
  • 数据处理之缺失处理

    千次阅读 2021-03-10 17:44:03
    值得注意的是,这里所说的缺失,不仅包括数据库中的NULL,也包括用于表示数值缺失的特殊数值(比如,在系统中用-999来表示数值不存在)。如果在数据库中缺乏相关的数据说明,常常需要花费更
  • 数据缺失的4种处理方法

    千次阅读 2021-06-24 09:38:37
    一、缺失产生的原因 缺失的产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,机械故障导致某段时间数据...
  • 赡芎芏嗳硕哉庵治⑿藕鸥械胶芤苫�,不知道这是干嘛的,其实这就是微信的原始id,对于没有手动设置过微信号的用户而言,显示的就是wxid这类微信原始id,这么微信号能不能登录呢?它与微信又有什么关系呢?答案就在...
  • java 设计模式实战,原始模型模式之写作业,克隆以后就是新的
  • 如何设定寄存器的初始

    千次阅读 2021-03-30 11:35:49
    对于寄存器,如果没有明确指定其初始,Vivado会根据其类型(FDCE/FDRE/FDPE/FDRE)设定合适的初始。有些工程师喜欢使用复位信号,对所有的寄存器进行上电复位,使其在处理数据之前达到期望初始状态。但这会有一...
  • vue select下拉框绑定不跟着变问题

    千次阅读 2020-12-22 09:18:30
    什么是多个下拉绑定一个value呢?这样肯定会出现改变一个,其他的都会跟着改变呀。 你的value可以根据你的list长度,来生成对应个数的value // value写成计算属性 computed: { value() { var valueArr = this.list...
  • 一文搞懂图像二化算法

    万次阅读 多人点赞 2021-03-25 12:56:14
    图像二化( Image Binarization)就是将图像上的像素点的灰度设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。二图像每个像素只有两种取值:要么纯黑,要么纯白。
  • java怎么判断一个集合是否含有某个一个集合中有两个元素Setset=newHashSet();set=[1,2]if(set.contains(1)){system.out.println("aaaaaaaaaaaaaa")}以上这种写法不执行用if(set.contains('1'))这种写法也不执行望...
  • Java程序员都要懂得知识点:原始数据类型

    万次阅读 多人点赞 2021-04-02 11:45:03
    本文分享自华为云社区《Java知识点问题总结之原始数据类型》,原文作者:breakDraw。 java原始数据类型有short、byte、int、long、boolean、char、float、double。原始数据是未处理的或简化的数据,它构成了物理...
  • 在清洗数据的阶段,我们面对缺失有三种方式 1:直接将少量具有缺失的样本删除。 2:将大量缺失的特征删除。 3:中等含有缺失的特征进行填补。 在scikit-learn中,有一个专门填充的类,专门将均值,中值,或...
  • 匿名网友:matlab中的abs(x)是去绝对值的函数例如:x=-1.23abs(x)ans1.23以上即是取了-1.23的绝对值此外,MATLAB中还有一些内置函数,可以直接调用函数名 功能描述acos(x) 计算arccos(x)的asin(x) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 963,785
精华内容 385,514
关键字:

原始值是什么