c++ string 长度限制_面试中要会的String相关问题
在java面试中,String是面试官最喜欢问,甚至是最先问的问题.这是在考验你的基本功,也是考验你的能力.String都答不上来,下面就不用继续了.我总结一些String相关的试题,希望对大家在以后的面试中有帮助
0.String是最基本的数据类型吗?
Java中基本数据类型包括byte,int,char,long,float,double,boolean,short一共八个;String是定义在 java.lang 包下的一个类。它不是基本数据类型。
1.String是否可以被继承?
不可以,因为String类似final类。
2.Java中的String a = "abc"和String a = new String("abc")的区别?
String a = "abc" 使用常量进行初始化,初始化后内存存储在String常量池中
String a = new String("abc") 创建字符串对象,JVM创建字符串对象但不存储于字符串池。
3.为什么字符串是不可变的?
因为String类似final类。
4.什么是String常量池?
字符串池是一个特殊的内存区域,与存储这些字符串常量的常规堆内存分开。这些对象在应用程序的生命周期中被称为字符串变量。
如:双引号直接创建的字串,String a = "abc",会将"abc"存储在该区域。
5.使用字符串初始化代码:String a = new String("abc");创建多少个对象?
上面一行代码将会创建1或2个字符串。如果在字符串常量池中已经有一个字符串“abc”,那么就只会创建一个“abc”字符串。如果字符串常量池中没有“abc”,那么首先会在字符串池中创建,然后才在堆内存中创建,这种情况就会创建2个对象了。
6.String类中intern()的作用?
调用该方法时,如果池已包含String与equals(Object)方法确定的此对象相等的字符串,则返回池中的字符串。否则,将此String对象添加到池中,并String返回对此对象的引用。
它遵循对于任何两个字符串s和t,s.intern()==t.intern()是true当且仅当s.equals(t)是true。意味着如果s和t都是不同的字符串对象并且具有相同的字符序列,则在两者上调用intern()将导致由两个变量引用的单个字符串池文字。
7.使用equals和'=='进行字符串比较的差异?
字串中equals是重写的一个方法,比较字符串中value字符数组中字符是否一致,即比较的是字符串的值,==不仅比较字符串的值,而且还比较两个字符串所在内存地址是否相同。
8.String StringBuffer StringBuilder 三者各自线程安全性如何?
String StringBuffer线程安全,StringBuilder非线程安全。
9.String,StringBuffer以及StringBuilder之间的区别?
String是值不可变类,每次在String对象上的操作都会生成一个新的对象;StringBuffer和StringBuilder则允许在原来对象上进行操作,而不用每次增加对象;StringBuffer是线程安全的,但效率较低,而StringBuilder效率最高,但非线程安全。
10.如何连接多个字符串。
String:通过解读Java API,可以知道Java为字符串连接运算提供特殊支持。 字符串连接是通过StringBuilder (或StringBuffer )类及其append方法实现的。
StringBuffer:使用append实现
StringBuilder:使用append实现。
11.如何分割一个String?
可以使用字串分隔函数:public String[] split(String regex),根据传入的正则字符串进行分割,注意,如果最后一位刚好有传入的字符,返回数组最后一位不会有空字符串。
12.如何判断两个String是否相等?
有两种方式判断字符串是否相等,使用"=="或者使用equals方法。当使用"=="操作符时,不仅比较字符串的值,还会比较引用的内存地址。大多数情况下,我们只需要判断值是否相等,此时用equals方法比较即可。
还有一个equalsIgnoreCase可以用来忽略大小写进行字符串值比较。
13.String类中,字符串长度是否有限制?
可以看字符串类的源码,字符串使用char数组存放字符,该字符数组为定义最大长度,故,理论上来说String是没有长度限制的,限制的是你的内存有多大。
14.Java String “+”连接符拼接字符串原理?
String字符串拼接通过StringBuilder走中间过程,通过append方法实现。
程序有大量字符串拼接时,建议直接StringBuilder实现,就不需要底层new很多临时String对象了。注意null参与拼接时会变成字符串"null"。
c++ string 长度限制_面试中要会的String相关问题相关推荐
- 去重 属性_面试中常问的List去重问题,你都答对了吗?
面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固. 我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本 ...
- e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗
#新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...
- js判断数组中重复元素并找出_面试中常遇见的数组去重
导读 JS数组去重是面试中并不少见的问题,听起来很简单,当你兴高采烈地回答了你的方法之后,你以为这道题就结束了吗?No,一般来说,面试官会继续问你"除了你刚刚说的方法,还有其他更好的方法吗? ...
- 2个vector如何合成一个_面试中如何做到不卑不亢,牢记2个要点
文│叨叨HR那点事 (文章原创,版权归本作者所有,欢迎个人转发分享) 面试的时候什么态度和面试官沟通?这个问题,就像一千个人眼里有一千个哈姆雷特一样,人人都有自己的意见和看法. 有人说,面试嘛,当然要 ...
- mysql数据库击穿_面试中经常出现的缓存穿透、雪崩和击穿到底是什么?
对于缓存穿透.缓存雪崩和缓存击穿常常出现在面试中,今天来看看它到底是何方神圣 redis缓存穿透 理解重在穿透吧,也就是访问透过redis直接经过mysql,通常是一个不存在的key,在数据 ...
- 学Java的逻辑测试题_面试中的逻辑题测试及答案.doc
面试中的逻辑题测试及答案 面试中的逻辑题测试及答案魔豆之路 首页业界观察Android技术iOS技术分享HTML5技术JAVA & JVM测试技术分享WORDPRESS home 程序员面试秘 ...
- Java中string字符串的值_Java中的字符串(String)
一.基本概念: 字符串是一系列字符串的序列.在Java语言中字符串是用一对对双引号"",括起来的字符系列.例如"Hello","你好".从数 ...
- java string 常量池_用了这么久Java String,你真的懂字符串常量池吗?
字符串问题可谓是 Java 中经久不衰的问题,尤其是字符串常量池经常作为面试题出现.可即便是看似简单而又经常被提起的问题,还是有好多同学一知半解,看上去懂了,仔细分析起来却又发现不太明白. 本文以 J ...
- 怎么往integer型数组添加数据_面试中经常问到的Redis七种数据类型,你都真正了解吗?...
前言 Redis不是一个简单的键值对存储,它实际上是一个支持各种类型数据结构的存储.在传统的键值存储中,是将字符串键关联到字符串值,但是在Redis中,这些值不仅限于简单的字符串,还可以支持更复杂的数 ...
最新文章
- Android书籍推荐
- BZOJ3336: Uva10572 Black and White(插头Dp)
- python程序设计与应用教程鄂大伟_鄂大伟-从零进阶的Python教学与开发之路.pdf
- war 发布后页面不更新_一文看懂tomcat8如何配置web页面管理
- Spark Streaming从Kafka中获取数据,并进行实时单词统计,统计URL出现的次数
- 【ARM】Tiny4412裸机编程之LED(一)
- Windows 2008 R2 中 IE9无法播放HTML5视频文件的解决方法!
- 没有mmu可以跑Linux吗?
- 建议收藏丨sql行转列的一千种写法!!
- BugkuCTF-WEB题文件上传
- 三星Galaxy S21 FE即将量产:8月登场 小屏满血旗舰!
- 292021年山西高考成绩查询,山西高考分数线查询时间:2020年山西高考成绩什么时候出...
- dojo动态创建widget
- 金融+大数据解决方案:银行业
- Adobe Photoshop CC 2014 15.2.1 32/64位中文特别安装版+绿色版
- AWS的下一站:3.8万亿美元的企业IT市场
- 拼多多店铺营业执照相关问题
- api接口安全验证(sign签名和token验证)
- samba 445端口被运营商禁用解决方法
- android qq账号登陆验证手机号码,注册QQ号如何跳过手机验证