Java基础之011-Java基本数据类型及其包装类

简介: Java基础之011-Java基本数据类型及其包装类                                                                          老帅1、Java有8种基本数据类型类型 包装类 位数 最小值 最大值 byte java.

Java基础之011-Java基本数据类型及其包装类

                                                                          老帅

1、Java有8种基本数据类型

类型

包装类

位数

最小值

最大值

byte

java.lang.Byte

8

Byte.MIN_VALUE=-128

Byte.MAX_VALUE=127

short

java.lang.Short

16

Short.MIN_VALUE=-32768

Short.MAX_VALUE=32767

int

java.lang.Integer

32

Integer.MIN_VALUE=-2147483648

Integer.MAX_VALUE=2147483647

long

java.lang.Long

64

Long.MIN_VALUE=-9223372036854775808

Long.MAX_VALUE=9223372036854775807

float

java.lang.Float

32

Float.MIN_VALUE=1.4E-45

Float.MAX_VALUE=3.4028235E38

double

java.lang.Double

64

Double.MIN_VALUE=4.9E-324

Double.MAX_VALUE=1.7976931348623157E308

char

java.lang.Character

16

Character.MIN_VALUE=0

Character.MAX_VALUE=65535

boolean

java.lang.Boolean

1

0

1

 

2、几点要注意的

1)      char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'

2)      当整数类型的数据使用字面量赋值的时候,默认值为int类型,就是直接使用0或者其他数字的时候,值的类型为int类型,所以当使用long a = 0这种赋值方式的时候,JVM内部存在数据转换。

通过字面量给long类型变量赋值:long a = 0L

3)      当实数类型的数据使用字面量赋值的时候,默认值为double类型,就是直接使用0.1或者其他实数的时候,值的类型为double类型,JVM会使用double类型的数据类型。

通过字面量给float类型变量赋值:float b = 0.1


3、包装类

    为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。

    3.1该包装对象主要用基本类型和字符串之间的转换。

          A.      基本类型--->字符串

             a)      基本类型数值+""

             b)      用String类中的静态方法valueOf(基本类型数值);

             c)      用Integer的静态方法toString(基本类型数值);          

          B.      字符串--->基本类型

             a)      使用包装类中的静态方法  

                    Integer i= Integer(“123”); 

             b)      使用paraseXXX方法

                    intparseInt("intstring");

                    longparseLong("longstring");

                    booleanparseBoolean("booleanstring");

                    只有Character没有parse方法

             c)      如果字符串被Integer进行对象的封装。

               Integer i= Integer(“123”);

                    可使用另一个非静态的方法,i.intValue();

                           将一个Integer对象转成基本数据类型值。

    3.2 整数具备不同的进制体现。         

          A.      十进制-->其他进制。

                     toBinaryString

                     toOctalString

                     toHexString            

          B.      其他进制-->十进制。

                     parseInt("string",radix)

3.3 自动装箱与拆箱

        装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质
        拆箱:和装箱相反,将引用类型的对象简化成值类型的数据

        JDK1.5以后,简化了定义方式。

        Integerx = new Integer(4);可以直接写成

        Integerx = 4;//自动装箱。编译器调用的是static Integer valueOf(int i)

        x  = x + 5; //自动拆箱。编译器调用的是int intValue(int i)。

    需要注意:

        在使用时,Integer  x = null;上面的代码就会出现NullPointerException。

相关文章
|
18天前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
2月前
|
Java
Java基础之数据类型
Java基础之数据类型
23 6
|
2月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
72 7
|
2月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
79 4
|
2月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
46 1
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
3月前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
32 0
|
3天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
39 17
|
14天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
16天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。