JAVA知识复盘003——八大问题,你能否全部答对?(基本类型和String类型知识回顾)

 

1、Java中有几种基本数据类型,如何分类的?String是基本数据类型吗?

 java中共有8种基本类型,可以分为三大类:布尔-boolean;字符型-char;数值型-byte/int/short/long(整数型);float/double(浮点型);String不是基本类型,是引用类型

2、String类能不能被继承,为什么?这种设计有什么好处?

String类是用final修饰的,无法被继承,无法修改;这样设计主要考虑高效和安全

3、整型的几种中,各个类型的取值范围是多少,如何计算的?超出范围会发生什么?

4种整型:byte short  int long,取值范围从小到大,取值范围不同是因为存贮数值所占的字节数不同

首先一个字节是8位,java中的整型数是有符号的

8位所能表示的最大值是127:2^7-1,最小值为2^7,-128;

byte:1个字节表示,即-2^7~2^7-1;

short:2个字节表示,即-2^15~2^15-1;

int :4个字节表示,即-2^31~2^31-1;

long:8个字节表示,即-2^63~2^63-1;

超出范围不一定会发生异常,也没有提示,即溢出,所以数据计算时,一定要注意数据溢出

4、在接口定义的时候,要定义一个字段表示是否成功,你会选以下哪种方式?为什么? boolean success ;Boolean success ;boolean isSuccess ;Boolean isSuccess

采用第一种方式

1.Boolean默认为null,一般表示是否成功,true,false两种情况,加上null,就变成了3种情况

2.boolean类型的属性的get方法为is,部分框架在解析时,会将isSuccess的属性认为是success,会导致找不到对应属性

在定义属性名时,最好不要有set/get/is

5、什么是自动拆箱、什么是自动装箱。

8种基本类型都有对应的包装类,基本类型转换成包装类为装箱,调用包装类的valueof(),包装类转换为基本类型为拆箱,调用包装类的xxxvalue(),装箱和拆箱自动回自动进行

6、如何比较两个字符串?

1.boolean equals(Object obj);比较字符串的内容是否相同,区分大小写

2.boolean equalsIgnoreCase(String str);比较字符串是否相同,不区分大小写

 3.boolean countains(String str);判断大字符串知否包含小字符串

4.boolean startsWith(String str);判断字符串是否以什么开头

5.boolean endsWith(String str);判断字符串是否以什么结束

 6.boolean isEmpty();判断字符串是否为空("");

比较两个字符串,比较容易搞错的就是equals和==的区别,equals比较的是内容,==比较的地址

String s0="ab";
String s1="abc";
String s3=s0+"c";
System.out.println(s1==s3);//false,比较的是地址
System.out.println(s1.equals(s3));//true,比较的是内容

控制台输出:

false
true

对于字符串的比较,一般目的是比较字符串内容是否相等,这种情况下,要使用equals()方法来比较,而不是使用'=='。

7、String,StringBuilder和StingBuffer之间的区别与联系。

String是不可变的,StringBuilder和StingBuffer是可变的,两个类在动态变化字符串上的方法是相似的如:append,insert,只是StringBuffer类似一个字符串缓冲区,类中的方法全部上锁,线程安全速度慢,StringBuilder线程不安全但是速度快

8、在Java的代码中以及数据库存储中,如何对金额进行表示和计算。

一般有两种方案。 1.以元为单位。Java中存储类型为BigDecimal,数据库中存储类型为number(10,2)。计算过程中保留两位小数,可考虑四舍五入或者向上或者向下取整。根据业务实际情况决定。 2.以分为单位。Java中存储类型为Long,数据库中存储类型为big int。计算过程中保留整数,考虑四舍五入或者取整。

 

你可能感兴趣的:(java知识点复盘)