【Java面试题三】Java数据类型及类型转换

面试者需要掌握以下知识点:

    在Java程序中,总共有8大基本类型,包括4种整型,1种字符型,2种浮点型,1种布尔型,除了这几种基本类型之外,其他都属于复合类型。

    总的来说Java数据类型分为基本数据类型、复合数据类型。

        基本数据类型分为:数型值、字符型(char)、布尔型(boolean)。

            数值型分为:整型和实型。

                    整型分为:字节型(byte)、短整型(short)、整型(int)、长整型(long)

                    实型分为:单精度(float)、双精度(double)

        复合数据类型分为:数组、类、接口。


面试题一:int和Integer有什么区别?

参考答案:Java提供两种不同的类型:引用类型和原始类型。int是Java的原始数据类型,Integer是Java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类,例如,Boolean是boolean的封装类;Character是char的封装类;Byte是byte的封装类;Short是short的封装类;Integer是int的封装类;Long是long的封装类;Float是float的封装类;Double是double的封装类。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括大小和速度问题、这种类型以哪种类型的数据结构存储、当引用类型和原始类型用作某个类的实例数据时所指定的默认值。对象引用实例变量的默认值为null,而原始类型实例变量的默认值与它们的类型有关。



面试题二、给出下面的代码,哪个叙述是正确的?                                                                                                                      

public class IntArray{
  static int arr[]=new int[10];
  public static void main(String[] args){
    System.out.println("arr[1]");
  }
}

A.输出为0

B.没有结果输出

C.编译时将发生错误

D.编译时正确但是运行时发生错误

    试题分析:在本题中arr是个int型数组,数组是类对象,属于复合数据类型。它在类被加载时完成初始化,由于arr[1]是一个原始数据类型int数据,其初始值为0.

参考答案:A



面试题三:判断表达式的正误

short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?

    试题分析:这道题目主要考察了各数据类型之间的相互转换。要区分自动类型转换和强制类型转换。

参考答案:第一个表示中s1+1运算结果是int型,需要强制转换类型

                 第二个类型可以正确编译,可以强制类型转换。



面试题四:选出对float变量的合法声明

下面选项中表示的是对float型变量的声明,请选择哪些是正确的?

A.float fa=-586;

B.float fb=3.1415;

C.float fc=0xA4E

D.float fd=42e1.2L;

E.float fe=52.08D;

F.float ff=5.88F;

  试题分析:浮点常量默认为双精度数,如果需要指定为单精度数,需要在末尾加上F或f。

参考答案:ACF



面试题五:char型数据的取值是多少?

A.-128~127

B.0~32767

C.由平台决定

D.0~65535

参考答案:D



面试题六、根据给出的代码,选择正确的答案:

class AA{
	public char c;
	public AA(char i) {
		c=i;
	}
	public static void main(String[] args) {
		AA c1=new AA('1');
		AA c2=new AA('1');
		AA c3=c2;
		char a='1';
		int b=1;
	}
}

A.a==b

B.a==c1

C.c2==c3

D.c1==c2

    试题分析:基本类型进行的是值比较,而对象类型进行的是地址比较,也就是指向它们内存地址的指针进行比较

参考答案:C



面试题七:char型变量能不能存储一个汉字?为什么?

参考答案:char 型变量能够存储一个汉字,因为Java采用的Unicode编码,一个char占16个位,而一个中文汉字只有两个字节,所以放一个汉字是没用问题。 



面试题八:下面选项对boolean型变量的声明,请选择哪些选项是正确的?

A.boolean b1;

B.boolean b2=1;

C.boolean b3='true';

D.boolean b4=false;

E.boolean b5=Boolean.false();

    试题分析:布尔类型是最简单的一种数据类型,布尔型变量是用关键字boolean来定义且布尔型数据只有两个值:true和false,分别表示“真”和“假”。在Java中,布尔类型是不能转换为int型。

参考答案:AD



面试题九:基本数据类型与String类型之间的转换

表达式10.4+"4.2"的结果是什么?

A.返回double类型14.6

B.返回String类型“14.6”

C.返回long类型14

D.返回String类型“10.44.2”

 试题分析:当+运算符两侧的操作数的类型不一致时,需要统一类型,这时就会发生类型转换。当一个操作数为原始数据类型,另外一个为字符串时,则基本类型的操作数要转换为等价的字符串,这时“+”不再是加运算符而是连接符。

参考答案:D



面试题十:选择正确的结果

运行下面的代码,正确的结果是哪一个?

public class Test{
	public static void main(String[] args) {
		int x=1;
		Test rt=new Test();
		System.out.print("x1="+x);
		rt.setValue(x);
		System.out.print("x3="+x);
	}
	public void setValue(int x) {
		x=x+1;
		System.out.print("x2="+x);
	}
}

A.x1=1 x2=2  x3=1

B.x1=1 x2=0 x3=2

C.x1=1 x2=1 x3=1

D.不能编译

参考答案:A



面试题十一:

在下面程序标明的位置处插入哪条语句会导致编译错误

public class FinalUse{
	public static void main(String[] args) {
		int x=0;
		final int y=1;
		int[] z= {2};
		final int[] n= {3};
		Use(x,y,z,n);
	} 
	static void Use(final int x,int y,final int[] z,int[] n) {
		//插入内容
	}
}

A.x++

B.y++

C.y=x

D.z[0]++

E.n[0]++

F.z=n

参考答案:AF

你可能感兴趣的:(Java面试题,Java面试题)