Java千百问_06数据结构(007)_String属于基本数据类型吗

简介:

1、String属于基本数据类型吗

首先要明确的是,在Java中,String不是基本数据类型,它继承于Object,是一个jdk提供的字符串类。 
了解基本数据类型看这里:java有哪8种基本数据类型2 
但是,String和其他对象相比,jdk做了很多特殊的处理。体现在如下几个方面:

  • String可以通过new构造对象,也可以直接赋值。例如:
String str = new String( "abc" );//第一种
String str = "abc" ;//第二种



  • 第一种用new()来新建对象,它会在存放于中,每调用一次就会创建一个新的对象。 
    第二种是先在中创建一个对String类的对象引用变量str,然后查找栈中有没有存放”abc”,如果没有,则将”abc”存放进栈,并令str指 向”abc”,如果已经有”abc” 则直接令str指向”abc”。 
    了解java内存堆栈看这里:

  • 第二种方式(String str1 =”abc”)创建多个”abc”字符串,在内存中其实只存在一个对象而已。这种方式节省内存空间,同时它可以在一定程度上提高程序的运行速度,因为JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象。 
    而对于String str = new String(“abc”)的代码,则一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象,从而加重了程序的负担

  • 比较类里面的数值是否相等时,用equals()方法;当比较两个引用变量是否指向同一个对象时,用==(可以理解为比较逻辑地址,实际是比较对象号)。 例如:

String str1 = "abc" ;
String str2 = "abc" ;
System.out.println(str1==str2); 


运行结果: 
true

可以看出str1和str2是栈中对象。

String str1 = new String ( "abc" );
String str2 = new String ( "abc" );
System.out.println(str1==str2); 



运行结果: 
false

了解String更多看这里:

原文地址:http://blog.csdn.net/ooppookid/article/details/51335389







相关文章
|
16天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
1月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
15天前
|
存储 Java
Java中的基本数据类型有哪些?它们的大小和取值范围是多少?
Java基础数据类型:4种整型(byte[-128,127],short[-32,768,32,767]),2种浮点(float,double),1种字符(char,Unicode),1种布尔(true,false)。
17 0
|
30天前
|
存储 算法 Java
Java数据结构与算法-java数据结构与算法(二)
Java数据结构与算法-java数据结构与算法
89 1
|
1天前
|
存储 NoSQL 安全
Redis入门到通关之Redis数据结构-String篇
Redis入门到通关之Redis数据结构-String篇
|
1天前
|
存储 缓存 Java
|
1天前
|
存储 安全 Java
Java并发编程中的高效数据结构:ConcurrentHashMap解析
【4月更文挑战第25天】在多线程环境下,高效的数据访问和管理是至关重要的。Java提供了多种并发集合来处理这种情境,其中ConcurrentHashMap是最广泛使用的一个。本文将深入分析ConcurrentHashMap的内部工作原理、性能特点以及它如何在保证线程安全的同时提供高并发性,最后将展示其在实际开发中的应用示例。
|
2天前
|
存储 编解码 算法
Java 的 String StringBuilder StringBuffer(上)
Java 的 String StringBuilder StringBuffer
24 0
|
7天前
|
存储 供应链 Java
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
7 1
|
14天前
|
Java API
编码的奇迹:Java 21引入有序集合,数据结构再进化
编码的奇迹:Java 21引入有序集合,数据结构再进化
16 0