`
s11065115
  • 浏览: 9506 次
社区版块
存档分类
最新评论

Java种的基本数据类型和常量池

阅读更多

java中8中基本数据类型

|------------整型

         |-----byte

         |-----short

         |-----int

         |-----long

|------------浮点型

         |-----float

         |-----double

|------------字符

         |-----char

|------------布尔

         |-----boolean       

 

值得一说的是null关键字,它不属于Object,它表示一个引用数据类型没有赋值。

例如:String name;

           System.out.println(name);//编译报错,name未被赋值

           String name = new String();

           System.out.println(name);//name 是一个""空字符串!

          

           class Temp{

           String name;

         }

          System.out.println(new Temp().name);//输出null

          总结:这说明null表示一个引用数据类型未赋值!

 

2.  Java为了运行时的速度更快,节省内存,为这八种数据类型和String提供了常量池,类似于系统级的缓存在面试时一般都会问字符串常量池和new对象的区别,equal方法,==的使用方法。

 

  • 直接使用双引号声明出来的String对象会直接存储在常量池中。
  • 如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中

        String s = new String("1");
        s.intern();
        String s2 = "1";
         System.out.println(s == s2);//false
     
    String s = new String("1") + new String("1");
    s = s.intern();
      System.out.println(s.intern());
      String s2 = "11";
      System.out.println(s == s2); //true

 

      String s3 = new String("1") + new String("1");
      s3.intern();
      String s4 = "11";
      System.out.println(s3 == s4);   //false

 

问题:String s3 = new String("1") + new String("1");

一共创建了几个对象 ,哪几个?欢迎批评指正上面的错误!

分享到:
评论

相关推荐

    java入门教程:数据类型_运行时常量池.docx

    Java编程语言的基础知识中,数据类型和运行时常量池(Runtime Constant Pool)是两个关键概念。数据类型决定了变量可以存储的值的种类和大小,而运行时常量池则是Java虚拟机(JVM)内存模型中的一个重要组成部分。 ...

    Java堆、栈和常量池——内存剖析

    - 字符串常量和基本类型的常量通常存储在常量池中。 - 在常量池中,对于字符串而言,如果两个字符串相等(通过`equals`方法比较),则在常量池中只保留一份拷贝。 #### 非RAM存储 非RAM存储指的是那些持久化的...

    Java堆,栈和常量池详解

    ### Java堆、栈和常量池详解 #### Java内存模型概览 在深入探讨Java中的堆、栈以及常量池之前,我们先来简要回顾一下Java内存模型的基本概念。Java程序运行时会使用到不同的内存区域来存储各种类型的数据,这些...

    java 内存中 堆、栈、常量池、方法区的总结

    在常量池和栈中,数据是可以共享的。例如,当两个相同的字符串常量在常量池中时,它们实际上是指向同一个内存地址的引用。在栈中,基本类型的数据也是可以共享的,如两个整数变量可以引用相同的数值。而在堆中,对象...

    java内存分配之常量池,栈,堆1

    在Java中,内存主要分为四个区域:寄存器、栈、堆和方法区(包括常量池)。以下是这四个区域的详细说明: 1. **寄存器**: 这是计算机硬件的一部分,用于存储非常快速访问的数据。在Java中,寄存器主要由JVM直接管理...

    java堆、栈和常量池

    栈内存主要用于存储局部变量,包括基本数据类型和对象的引用。 - **作用域内的变量分配**:当在一段代码块定义一个变量时,Java会在栈中为这个变量分配内存空间。一旦变量退出其作用域,Java会自动释放分配给该变量...

    java堆-栈-堆栈常量池的区别,史上最全总结

    常量池是Java内存模型中的一个重要组成部分,它存储字符串常量和基本类型的final常量。在编译阶段,所有的字符串文字会被放入常量池,以实现对象的共享,从而节省内存和提高运行效率。比较字符串时,使用`==`会检查...

    Java 数据类型常见面试题总结 · .pdf

    Java 数据类型常见面试题总结 Java 数据类型是 Java 编程语言的基础,了解 Java 数据类型是 Java 开发者的必修课。...基本数据类型和包装类型是 Java 数据类型的两大类,每种数据类型都有其特点和应用场景。

    深入探索Java常量池

    Java常量池是Java虚拟机(JVM)中一个非常重要的概念,它主要分为两种:静态常量池和运行时常量池。静态常量池是class文件中的常量池,包括字符串(数字)字面值、类和方法的信息,占用了class文件的大部分空间。...

    Java中的堆、栈和常量池_.docx

    在Java中,内存被划分为几个不同的区域,包括堆、栈、常量池和寄存器等。下面我们将详细讨论这些概念。 1. 寄存器: 寄存器是计算机硬件的一部分,用于快速访问数据。在Java中,寄存器由编译器根据需要自动分配和...

    java常量池分析.pdf

    Java常量池是Java编程语言中的一个重要概念,它在JVM(Java虚拟机)的运行时数据区中占据着核心地位。常量池是每个类或接口在编译时都会生成的一部分,它存储了各种类型的常量,包括字面量(如字符串、整数、浮点数...

    string常量池和intern_韩雅茹Java系列2021.pdf

    字符串常量池和intern 字符串常量池是Java语言中的一种机制,旨在节省空间和提高性能。它是一个内存区域,所有的Java类共享这个池子。字符串常量池的设计思想是为了解决字符串的频繁创建问题,减少内存开销和提高...

    Java String 字符串常量池解析

    Java 中的字符串常量池是一种为了提高性能和减少内存开销的机制。它是 JVM 实例化字符串常量时进行的一些优化,主要是为了减少字符串对象的创建和存储。 字符串常量池的设计思想是基于字符串是不可变的这个特点,...

    解析Java中的String对象的数据类型 字符串

    Java中的String对象是一种特殊的数据类型,它不同于基本数据类型,也不同于其他对象。String对象的默认值是null,但它又是一种特殊的对象,有其它对象没有的一些特性。 首先,String不属于8种基本数据类型,它是一...

    class常量池类型分类.pdf

    综上所述,Java类文件中的常量池是非常重要的组成部分,它不仅存储了类的基本信息,还为JVM提供了必要的信息来解析和执行字节码。了解这些常量类型有助于更好地理解Java编译器如何处理源代码,以及JVM如何执行这些...

    28.java基本类型封装.docx

    在Java中,存在两种数据类型:基本数据类型和引用数据类型。基本数据类型包括`byte`、`short`、`int`、`long`、`float`、`double`、`char`以及`boolean`。这些类型直接存储具体的值,而引用数据类型则通过对象来存储...

    JVM常量池教程吐血整理干货.md

    Java中的一些基本数据类型的包装类(如`Integer`、`Byte`、`Character`、`Long`和`Short`)提供了缓存池来存储数值范围内的对象。这些缓存池的主要作用是为了提高性能,因为可以直接复用已存在的对象,而不是每次都...

    java String源码和String常量池的全面解析

    Java String 源码和 String 常量池的全面解析 Java String 源码和 String 常量池是 Java 语言中非常重要的两个概念,它们之间存在着紧密的联系。在 Java 语言中,String 类是不可变的,finalize 方法被禁用,以确保...

    基本数据类型和包装类型1

    在Java编程语言中,数据类型是程序设计的基础,它们分为两大类:基本数据类型和引用数据类型。基本数据类型包括字节(byte)、短整型(short)、整型(int)、长整型(long)、浮点型(float)、双精度浮点型...

Global site tag (gtag.js) - Google Analytics