首页 > 编程语言 >JavaSE 数据类型以及基本转化与包装

JavaSE 数据类型以及基本转化与包装

时间:2024-05-25 21:11:40浏览次数:20  
标签:String 包装 数据类型 int 类型 Integer JavaSE 字节

目录

数据类型.

先简单介绍java中的语法可以速速过一遍

1.基本类型(八个)

数值型

整型类型

  • byte型:1字节 8bit位 第一位是符号位

    byte a = 127;
    

  • short型:2字节

    short b = 32767;
    
  • int 型:4字节

    int c = 123;
    int c = 0b123;//二进制
    int c = 0123;//八进制
    int c = 0x123;//十六进制
    
  • long型:8字节

    long d = 123l;
    long d = 123L;//数字后缀L或l
    

0b0B开头数字 为二进制

0开头数字为 八进制

0x0X开头为16进制

浮点类型

  • float :4字节

  • 单精度,尾数可以精确到7位有效数字

    float e = 123.4f//数字后缀加f或F
    
  • double: 8字节

  • 双精度,精度是float的两倍。通常采用此类型。

    double f = 123.4
    
    %%java浮点型默认为double类型%%
    • 十进制数形式,例如: 3.14 314.0

    • 科学记数法形式,如 3.14e2 3.14E2

字符型 (char)2字节

  • 使用了Unicode 编码 兼容了Ascll码
  • 可以参与算术运算,本质是使用了Unicode编码表中对应的10进制编号来进行计算

逻辑型(boolean)

  • ture

  • false

2.引用类型

String类型(字符串)(相关API会在API.md文件里面介绍)

String是一个类,String的变量是对象的管理者而非所有者

  • '+'相当于字符串连接符

  • String s = "abcd";

  • 1.任意八种基本数据类型的数据与String类型只能进行连接“+”运算(字符串连接),且结果一定也是String类型

  • 2.String类型不能转为其他的基本类型

	String s = new String("a string");//创建一个String的对象,用“a string”初始化这个对象
 String a = "hello";
       String b = "world";
       String c = a + b;
       String d = a + b + 12;
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
       System.out.println(d);
  
