从头开始学java--String类&包装类

面试必考之Java中String是基础类型?是包装类型? 面试必考之Java中String是基础类型?是包装类型?为什么 阅读详情




一.String类的定义

String类也是一个引用类型,存储字符串。而且自带了若干方法,操作字符串很方便。所以记录一下关于String类的一些知识。

以下是一个例子:

public class StringTest {
	public static void main(String[] args)
	{
		//标准的字符串定义
		String str1 = new String("hello");
		System.out.println(str1);
		//简化定义
		String str2 = "world";
		System.out.println(str2);
	}
}
由于String类比较常用,所以一般都采用简化的定义方式。


String类分析:

public class StringTest2 {
	public static void main(String[] args)
	{
		String str1 = "hello";
		String str2 = "hello";
		String str3 = "hell" + "o";
		System.out.println(str1 == str2);//true
		System.out.println(str1 == str3);//true
		System.out.println(new String("hello") == new String("hello"));//false
		String str4 = "hell";
		String str5 = str4;
		System.out.println(str4 == str5);//true
		str4 += "o";
		System.out.println(str4 == str5);//false
		System.out.println(str4 == "hello");//false
		System.out.println(str4.equals("hello"));//true	
	}
}
结果见注释。

要点:

1.同一字符串在内存中只保存一份,str1,str2指向的是内存中的"hello",只是两个不同的引用型变量,并不是有两个字符串。

2.String类有9种构造方法。详细查看帮助文档。在定义时,如果字符串中有“+”, 会自动优化,合并成一个字符串。

3.new出来的字符串,即使内容相同,也是两个对象,地址不相同。

4.比较两个str ,== 判定的是地址是否相同。判断内容相同与否还是使用equals方法。

5.String类的内容是只读的,如果改变了,就成为了另一个对象。所以才会有System.out.println(str4 == str5);//false


二.String类的常用方法

public class StringTest3 {
	public static void main(String[] args)
	{
		String str1 = "hello1";
		String str2 = "hello2";
		//charAt方法,根据索引项返回字符串中的字符
		System.out.println(str1.charAt(0));//输出为h
		
		//compareTo方法,按照字典法比较字符串,类似与c的strcmp
		// str1 < str2 -1, str1 = str2 0 , str1 > str2 1
		System.out.println(str1.compareTo(str2));//输出为-1
		
		//startWith方法,endWith方法,查询字符串是否以某字串开头或结尾
		System.out.println(str1.startsWith("hell"));//输出为true
		System.out.println(str1.endsWith("1"));//输出为false
		
		//indexOf,lastIndexOf方法,产寻字符串中是否有字串,返回个数
		System.out.println(str1.indexOf("l"));//输出为2
		System.out.println(str1.lastIndexOf("ell"));//输出为1
		
		//subString方法,提取子串
		System.out.println(str1.substring(0, 3));//输出为hel
		
		//String类的静态方法,valueOf,可以将其他类型的变量转化为string类
		int number = 123;
		String str = String.valueOf(number);
		System.out.println(str);
	}
}

用法见注释。

要点:

1.每个方法基本都有重载,对应不同的参数,有不同的操作。

2.还有诸如.length获取长度,concat()连接字符串,replace()字符串替换,toUpperCase(),toLowerCase()大小写转换等方法。

3.StringBuffer类,可以变长的字符串。


三.包装类


虽然java仍然有原始数据类型,但是对应的原始数据类型,java感觉功能不够强大,所以对应的原始数据类型java提供了一些包装类,提供一些方法,可以让我们对其进行操作。

public class Package {
	public static void main(String[] args)
	{
		int value = 100;
		//装箱
		Integer valueobj = value;
		System.out.println(valueobj);
		// 拆箱
		int result = valueobj;
		System.out.println(result);
	}
}

要点:
1.都是数据类型,为什么绕这么大弯子呢?就是把原始数据类型封装成一个对象之后,可以运行包装类的方法,从而达到对数据的操作。
2.包装类 = 基本数据类型 +方法字段
包装类如下图:





GEE进行Theil-Sen Median斜率估计和Mann-Kendall检验 Python实现Theil-Sen Median斜率估计和Mann-Kendall检验// 定义时间范围//NDVI图像集合// 定义每年的开始和结束日期// 加载NDVI数据集,按日期过滤,并计算最大值.max()}));// 计算Sen斜率并剪裁// 可视化Sen斜率Map.addLayer(senSlope.select('slope'), vis, "Sen斜率 ");// MK检验// 创建一个列表,包含年度NDVI图像的list。 阅读详情

相关推荐

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1494

JAVA笔记(十六):包装类、String类、StringBuffer、StringBuider

重点:String、StringBuffer、StringBuilder的区别和使用场景

欢迎~ 408

Ubuntu 上 1Panel 的安装与高效运维实践

