首页 > 编程语言 >对于Java中String的简单理解

对于Java中String的简单理解

时间:2023-08-16 20:56:20浏览次数:32  
标签:Java String 指向 str1 字符串 理解 空间

String的三种初始化方式

public class Test {
    public static void main(String[] args) {
        String str1 = "Hello, World !";     //直接初始化
        String str2 = new String("Hello, World !"); //直接创建一个对象
        String str3 = str1; //str3作为str1的引用
    }
}

关于String变量所需要注意的地方

String变量的本质:在堆上申请一块空间创建字符串,并让指针指向这块空间。

String变量发生改变(赋值),原指向的字符串空间不会被释放,而是重新申请一块空间创建字符串,并让指针指向这块空间。由于Java拥有自动内存管理机制,因此在程序运行结束或堆空间不足时会自动释放没有被引用的字符串空间。

标签:Java,String,指向,str1,字符串,理解,空间
From: https://www.cnblogs.com/Cirnvel/p/17636148.html

相关文章

  • java垃圾回收(GC)
    java和c++最大的不同点之一即中无需程序员去关注程序的内存管理,因为jvm提供了垃圾回收机制来保证内存的管理和回收。 jvm如何确定回收对象引用计数法:该方法当前jvm并未采用,仅作简单介绍,类似于c++智能指针,提供对象的引用计数器判断对象是否活跃,但是无法解决两个对象循环引用问......
  • 关于Duubo和Rpc的理解
    一.什么是Dubbo,什么是RPC?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。RPC(RemoteProcedureCall)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底>层网络技术的协议。1.远程调用就是本地机器......
  • Java基础2.0
    题1:如何理解 final 关键字?1)类的final变量和普通变量有什么区别?当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。2)被final修......
  • 2023.8.16 周三:Java论文提交管理系统
    1packageSystem;2importjava.util.Scanner;3publicclassPaperManagement{4publicstaticvoidmain(String[]args){5Scannerscanner=newScanner(System.in);6ScoreInformation[]students=newScoreInformation[5];......
  • java配置数据库
    server:port:8888spring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/ri?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2......
  • java反射和泛型测试
     java反射和泛型测试packagecom.qsds.test;importjava.lang.reflect.Method;importcom.qr.util.GetFieldOrder;/***Helloworld!**/publicclassApp<T>{publicstaticvoidmain(String[]args)throwsException{//反射测试tes......
  • 【深度挖掘Java并发编程底层源码】「底层技术原理体系」带你零基础认识和分析学习相关
    FutureTask的基本介绍FutureTask是Java中的一个类,它实现了Future接口和Runnable接口,并且被用作线程执行的任务。FutureTask可以在多线程环境下异步执行一个任务并获取其结果。FutureTask的特点用法异步执行:通过将耗时的任务交给FutureTask,在一个单独的线程中执行,当前线程可以继续执......
  • 模拟实现一个简单的string类
    string类为何要被做成模板首先要了解一下为什么string类,要被做成模板如下图:string我们知道是用来储存字符串的,对于英文使用asc2码即可以代表所有的英文符号,但是string这个类为何要被做成模板呢?这就要涉及到编码的问题了,首先我们知道对于一个整型(浮点型)而言,计算机是通过记录它的补码......
  • 【Java】从头开始的Java复健day8
    用的书:《Java从入门到精通》day1(3.1-3.3):【Java】从头开始的Java复健day1day2(3.4-3.8):【Java】从头开始的Java复健day2day3(4.1-4.4):【Java】从头开始的Java复健day3day4(4.5-5.2):【Java】从头开始的Java复健day4day5(5.3-5.4):【Java】从头开始的Java复健day5da......
  • 学习笔记 - Java 面向对象_上
    学习面向对象内容的三条主线Java类及类的成员:属性、方法、构造器;代码块、内部类面向对象的特征:封装、继承、多态、(抽象)其他关键字的使用:this、super、package、import、static、final、interface等类的相关概念类和对象概述类(Class)和对象(Object)是面向对象的核心概念。......