运行结果:
  
  ```java
  
  hello
  world
  helloworld
  helloworld12
  
  Process finished with exit code 0
  
  • 输入字符串

    in.next();读入一个单词,单词标志是空格(包括空格、tap和换行)

    in.nextLine();读入一整行

  • 比较两个String

    if(input == "bye"){//比较是否同一个
    	····
    }
    if(input.equals("bye")){//比较内容是否相同
    	····
    }
    

    Strings应该用.equals 来比较

接口(interface)(后面会介绍)

数组([])(后面专门介绍)

包裹类型(特殊的数据类型)

  • 它用于将基本数据类型包装成对象

基本数据类型的转换

  • 八种基本类型除了boolean类型以外,其他七种类型之间可以相互转化

转换规则:

1.默认转换

将取值范围小的的类型自动提升为取值范围大的类型

(byte,char,short(byte->short))->(int)->(long)->(float)->(double)

4个字节float比8个字节long取值范围要大

原因: 浮点数在存储时结构与整数计算方式不同

2.强制转换

容量大的转换为容量小的

格式 : (强制转换的类型) 变量名

int a =258;
byte b = (byte)a;

注:有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一 种数据类型,然后再进行计算会有精度损失

基本数据类型的包装类

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面
向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设
计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基
本数据类型对应的类统称为包装类

基本数据类型 包装类(包裹类型)
byte Byte
short Short
char Character
int I nteger
long Long
float Float
double Double
boolean Boolean

例如:Integer

声明

		Integer a=new Integer(12);
        Integer b=new Integer(10);

调用非静态方法

int compareTo();
boolean equals();
 //调用非静态方法
        System.out.println(a.compareTo(b));//前面大返回1,后面大返回-1,一样大返回0;
        System.out.println(a.equals(b));//比较a与b内容是否相同 与"=="要区分 返回一个boolean类型
        System.out.println(a==b);//比较a与b是否指向一个内容
        //.....

调用静态方法

Integer valueOf
int compare(int a,int b)
Integer.parseInt(String str,int radix);
     //调用静态方法
		Integer c=Integer.valueOf(12);//调用静态方法,返回一个Integer类型变量给C
        Integer d=Integer.valueOf("10");//调用静态方法,把字符串类型(必须是数字)转换为Integer返回一个Integer类型变量
		Integer.parseInt(String str,int radix);//把radix进制对应的str转化为十进制
        System.out.println(Integer.compare(13,10));//前面大返回1,后面大返回-1,一样大返回0;

        System.out.println(Integer.max(13,10));//返回较大的数值
        System.out.println(Integer.valueOf(10));//返回的是引用类型

装箱和拆箱

  • 装箱:

将基本类型可以自动转换为包装类型

Integer a=10;//默认调用Integer.valueOf(a)把10转化为引用类型即Integer类型
  • 拆箱:

将包装类型转化为基本类型

int c=a.intValue();//拆箱
int c=a;//自动拆箱
源码: 
public static Integer valueOf(int i) {//low:-128;high:127
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);    
    }

        Integer a=10;//默认调用Integer.valueOf(a)
        Integer a=10;
        Integer b=10;
        System.out.println(a.equals(b));//结果为true
		System.out.println(a==b);//结果也为true
		Integer c=128;
        Integer d=128;
        System.out.println(c==d);//结果为false
        System.out.println(c.equals(d));//结果为true

由源代码可知,当在方法内部对 -128~127之间进行缓存(数组),在此期间的自动装箱,不会创建新的Integer对象,直接从中获得,(因为a与b传过去对应i的参数都为10,则返回的是同一个对象地址的引用),而超出此区间的每次都会返回新的对象(所以c和d虽然值相等但是返回的都是一个新的对象地址,所有c==d结果为false)

标签:String,包装,数据类型,int,类型,Integer,JavaSE,字节
From: https://www.cnblogs.com/cwyYYDS/p/18213003

相关文章

  • 基本数据类型和字符串转换
    基本数据类型和字符串转换中8种包装类提供不同类型间的转换方式:Number父类中提供的6种方法。parseXXX()静态方法valueof()静态方法注意:需保证类型兼容,否则抛出NumberFormatException异常。源代码:publicclassDemo01{publicstaticvoidmain(String[]args){//基本数据类......
  • XML Schema 字符串数据类型及约束详解
    字符串数据类型用于包含字符字符串的值。字符串数据类型可以包含字符、换行符、回车符和制表符。以下是模式中字符串声明的示例:<xs:elementname="customer"type="xs:string"/>您文档中的一个元素可能如下所示:<customer>JohnSmith</customer>或者可能是这样的:<custome......
  • XML Schema 字符串数据类型及约束详解
    字符串数据类型用于包含字符字符串的值。字符串数据类型可以包含字符、换行符、回车符和制表符。以下是模式中字符串声明的示例:<xs:elementname="customer"type="xs:string"/>您文档中的一个元素可能如下所示:<customer>JohnSmith</customer>或者可能是这样的:<c......
  • 【Java学习】第19节:时间类(Date、Calendar、SimpleDateFormat)、包装类
    目录第一章Date类1.1Date概述1.2Date常用方法第二章SimpleDateFormat类2.1构造方法2.2格式规则2.3常用方法2.4练习1(初恋女友的出生日期)2.5练习2(秒杀活动)第三章Calendar类3.1概述3.2常用方法3.3get方法示例3.4set方法示例:3.5add方法示例:第......
  • 包装类
    publicclassDemo{publicstaticvoidmain(String[]args){//基本数据类型intnum1=18;//类型转换:装箱;基本数据类型转为引用数据类型的过程//使用Integer类创建对象Integerinteger1=newInteger(num1);Integerinteger2=Integer.valueOf(num1);System.......
  • python 基础习题3--数据类型和运算符
    1.  100/4+2*3 运行结果是 ()                    A、10B、81C、31D、50    E、31.02. Python 中的== 代表的是 (  )A、把左边的值赋值给右边;B、把右边的值赋值给左边 ;C、比较左右......
  • ts_01_数据类型
    /***typeScript学习1数据类型*number数字类型*string字符串类型*boolean布尔类型*Array数组*Tuple元组*enum枚举*Any任意类型*void无任何类型*null空类型*undefined未定义类型*......
  • Java基本数据类型
    Java有八种基本数据类型:byte、short、int、long、float、double、string、bool。1.整数类型整数类型有三种表示形式:十进制、八进制、十六进制十进制:120、0、-127注意:除了数字0,不能以0作为其他十进制数的开头。八进制:0123、-0123八进制数必须以0开头。十六进制:0x25、0Xb......
  • 代码审计——基础(JAVASE)
    JAVASE目录JAVASE基本语法关键字变量作业1作业完成第一题:简单的介绍了java语言历史,优势、发展第二题:特性:面向对象、跨平台、封装、继承、多态、抽象、扩展性、健壮性、垃圾回收机制、虚拟机第三题:变量、注释、关键字、数据类型、选择判断语句、循环语句、数组、break、continue、......
  • 如果要存ip地址,用什么数据类型比较好
    在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNEDINT)来存储IP地址,而不是使用字符串。 但是没有给出具体原因。 为了搞清楚这个原因,查了一些资料,记录下来。 相对字符串存储,使用无符号整数来存储有如下的好处: 节省空间,不管是数......