本文详细介绍了在Ubuntu系统上安装和高效运维1Panel面板的完整实践指南。内容涵盖了一键安装、Docker容器可视化部署、计划任务自动化以及网站数据库管理等核心功能,并提供了安全加固、资源监控与数据备份等进阶技巧,旨在帮助用户快速搭建并管理一个强大易用的服务器环境。

weixin_29210759的博客 144

Java基础学习第七讲:Java中的String类、常用类及包装类

Java中的String类、常用类及包装类

跟着老高学Java 1067

LPC546xx USB接口VBUS阈值设计:从原理到实践,解决冷启动与可靠性问题

在嵌入式USB接口设计中,VBUS信号不仅是电源线,更是设备连接检测与电源管理的核心。其电压阈值直接决定了USB物理层(PHY)能否正确识别主机并建立有效会话。理解VBUS的会话有效电压(Votg_sess_valid)与PHY有效电压(VBUS_valid)等关键参数,是确保接口稳定性的基础。这些参数影响着设备枚举的成功率、通信稳定性以及长期可靠性。在工程实践中,尤其是对于集成PHY的微控制器如NPC LPC546xx系列,VBUS的连接方案(直接连接或通过稳压器)需要根据设备供电模式(自供电/总线供电)

weixin_30915275的博客 402

TortoiseGit提示No supported authentication methods available错误

一、问题 在使用TortoiseGit与远程仓库进行同步代码的时候提示如下错误,即:没有支持认证的方法可用。而GitBash却可以正常使用,不受影响。 通过调查,发现应该是TortoiseGit远程仓库的公匙无法和本地的密匙进行匹配认证造成的(主要是TortoiseGit缺少本地密匙)。由于TortoiseGit的默认网络SSH client是TortoiseGitPlink.exe,如下图所示。因此主要有两种方式来解决该问题: 不修改TortoiseGit的默认网络SSH client,此时需要为To

Jeffxu_lib的博客 2万+

【java基础】-java包装类/String类详解

介绍java包装类和String类的使用说明,包括为什么要用、怎么用、有什么性质等等

qq_43800449的博客 876

深入掌握英飞凌TriCore中断向量表

摘要:本文探讨了英飞凌Tc277芯片中断机制的原理与实现,重点解析了中断向量表基地址的链接文件定义方式、BIV寄存器的初始化过程以及每个中断条目的32字节空间分配规则。通过分析中断向量号(1-255)的计算方法,阐明了中断条目跳转地址(如STM0中断向量号37对应0x800F04A0)的生成逻辑。文章还揭示了.map文件中14字节跳转指令的组成原理,以及最终通过a14寄存器跳转到实际中断函数(如stm0Sr0ISR)的执行流程,为嵌入式开发人员理解中断处理机制提供了清晰的技术路径。

IT技术猿猴的博客 1713

Java 编码系列:String、StringBuilder 与包装类

本文深入探讨了 Java 中的String和包装类的底层原理,并结合大厂的最佳实践,帮助读者掌握这些核心概念。正确理解和使用这些技术不仅可以提高代码的可读性和性能,还能避免一些常见的陷阱。希望本文对你有所帮助,如果你有任何问题或建议,欢迎留言交流。希望这篇文章能够满足你的需求,如果有任何进一步的问题或需要更多内容,请随时告诉我!

pjx987的博客 1284

西门子PLC与汇川SV660P伺服速度模式配置实战指南

本文详细介绍了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的配置实战指南。从硬件接线、伺服参数配置到TIA Portal软件组态和PLC程序编写,提供了全面的操作步骤和实用技巧,帮助工程师快速解决伺服系统调试中的常见问题,确保系统稳定运行。

weixin_30316097的博客 500

Allegro16.6详细教程(二)

3-D Viewer,可以直接在allegro中看到board file的3-D顯示效果。3-D Viewer對於PCB Editor Products,只有環境變數中的OpenGL顯示功能開啟後才有效,而對於APD/SiP是無效的。2.3-D viewer是在一個獨立的視窗中打開的。3-D environment環境支援多種顯示內容的過濾,取景視角和顯示效果的選項,透過遊標可以直接控制放大,移動,翻轉等操作。

axingxiansen的博客 1922

Java-自动拆箱/装箱/缓存/效率/String和包装类相互转换

只不过编译器帮我们自动完成了从基本类型到包装类型的转换这一过程,这个机制使得代码编写更加简洁和方便,符合 Java 中面向对象操作的风格,因为在很多面向对象的场景里(比如将值存储在集合中,集合元素要求是对象类型),基本类型需要先转换为包装类型才能参与操作。对于“int1 == integer1” 比较,由于 Integer 与 int 进行 “==” 比较时,Integer 会自动拆箱成 int 类型,相当于两个 int 类型比较,所以结果也是 true。对象,所以是可以转换的),然后提取出其包装的。

