Java面试宝典(一):JavaSE基础(5)——Java的数据类型

1、Java的基本数据类型都有哪些?各占几个字节?

四类八种字节数数据表示范围
整型byte1-128~127
short2-32768~32767
int4-2147483648~2147483647
long8-263~263-1
浮点型float4-3.403E38~3.403E38
double8-1.798E308~1.798E308
字符型char2表示一个字符,如('a','A','0','家')
布尔型boolean1只有两个值true与false

2、String是基本数据类型吗?

String是引用类型,底层用char数组 实现的

3、short s1=1;s1=s1+1;有错吗?short s1=1;s1 += 1;有错吗?

前者不正确,后者正确。对于short s1=1;s1 = s1+1;由于1是int类型,因此,s1+1 运算结果也是int型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1+=1;可以正确编译,因为s1+=1;相当于s1 = (short)(s1+1);其中有隐含的强制类型转换。

4、int和Integer有什么区别

Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作, Java 为每一个基本数据类型都引入了对应的包装类型( wrapper class int 的包装类就是Integer ,从 Java 5 开始引入了自动装箱 拆箱机制,使得二者可以相互转换。

Java为每个原始类型提供了包装类型:

-原始 类型:boolean,char,byte,short,int,long,float,double

-包装类型:Boolean,Char,Byte,Short,Integer,Long,Float,Double

5、String类常用方法

6、String、StringBuffer、StringBuilder的区别

(1)可变不可变

String:字符串常量,在修改时不会改变自身;若修改,等于重新生成新的字符串对象。

StringBuffer:在修改时会改变对象自身,每次操作都是对 StringBuffer 对象本身进行修改,不是生成新的对象;使用场景:对字符串经常改变情况下,主要方法: append()  insert()等。

(2)线程是否安全

String:对象定义后不可变,线程安全。

StringBuffer:是线程安全的(对调用方法加入同步锁),执行效率较慢,适用于多线程下操作字符串缓冲区大量数据。

StringBuilder :是线程不安全的,适用于单线程下操作字符串缓冲区大量数据。

(3) 共同点

StringBuilder与 StringBuffer 有公共父类 AbstractStringBuilder( 抽象类 )。

StringBuilder、 StringBuffer 的方法都会调用 AbstractStringBuilder 中的公共方法,如 super.append(...) 。只是 StringBuffer 会在方法上加 synchronized 关键字,进行同步。最后,如果程序不是多线程的,那么使用StringBuilder 效率高于 StringBuffer 。

7、数据类型之间的转换

(1)字符串转基本数据类型

调用基本数据类型对应的包装类中的方法parseXXX(String)或valueOf(String)即可返回相应基本类型。

(2)基本数据类型如何转字符串

一种方法是将基本数据类型与空字符串("")连接(+)即可获得 其所对应的字符串,另一种方法是调用String类中的valueOf()方法返回相应字符串。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值