精华内容
下载资源
问答
  • 原始数据类型

    千次阅读 2019-07-29 15:07:58
    JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。 原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol。 本节主要介绍前五种...

    JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。

    原始数据类型包括:布尔值、数值、字符串、nullundefined 以及 ES6 中的新类型 Symbol

    本节主要介绍前五种原始数据类型在 TypeScript 中的应用。

     

     

    布尔值

    布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型:

    let isDone : boolean = false;

    注意,使用构造函数 Boolean 创造的对象不是布尔值:

    let createdByBoolean : boolean = new Boolean(1);
    
    /*
    * Error:(3, 5) TS2322: Type 'Boolean' is not assignable to type 'boolean'.
      'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.*/

    事实上 new Boolean() 返回的是一个 Boolean 对象(不是原始数据类型),直接调用 Boolean 也可以返回一个 boolean 类型:

    let createdByBoolean : boolean = Boolean(1);

    在 TypeScript 中,boolean 是 JavaScript 中的基本类型,而 Boolean 是 JavaScript 中的构造函数。其他基本类型(除了 nullundefined)一样,不再赘述。

     

     

    数值

    使用 number 定义数值类型:

    let decLiteral: number = 6;
    let hexLiteral: number = 0xf00d;// ES6 中的二进制表示法
    let binaryLiteral: number = 0b1010; // ES6 中的八进制表示法
    
    let octalLiteral: number = 0o744;
    let notANumber: number = NaN;
    let infinityNumber: number = Infinity;

    编译结果:

    var decLiteral = 6;
    var hexLiteral = 0xf00d; // ES6 中的二进制表示法
    var binaryLiteral = 10; // ES6 中的八进制表示法
    var octalLiteral = 484;
    var notANumber = NaN;
    var infinityNumber = Infinity;
    //# sourceMappingURL=number.js.map

    其中 0b10100o744ES6 中的二进制和八进制表示法,它们会被编译为十进制数字。

     

     

    字符串

    使用 string 定义字符串类型:

    let myName: string = 'Tom';
    let myAge: number = 25;
    
    // 模板字符串
    let sentence: string = `Hello, my name is ${myName}.
    I'll be ${myAge + 1} years old next month.`;

    编译结果:

    var myName = 'Tom';
    var myAge = 25;
    // 模板字符串
    var sentence = "Hello, my name is " + myName + ".\nI'll be " + (myAge + 1) + " years old next month.";
    //# sourceMappingURL=string.js.map

    其中 ` 用来定义 ES6 中的模板字符串${expr} 用来在模板字符串中嵌入表达式。

     

     

    空值

    JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数:

    function alertName() : void {
        console.log('My name is Jacob')
    }

    声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefinednull

    let unusable: void = undefined;

    如果赋值为其他值,会编译报错:

    let unusable: void = 43;  // Error:(5, 5) TS2322: Type '43' is not assignable to type 'void'.

     

     

    Null 和 Undefined

    在 TypeScript 中,可以使用 nullundefined 来定义这两个原始数据类型:

    let u : undefined = undefined;
    let n : null = null;

    undefined 类型的变量只能被赋值为 undefinednull 类型的变量只能被赋值为 null

    void 的区别是,undefinednull 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量:

    // 这样不会报错
    let num1: number = undefined;
    
    // 这样也不会报错
    let u: undefined;
    let num2: number = u;

    void 类型的变量不能赋值给 number 类型的变量:

    let u: void;
    let num: number = u;
    
    // index.ts(2,5): error TS2322: Type 'void' is not assignable to type 'number'.

     

    展开全文
  • Java程序员都要懂得知识点:原始数据类型

    万次阅读 多人点赞 2021-04-02 11:45:03
    本文分享自华为云社区《Java知识点问题总结之原始数据类型》,原文作者:breakDraw。 java原始数据类型有short、byte、int、long、boolean、char、float、double。原始数据是未处理的或简化的数据,它构成了物理...

    本文分享自华为云社区《Java知识点问题总结之原始数据类型》,原文作者:breakDraw。

    java原始数据类型有short、byte、int、long、boolean、char、float、double。原始数据是未处理的或简化的数据,它构成了物理存在的数据,原始数据具有多种存在形式,例如文本数据、图像数据、音频数据或几种类型数据的混合。以为关于Java原始数据类型的相关知识点总结。

    Q:java中数据类型大小会和平台是32位、64位相关吗?

    A:不相关,虚拟机原因平台兼容

    Q:java中解析数据时,需要考虑处理器的大小端问题吗?(即0x1234的12是放在高地址还是低地址)

    A:不需要。java由于虚拟机的关系,屏蔽了大小端问题,需要知道的话可用 ByteOrder.nativeOrder() 查询。在操作ByteBuffer中,也可以使用 ByteBuffer.order() 进行设置:。

    Q:java中short、int 、long的字节分别是多少?
    A:2、4、8

    Q: float、double是多少字节?
    A:4、8

    Q: java中byte、char是多少字节?C++中char是多少字节?
    A : java中是1和2, C++中char是1

    Q: java中boolean类型的大小?
    A: bool类型无空间大小(来自java编程思想)

    根据http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html官方文档的描述:

    boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.

    布尔类型:布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。

    贴一下书中关于数据类型的描述:

    Q: 不可变类型有哪几种?
    A: short、int、long、float、double、byte、char、boolean的 包装类型, 以及String,这9种属于不可变类型。(这只是部分,还有其他的不可变类)

    • 不可变类型概念:里面的值的内容变了,对应的内存地址也会变化。

    Q:类里的成员如果是基本数据类型, 那么会自动初始化吗?初始化成什么?
    A: 会, 初始化为0或者false。

    Q: java中局部变量没初始化,会报错吗?
    A: 会

    Q: 布尔类型可以强制转化成其他类型吗?
    A : 不能。 boolean b = 1或者boolean b = “true” 是不可以的

    Q: 什么时候不能隐式转化?
    A: 如果会丢失精度,则不能隐式转化,比如long转int或者double转long这种。 编译器会强制我们使用强制转化

    Q: 8种原始数据类型的类型优先级排序是?
    A:
    (byte/short/char)<int<long<float<double
    即隐式转换都是从低往高转。

    Q:下面哪个是错误的?

    A:
    B选项是错误的。
    因为2个byte类型变量相加的时候,会自动转换成int类型,右边的int类型赋值给short类型便会报错。(好冷的知识)

    Q:

    float f = 1.1;

    有错吗?
    A:
    float浮点后面要加f。加f就代表是float类型,否则就是double类型浮点。

    float f = 1.1f;
    double d1 = 1.1;

    Q: 布尔类型可以做加减乘除吗?
    A : 不能

    Q: Integer N = 0; int n = N; 这时候会发生什么?
    A: 自动拆包

    Q:整型包装类型的比较,下面输出啥?

    Integer num1 = 128,num2 = 128;
    System.out.println(num1==num2);

    A:
    输出false。
    值的范围在-128~127的时候Integer可以直接用==比较大小,但是超出这个范围时,==就不管用了,要用equals。
    大致原因是在那个范围,Integer的对象会直接用缓存对象,所以地址都相同。
    不在那个范围,Integer对象会新生成1个对象,所以地址不同。

    • 另一个注意点: “==” 对于对象来说,比较的是地址。

    Q: java中哪2个类可以支持任意精度的整数 和任意精度的浮点数?
    A: BigInteger和BigDecimal

    • 这2个也属于不可变类。

    Q: java的数组一定需要我们手动初始化吗?
    A: 不需要,数组元素会自动初始化为null或者0或者false。

    Q:java支持C++里的运算符重载吗?
    A: 不支持

    Q: if(a=b) 可以吗?
    A: 不行,不能在条件表达式中放入赋值操作。除非a和b都是boolean类型。

    Q:浮点数相等的比较方式
    A:相等的话要像下面这样

    if(Math.abs(a-b))<1E-6F)

    如果用浮点的a==b或者a!=b做while循环退出判断,可能会导致死循环

    Q:下面的数组声明哪几个是对的?
    A. char[] chr1 = new char[]{‘A’,‘B’,‘C’};
    B. char[] chr2 = new char[3]{‘A’,‘B’,‘C’};
    C. char[][] chr3 = new char[][10];
    D. char[][] chr4 = new char[10][];
    E. char[] chr5 = new char[3];

    A:ADE是对的。

    § 字符串

    Q: StringBuffer和StringBuilder的区别:
    A:
    StringBuffer是线程安全的,但是慢
    StringBuilder是线程不安全的(即可以多个线程同时读取他的内容),但是快。

    Q:String s = “123”+“456”+“789”;对于这种静态的拼接,用StringBuffer去拼接比用String去拼接要快,对吗?
    A:错,反编译代码后,我们发现代码是
    String s = “123456789”;
    因为对于静态字符串的连接操作,Java在编译时会进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。
    因此要注意StringBuffer/Builder的适用场合: for循环中大量拼接字符串。
    如果是静态的编译器就能感知到的拼接,不要盲目地去使用StirngBuffer/Builder
    PS:

    Q:下面输出什么结果?为什么?

    String s1 = "Hello";
    String s2 = "Hello";
    String s3 = "Hel" + "lo";
    String s4 = "Hel" + new String("lo");
    String s5 = new String("Hello");
    String s6 = s5.intern();
    String s7 = "H";
    String s8 = "ello";
    String s9 = s7 + s8;
     
    System.out.println(s1 == s2);  // true
    System.out.println(s1 == s3);  // true
    System.out.println(s1 == s4);  // false
    System.out.println(s4 == s5);  // false
    System.out.println(s1 == s6);  // true
    System.out.println(s1 == s9);  // false

    Q:
    println(s1 == s2)输出 true
    println(s1 == s3)输出 true
    println(s1 == s4)输出 false
    println(s4 == s5)输出 false
    println(s1 == s6)输出 true
    println(s1 == s9)输出 false

    • 字符串的==操作比较的是引用地址。
    • 如果是直接写死在代码里的常量字符串,则地址是固定的,都在常量池中。
    • 写死的常量字符串拼接,依旧会作为常量放入常量池中。(常量池就是指,程序编译的时候,就已经知道了这个字符串)
    • 如果是String类型的,则引用地址是堆中的string对象地址,而非常量池中地址。(因为程序编译的时候,string里的内容不一定是确定的,因此不可能会放到常量池中)
    • 因此涉及string拼接的,都是和原先常量不等。s7和s8已经属于string对象,所以二者不属于常量拼接。
    • intern会试图把字符串放入常量池。

    具体原因可见:https://www.cnblogs.com/syp172654682/p/8082625.html

    § 可变参数

    Q: 方法重载时,如何选择可变参数和固定参数?像下面输出啥:

     public static void main(String[] args) {
            f(1);
        }
     
        public static void f(int ...a){
            System.out.println("可变参数方法:"+Arrays.toString(a));
        }
     
        public static void f(int a){
            System.out.println("固定长度 参数方法:"+a);
        }

    A:输出固定长度参数方法。

    原则:如果重载方法中,固定参数方法能满足,优先用固定参数方法,不满足时再去选择可变参数方法。

    § 参考资料:

    https://www.cnblogs.com/syp172654682/p/8082625.html

     

    点击关注,第一时间了解华为云新鲜技术~

    展开全文
  • javascript的原始数据类型

    千次阅读 2017-05-11 23:28:04
    本文讲述了js中的原始类型数据,重点讲述了原始数据类型的作用,所占空间等....

                                              JAVASCRIPT原始数据

      javascript 的原始数据类型有五种,分别是Number、String、Boolean、null、undefined
      原始类型数据的特点:值保存在变量本地,且赋值给其他变量后,其它变量改变不影响原来的值.

         一、Number类型:

                    专门保存数字的类型,可用于进行数学计算等的数值.

                 所占空间:64位(8个字节)二进制保存.注:一个字节8个位.

                 强调:数字所占的空间与数值的大小没有关系,均占8个字节.

                  在Number类型中,经常会因为舍入误差引起错误;

                 舍入误差:因为计算机中无法精确表是十分之一,不可避免.多保存几位小数即可.

         二、String类型:

                 专门用来保存字符串的类型;" ",用来存储字符串类型的文本.

                 所占空间:使用unicode标识的.英文字母和标点对应的是1字节,而一个汉字对应的则是两个字节.

                强调:字符串一旦创建,不可以改变!只能替换;

         三、Boolean类型:

                专门用来保存真或者假的类型,值二选一,true or false

         四、undefined类型:

                 只有一个值undefined,没有赋值的变量的默认值. 

         五、null类型:

                 不知向任何地址,手动赋值,清空内容等....

                  

                 

    展开全文
  • Hive支持原始数据类型和复杂类型

    千次阅读 2018-06-19 21:19:10
    Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括array,map,struct,union。一,原始数据类型类型名称大小示例TINYINT1字节整数45YSMALLINT2字节整数12SINT4字节整数...

    Hive支持原始数据类型复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括array,map,struct,union。

    一,原始数据类型

    类型名称大小示例
    TINYINT1字节整数45Y
    SMALLINT2字节整数12S
    INT4字节整数10
    BIGINT8字节整数244L
    FLOAT4字节单精度浮点数1.0
    DOUBLE8字节双精度浮点数1.0
    DECIMAL任意精度带符号小数DECIMAL(4, 2)范围:-99.99到99.99
    BOOLEANtrue/falseTRUE
    STRING字符串,长度不定“a”, ‘b’
    VARCHAR字符串,长度不定,有上限“a”, ‘b’
    CHAR字符串,固定长度“a”, ‘b’
    BINARY存储变长的二进制数据 
    TIMESTAMP时间戳,纳秒精度122327493795
    DATE日期‘2016-07-03’

    说明: 
    1,关于整数和小数类型,整数默认情况下为INT,如果要声明为其他类型,通过后缀来标识(Y、S、L)。小数默认为DOUBLE类型,DECIMAL小数点左边允许的最大位数为38位,直接写DECIMAL默认等同于DECIMAL(10,0)。同时任意数值类型都可以隐式转换成更宽的数值类型(不丢精度)或者文本类型。 
    2,关于文本类型,STRING存储变长的文本,对长度没有限制。理论上将STRING可以存储的大小为2GB,但是存储特别大的对象时效率可能受到影响。VARCHAR与STRING类似,但是长度上只允许在1-65355之间,超过最大长度会被截断。CHAR则用固定长度来存储数据,最大255。 
    3,关于时间和日期类型,Hive提供了一些内置函数用于在TIMESTAMP与Unix时间戳(秒)和字符串之间做转换:

    类型转换结果
    cast(date as date)相同的日期。
    cast(timestamp as date)基于本地时区确定timestamp的年月日作为值返回。
    cast(string as date)如果字符串的格式为’YYYY-MM-DD’, 则对应的年月日返回。如果字符串不是该格式,则返回NULL。
    cast(date as timestamp)基于本地时区,返回日期对应午夜时间。
    cast(date as string)日期被转换为’YYYY-MM-DD’格式的字符串。

    二,复杂类型

    类型名称大小示例
    ARRAY存储同类型数据ARRAY< data_type>
    MAPkey-value,key必须为原始类型,value可以是任意类型MAP< primitive_type, data_type>
    STRUCT类型可以不同STRUCT< col_name : data_type [COMMENT col_comment], …>
    UNION在有限取值范围内的一个值UNIONTYPE< data_type, data_type, …>

    说明: 
    关于元素的访问,ARRAY[1]访问第二个元素; 
    map访问元素格式为map[‘key’]; 
    STRUCT元素的访问使用点号; 
    UNION类型声明语法为UNIONTYPE< data_type,data_type,…>,每个UNION类型的值都通过一个整数来表示其类型,这个整数就是索引,从0开始。例如:

    CREATE TABLE union_test(u UNIONTYPE<int, double, array<string>,struct<a:int,b:string>>);  
    SELECT u FROM union_test;  
    {0:1}  
    {1:2.0}  
    {2:["three","four"]}  
    {3:{"a":5,"b":"five"}}  
    {2:["six","seven"]}  
    {3:{"a":8,"b":"eight"}}  
    {0:9}  
    {1:10.0}  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在该例子中,union包含四种类型,分别为int、double、array和struct。从查询结果来看,第一个冒号前面的数字代表union中某种数据类型,比如0代表union的第一个数据类型int,1代表第二个数据类型double,以此类推。

    展开全文
  • java原始数据类型的包装类 java系统自定义原始封装类
  • 1.原始数据类型包括:Number.String. Boolean. Null. Undefine. 2.引用数据类型包括:对象. 数组. 函数 3.存储位置不同:原始数据类型存储在栈中,占据空间小,大小固定,属于频繁使用数据。引用数据类型存储在堆中...
  • type argument cannot be of ...这个错误是 原始数据类型原始数据类型的封装类型的问题 该使用封装类型的地方,我们使用了原始数据类型,开发工具会自动提示type argument cannot be of primitive type的错误。 ...
  • JS中5种原始数据类型

    千次阅读 2017-11-27 09:51:59
    1.js中5种原始数据类型  number:整数/小数/NaN  string:  boolean:  null:  undefined: 2.js中会存在自动类型转换:当js引擎发现给的数据类型和需要的数据类型不一致时,会自动类型转换  其他类型...
  • 一、JavaScript里有哪些数据类型,解释清楚null 和undefined,解释清楚原始数据类型和引用数据类型。比如讲一下1 和Number(1)的区别 数据类型:  undefined,没有定义数据类型  number,数值数据类型,例如10...
  • JS中的原始数据类型

    千次阅读 2018-12-26 17:55:29
     原始数据类型 Undefined, Null, Boolean, Number, Symbol, String  对象数据类型 Object  其中可被执行的对象叫做函数或方法 undefined value  未赋值变量时使用的原始值,例如 var 变量的声明 null value...
  • 呵呵,这个问题最好用实验证明,一看就明白: Object obj="AAAA"; //不会报错,因为 "AAAA" ...100 为 int 原始数据类型,所以不能转成Object 对象 "AAAA" 为字符串 String 类型对象, 由于所有对象类都是继承自Object
  • JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空、无。...最原始数据类型,表达式计算的载体 string:字符串。最抽象的数据类型,信息传播的载体 boolean:布尔值。最机械的数...
  • java原始数据类型案例

    千次阅读 2012-02-22 00:55:44
    提到java原始数据类型,可能很多java程序员都觉得很简单,可是你真的对java原始数据类型很了解吗?好像不一定,我相信下面的一些程序即使有过很长开发经验的程序员也不一定能解释的很清楚。当然,我也依然在学习的...
  • 【Java】原始数据类型与其包装类

    千次阅读 热门讨论 2018-04-01 21:23:40
      Java语言中默认定义了8个原始数据类型,大致可以分为4类: 整型:包含byte、short、int、long 浮点型:float、double 布尔型:boolean 字符:char   这8个基本的数据类型如果在声明的时候没有初始化,...
  • 数据类型:  undefiend 没有定义数据类型  number 数值数据类型 例如 10或者1或者5.5  string 字符串数据类型用来描述文本 例如 "你的姓名"  boolean 布尔类型 true|false 不是正就是反,是或者否,有或者...
  • Java原始数据类型

    千次阅读 2017-03-22 09:00:39
    Java定义了八种基本类型数据:byte,short,int,long,char,float,double和boolean。 基本类型通常被称为简单类型。 这些基本类型可以分为四组: 整数 - 包括:byte,short,int和long,用于整数有符号...
  • 此jar是修改了原作者的greenDAO generator项目的源码使其能支持defaultValue,以及产生的实体类entity支持原始数据. 具体可参考我的blog:http://blog.csdn.net/enyusmile/article/details/45498307
  • js中的原始数据类型

    千次阅读 2018-12-21 23:49:14
    js中原始数据类型有:number、string、boolean、null、undefined、object null:当一个对象指向为空了,此时可以赋值为null undefined:1. 当变量声明了,但是没有赋值,结果是undefined            2.当...
  • 当讨论JavaScript中的原始数据类型时,大多数人都知道的基本知识,从String,Number到Boolean。这些原始类型相当简单,行为符合常识。但是,本文将更多聚焦独特的原始数据类型Null和Undefined,是什么让他们如此相似...
  • Java的原始数据类型

    千次阅读 2013-01-12 23:33:28
    Java编程语言为8个原始基本类型: boolean,char,byte,short,int,long,double,flout 逻辑类:boolean  boolean truth = true;  注意:在整数类型和boolean之间无转换计算.有些语言(特别强调的是C和C++)...
  • Activity之间传递原始数据类型很简单,只要在Activity之间的跳转的时候使用Intent携带bundle数据即可,但是这些只能是传递原始数据类型,如float,Int,String等原始数据类型,无法传递自定的数据类型, ...
  • 泛型只能只能代表引用类型,不能是原始类型原始类型有byte/short/int/long 浮点型:float.double 字符型char 布尔型:boolean,引用类型原始类型的区别在于虽然二者保存在栈中,但原始类型保存的是...
  • 如下方法: public static boolean isArray(Object array) { if (array instanceof Object[]) { return true; } else if (array instanceof boolean[]) { return true; ...
  • 2.greenDAO generator所产生的java实体类和dao类中使用的都是引用数据类型,如:int ->Integer,long->Long等等,使用这个就有个问题,调用者塞入Integer,那就是是null的风险. 查了资料,google之,发现greenDAO的作者...
  • Java中的原始类型原始封装类型

    千次阅读 2019-08-05 15:36:42
    在写Java代码的过程中,一直对Java提供的一些类参数又疑问,今天查了一下,进行了解学习。 type argument cannot be of primitive type 问题: Java中什么是原生类型?...比如:Int是java的原始数据类型,In...
  • 本文件数据包含AIVDM,船舶自身数据,静态航行数据,采集于重庆(最近),可以供AIS研发等相关人员下载验证协议解码等,大约包含88000条数据。格式已经处理("AIVDM原始数据\n",)。
  • JavaScript数据类型,包括原始类型和引用类型有哪些? 原始类型有五个 Number类型 专门保存数字的类型,可用于进行数学计算等的数值 String类型 专门用来保存字符串的类型;” “,用来存储字符串类型的文本. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 599,106
精华内容 239,642
关键字:

原始数据类型