weixin_63172268的博客 1661

ParaView :在paraview创建渲染视图

ParaView :在paraview创建渲染视图

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1311

为什么要有包装类,顺便说一说基本数据类型、包装类、String类该如何转换?

本篇主要讲解Java面试题:包装类的自动装箱与拆箱以及相关的知识。

知识记录 1136

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

包装类和String类的详解

包装类和String类的详解 一. 包装类 含义:基本数据类型对应的类。 出现的原因: ​ java为纯面向对象的语言(万物皆为对象),而八种基本数据类型不能创建对象,破坏了java为纯面向对象语言的特征,所以java又给这八种数据类型分别分配了对应的类,这种叫做包装类/封装类。 继承关系: ​ 基本数据类型 引用数据类型 byte Byte extends Number extends Object short Short extends Number

qq_44288171的博客 1608

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java-String类及包装类

但是当需要和其他对象结合使用,如存入集合中,就需要将基础数据类型实例化为Java对象,为了面向对象的这一特性,基本数据类型中的每一个类型在java.lang包中都有一个包装类,即将每个基本类型都包装成了一个类。包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,而“= =”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“= =”比较时会先做自动拆箱处理。因为 String 对象是不可变的,所以可以共享。...

简之恨寒的博客 1214

Java核心API-String、StringBuilder、Object 和包装类

(通过右键->Generate->equals() and hashcode() 系统生成)Object 类有两个经常被子类重写的方法:toString() 和 equals()对于字符串而言,实际应用中我们通常希望比较的是两个字符串的内容是否相同。== 是比较值是否相等,对于引用类型而言,引用中保存的是地址。判断当前字符串是否是以给定的字符串(str)开始 / 结束的。因此一般都是通过equals()来比较字符串内容是否相同的。构造一个字符串生成器,并初始化为指定的字符串内容。(index为数组下标)

qq_68630091的博客 1297

java包装类string_Java学习之String类与包装类

一、String 类1、定义:1、从概念上讲,java字符串就是Unicode字符序列。每个用双引号括起来的字符串都是String类的一个实例。Java字符串由char序列组成,也就是说,String的最小单位是char类型的字符。字符数据类型是一个采用UTF-16的编码表示Unicode代码点的代码单元。(大多数的常用Unicode字符使用一个代码单元就可以表示,而付诸字符需要一对代码单元表示。...

weixin_30768979的博客 1082

包装类、String、StringBuilder、StringBuffer

包装类、String、StringBuilder、StringBuffer

qq_51600158的博客 977

String类,包装类,

记录学习Java的问题和经验——3 1.String类(类的首字母大写): 在 Java 中,字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中。默认情况下,该包被自动导入所有的程序。 String创建方法: public class HelloWorld { public static void main(String[] args)

q540694991的博客 1924

学点儿Java_Day9_String、包装类

包装类(Wrapper Class): Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包。为什么不是面向对象的就会出现不足,是哪里不足??

Mr_Tang4的博客 883

【Java】三个特殊类——Object类、包装类、String类

Object类、包装类、String类的内容以及其特有的方法等。

m0_50987960的博客 969

包装类、Object类、String类、

包装类、Object类、String类的一些常用方法,以及包装类、基本数据类型、String类型的相互转换

qq_64004825的博客 872

java包装类

Java的包装类(Wrapper Classes)是Java语言为八种基本数据类型(byte, short, int, long, float, double, char, boolean)提供的对应类。这些包装类允许我们将基本数据类型当作对象来处理,并提供了许多有用的方法和常量。

qq_65501197的博客 812

java基础 包装类、String类、StringBuffer、StringBuilder、Math类、Arrays类

java基础 包装类、String类、StringBuffer、StringBuilder、Math类、Arrays类

温涛的博客 831

Java 包装类和String类

包装类   为8种基本数据类型各自提供一个类。即把基本数据类型转换成对应的对象形式。   JDK5之后:  Object o = 任何数据 ; 基本类型和包装类之间的转换   JDK5.0之后:编译器提供自动封箱功能,虚拟机则执行实际转换后的代码。 int i = 2; Integer a = Integer.valueOf(i); Integer a = 5; // Intege...

yangliye2020的博客 366

String方法、包装类、枚举、日期

文章目录String类StringBuilder与StringBuffer方法Math算术计算进位随机数包装类自动拆装箱机制自动装箱自动拆箱比较问题枚举类 enum日期类型DataSimpleDateFormatformat()parse()format()parse() String类 StringBuilder与StringBuffer StringBuilder可变长字符序列 , 线程不安全 ,单线程下大量操作字符串推荐使用 StringBuffer 可变长字符序列 , 线程安全的 ,多线程下大量操作

Abysstale的博客 1625
上一篇: 从头开始学java--数组
下一篇: 从头开始学java-继承
puppet_master
puppet_master 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄12年 2695粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值