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编程语言的基础知识中,数据类型和运行时常量池(Runtime Constant Pool)是两个关键概念。数据类型决定了变量可以存储的值的种类和大小,而运行时常量池则是Java虚拟机(JVM)内存模型中的一个重要组成部分。 ...
- 字符串常量和基本类型的常量通常存储在常量池中。 - 在常量池中,对于字符串而言,如果两个字符串相等(通过`equals`方法比较),则在常量池中只保留一份拷贝。 #### 非RAM存储 非RAM存储指的是那些持久化的...
### Java堆、栈和常量池详解 #### Java内存模型概览 在深入探讨Java中的堆、栈以及常量池之前,我们先来简要回顾一下Java内存模型的基本概念。Java程序运行时会使用到不同的内存区域来存储各种类型的数据,这些...
在常量池和栈中,数据是可以共享的。例如,当两个相同的字符串常量在常量池中时,它们实际上是指向同一个内存地址的引用。在栈中,基本类型的数据也是可以共享的,如两个整数变量可以引用相同的数值。而在堆中,对象...
在Java中,内存主要分为四个区域:寄存器、栈、堆和方法区(包括常量池)。以下是这四个区域的详细说明: 1. **寄存器**: 这是计算机硬件的一部分,用于存储非常快速访问的数据。在Java中,寄存器主要由JVM直接管理...
栈内存主要用于存储局部变量,包括基本数据类型和对象的引用。 - **作用域内的变量分配**:当在一段代码块定义一个变量时,Java会在栈中为这个变量分配内存空间。一旦变量退出其作用域,Java会自动释放分配给该变量...
常量池是Java内存模型中的一个重要组成部分,它存储字符串常量和基本类型的final常量。在编译阶段,所有的字符串文字会被放入常量池,以实现对象的共享,从而节省内存和提高运行效率。比较字符串时,使用`==`会检查...
Java 数据类型常见面试题总结 Java 数据类型是 Java 编程语言的基础,了解 Java 数据类型是 Java 开发者的必修课。...基本数据类型和包装类型是 Java 数据类型的两大类,每种数据类型都有其特点和应用场景。
Java常量池是Java虚拟机(JVM)中一个非常重要的概念,它主要分为两种:静态常量池和运行时常量池。静态常量池是class文件中的常量池,包括字符串(数字)字面值、类和方法的信息,占用了class文件的大部分空间。...
在Java中,内存被划分为几个不同的区域,包括堆、栈、常量池和寄存器等。下面我们将详细讨论这些概念。 1. 寄存器: 寄存器是计算机硬件的一部分,用于快速访问数据。在Java中,寄存器由编译器根据需要自动分配和...
Java常量池是Java编程语言中的一个重要概念,它在JVM(Java虚拟机)的运行时数据区中占据着核心地位。常量池是每个类或接口在编译时都会生成的一部分,它存储了各种类型的常量,包括字面量(如字符串、整数、浮点数...
字符串常量池和intern 字符串常量池是Java语言中的一种机制,旨在节省空间和提高性能。它是一个内存区域,所有的Java类共享这个池子。字符串常量池的设计思想是为了解决字符串的频繁创建问题,减少内存开销和提高...
Java 中的字符串常量池是一种为了提高性能和减少内存开销的机制。它是 JVM 实例化字符串常量时进行的一些优化,主要是为了减少字符串对象的创建和存储。 字符串常量池的设计思想是基于字符串是不可变的这个特点,...
Java中的String对象是一种特殊的数据类型,它不同于基本数据类型,也不同于其他对象。String对象的默认值是null,但它又是一种特殊的对象,有其它对象没有的一些特性。 首先,String不属于8种基本数据类型,它是一...
综上所述,Java类文件中的常量池是非常重要的组成部分,它不仅存储了类的基本信息,还为JVM提供了必要的信息来解析和执行字节码。了解这些常量类型有助于更好地理解Java编译器如何处理源代码,以及JVM如何执行这些...
在Java中,存在两种数据类型:基本数据类型和引用数据类型。基本数据类型包括`byte`、`short`、`int`、`long`、`float`、`double`、`char`以及`boolean`。这些类型直接存储具体的值,而引用数据类型则通过对象来存储...
Java中的一些基本数据类型的包装类(如`Integer`、`Byte`、`Character`、`Long`和`Short`)提供了缓存池来存储数值范围内的对象。这些缓存池的主要作用是为了提高性能,因为可以直接复用已存在的对象,而不是每次都...
Java String 源码和 String 常量池的全面解析 Java String 源码和 String 常量池是 Java 语言中非常重要的两个概念,它们之间存在着紧密的联系。在 Java 语言中,String 类是不可变的,finalize 方法被禁用,以确保...
在Java编程语言中,数据类型是程序设计的基础,它们分为两大类:基本数据类型和引用数据类型。基本数据类型包括字节(byte)、短整型(short)、整型(int)、长整型(long)、浮点型(float)、双精度浮点型...