A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汪伟楠 中级黑马   /  2013-12-13 15:15  /  1211 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 汪伟楠 于 2013-12-14 17:07 编辑

我现在学到了String类,但是有一点搞不懂就是String是不是基本数据类型?

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

7 个回复

倒序浏览
数据类型包括基本数据类型和引用数据类型。
基本数据类型包括数值型(整数类型:byte short int long;浮点类型:float double);字符型(char);布尔型(boolean)。
引用数据类型包括类(class);接口(interface);数组([])。
String类是类类型变量一定指向对象。
eg:String s1="abc";
其中s1是一个类类型变量。所以string是引用数据类型。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
String不是基本数据类型

基本数据类型共8个,只包括;
整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean

引用数据类型:
数组、接口、类

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
String是属于引用数据类型(虽然它和基本数据类型很像)
引用数据类型有很明显的特征就是在内存中有地址值
例子:
String  s1="abc";
String  s2=new String("abc");
s1 != s2 的,虽然他们都是“abc”,但是它们的地址值不同
基本数据类型有8种:
整数型:byte 、short、int、long
浮点型:float、double
其他:char、boolean

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
肯定不是啦,因为“String型”有8个呢,要是不懂给你举一个简单的例子:String str1 = "x" ; String str2 = "x" ; String str3 = new String("x") ;String本身就是一个对象而不是基本数据类型,String的变量名是对String类的引用。其它那些Stirng Literals Pool就不讲了,我只是简单地讲下上面的过程,希望对大家用少少用在声名str1的时候,由于还有没等于"x"的对象,所以就创建了一个新的对象;在声名str2的时候,由于有了等于"x"的对象,所以系统就将其值取出直接返回给str2,所以str1和str2变量名都是作为"x"对象的引用。当然new String()就实列一个新的对象了。嘿嘿,你的问题也巩固了下真好,我又看看书,查查资料才看明白的,共同学习,共同进步,黑马我们一路同行哦!

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
丑男先生。 发表于 2013-12-13 15:59
肯定不是啦,因为“String型”有8个呢,要是不懂给你举一个简单的例子:String str1 = "x" ; String str2 = ...

这好像是我们面试会遇到的问题呢
哈哈
回复 使用道具 举报
不是基本数据类型,是引用数据类型哦,String类里还有很多常用方法:
length()
        获取某字符串的长度,比如:s1.length(); 获取s1的长度。注意:数组的长度表示为ch.length,没有括号。

charAt()  
        获取字符串中的某字符,比如:s1.charAt(3); 获取字符串s1的脚标为3的字符。

isEmpty()  
        判断字符串是否为空,比如:s1.isEmpty();   

startsWith()   
        判断字符串是否以“XX”开头,比如:s1.startsWith("abc"); 判断s1是否是以abc开头。

endsWith()   
        判断字符串是否以“XX”结尾,比如:s1.endsWith("xyz"); 判断s1是否是以xyz结尾。

contains()  
        判断字符串中是否包含“XX”,比如:s1.contains("bolo"); 判断s1中是否包含bolo。

indexOf()  
        取字符串中某字符的脚标,比如:s1.indexOf("abc"); 判断s1中的abc的脚标。

lastIndexOf()
        取字符串中某字符的脚标,从后往前。

equals()  
        判断两字符串是否相等,比如:s1.equals("abcd"); 判断s1是否等于abcd。

equalsIgnoreCase()   
        判断两字符串是否相等,不区分大小写。比如:s1.equalsIgnoreCase("Abc");

toCharArray()  
        将字符串转换成字符数组,比如:Char[] ch = s1.toCharArray(); 将s1字符串转换成字符数组。

copyValueOf()
        将字符数组转换成字符串对象,比如String.copyValueOf(ch); 将字符数组ch转换成字符串对象。
            此函数可以限定数组脚标,比如String.copyValueOf(ch,2,5); 将字符数组ch的2脚标开始取5个元素转换成字符串对象。  

valueOf()
        将...转换成字符串对象,...包括一些比如int,long的数据类型。

replace("xianbo","xianbozai")  
        将字符串中的某字符替换成某字符。

split( )  
        将字符串切割成若干个字符数组元素。 比如:s1.split(","); 将s1中的字符切割,逗号作为切割点。

substring(4,9)  
        将字符串中的第4脚标字符开始,一直到8脚标结束这一段字符串剪切出来。包含头,不包含尾。

toUpperCase()  
        将字符串全部转换成大写。比如:s1.toUpperCase();

toLowerCase()  
        将字符串全部转换成小写。比如:s1.toLowerCase();

trim()  
        去除字符串的开头和末尾的空格。比如:s1.trim();

compareTo  
        比较两字符串的大小,返回的值为负数、0、正数,返回的值不用管,不顾正负数来判断大小。比如:s1.compareTo("abc");

可以预先看一看,到后面专门讲String的时候,或许有很大的帮忙。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
ISAI 中级黑马 2013-12-14 13:02:47
8#
不是基本数据类型,是引用数据类型。基本数据类型就8个  而且它们都是小写的,我个人认为是大写的就不是基本类型。你觉得呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马