02-数据类型和运算符

1. 常用的进制有哪些?

       答:二进制,八进制,十进制,十六进制

2. 如何将十进制数据转化为二进制数据?

       答:除以2取余,再逆序排列    日常 64 32 16 8 4 2 1

3. 位,字节,字符的概念及计数范围?

       位  :计算机的基本存储单位,一个位代表一个二进制数位。

              计数范围:0-1

       字节:8个连续的二进制数位,即为一个字节。

              计数范围:-127-128

       字符:Java中以单引号包围的一个符号。

              计数范围:0-65535之间的编码

4. 标识符的作用是什么?

       Java中的标识符主要是用来给类、方法、变量命名。

5. 这个标识符合法吗? aaa@bbb = 3;

       答:不合法,因为不符合Java标识符规范。规范如下:

    1) 只能由数字、字母、下划线(_)和美元符号($)组成。

              2)不可以以数字开头。

              3)不可以是Java的关键字和保留字。

              4)最好做到见名知意,遵循驼峰原则。

              5)类,接口的命名应该首字母大写,遵循驼峰原则。

              6)方法,变量的命名应该首字母小写,遵循驼峰原则。

              7)常量的命名,应该全部大写,不同单词之间以下划线隔开。

6. Java中的标识符能不能以汉字开头?为什么?

       答: 可以,因为Java采用Unicode字符集,其中汉字属于字母。

7. Java中有没有goto语句,有没有goto关键字?

       答:Java中没有goto语句,采用带标签的break和continue语句来代替goto语句。

              Java中没有goto关键字,但是将其作为保留字。

8. byte,short,int,long类型分别占用几个字节?表数范围是多少?

       答:类型       字节大小       表 数 范 围

              byte           1              -127—128

              short         2              -32767—32768

              int             4           -(2e31 -1)—2e31

              long          8              -(2e63 -1)—2e63

9. 整数常量的默认类型是什么?

       答:整数常量的默认类型是int类型。

10. float和double分别占用几个字节?

       答:float占用4个字节,double占用8个字节。

11. 如何用科学计数法表示3.14?

       答:314E-2       

12. 浮点常数的默认类型是什么?

       答:浮点数常数的默认类型是double类型。

13. 如下写法中不对的是?

       A.    byte b = 30;

  B.    byte c = 500;

  C.    long d = 2343223;

  D.    float f = 3.14;

  答:BD。byte类型可直接赋值-127-128之间的整数常量,浮点常量默认是double类型的,不可以直接赋值给float类型的变量,会丢失精度,应改为3.14F。

14. 浮点数可以用于比较吗?下面可能打印的结果是?

  答:浮点数可用于比较,上诉代码打印的结果为f1 == f2,因为浮点数在计算机内部表示为科学计算法,f1表示为4.2342342E8,f2也表示为4.2342342E8,故二者相等。

float f1 = 423423423f;
float f2 = f1 + 1;
if(f1 == f2) {
    System.out.println(“f1 == f2”);
} else {
    System.out.println(“f1 != f2”);
}       

15. 字符变量在内存中占用几个字节?这样表示对不对? char ch = “d”; 

  答:字符型变量占用2个字节,表示的形式不对,字符应该用单引号包含char ch = ‘d’;

16. 布尔类型占用一个字节还是一位?

  答:boolean类型所占用的空间没有明确指出,由jvm分配,默认为false。

17. 这种写法好不好?if(b == true)

       答:不好,因为当b == true时,直接if(b)即可,这样写多此一举,且耗费资源。

18. 常量的声明使用了哪个关键字?

       答:final关键字

19. 常量的命名规范是什么?

       答:常量命名一般为全大写,单词之间以下划线隔开。

20. 解释一下,什么是驼峰原则?

       答:驼峰原则,即命名标识符时每个单词首字母大写,象驼峰一样。类似userName。

21. 使用Scanner接受键盘输入,是否一定要加 import java.util.* ?

  答:否,可以使用java.util.Scanner sc = new java.util.Scanner(System.in);来完成Scanner对象的创建。

22. 类的命名规范是什么?方法名,变量名的命名规范是否一致?常量的命名规则是什么?

       答:1)类的命名:每个单词的首字母均大写。

              2)方法名和变量名的命名规范相同:首字母小写,剩下的每个单词的首字母大写。

              3)常量的命名规范:全大写,单词之间以下划线隔开。

23. 引用类型占几个字节?

       答:引用数据类型占据4个字节,用于存放对象的地址。

24. 算术运算中类型提升是怎么回事?a+b返回的是什么类型?int a = 3; long b= 4L;

       答:当进行算术运算时,2个操作数类型不同,小的类型向大的类型自动转换。

       a+b返回的是long类型。

25. i++ 和 ++i 两者有何异同之处?

  答:i++是先将i的值进行算术运算,再自增1,++i是先自增1,再将i的值进行算术运算。

26. 关系运算符,能不能这么写?“1<a<3”

       答:不能,一次只能进行一次比较,应该写成: 1<a && a>3 。

27. 逻辑运算符 | & ^ !的含义及运算规则?

       答:1)| 只要遇到true就直接返回true。

              2)&只要遇到false就直接返回false。

              3)^ 两个操作数相同返回false,不同返回true。

              4)! 操作数为true返回false,操作数为true返回false。

28. || 和 | 的异同之处?

       答:|| 是短路或,遇到true就不会执行后面的操作。

    |是非短路或,不管如何执行完成整个操作。

29. 5*4 最快的运算方式?

       答:位运算 :5<<2 。

30. 这两个表达式返回的分别是什么?(1<3 ? “a”:”b”)+3+4 、x=-2; x>0 ? 1: (x==0 ? 0 : -1)

       答:第一个为 “a34”,第二个为 -1

31. 什么情况下,加号会变成字符串的拼接符?

       答:当加号两边的操作数有一个是字符串时。

32. 4&5,4|5的结果分别是多少?4&&5这个操作可行吗?为什么?

  答:4&5 => 4  4|5 => 5  ,4&&5这个操作不可行,因为&&是逻辑运算符,两边的操作数应该是结果为布尔类型的表达式。

33. int类型是否能自动转换为byte,short,char类型?是否有一定条件才能转换?

       答:不可以,可以使用强制转型的方式。在右操作数为整型常量,左操作数为byte,short, char类型的变量时,只要右操作数不超过左变量能表示的范围时,可以赋值。

34. long类型能否自动转换为int类型,long类型能否自动转换为float类型?

       答:1) long类型不可以自动转换为int类型,只能强制转换。

              2) long类型可以自动转换为float类型,但是会丢失精度。

35. 自动转换类型中,容量大和容量小指的是什么?

       答:容量大小指的是不同数据类型存储数据的范围。

36. 强制类型转换中,是否可能发生数据丢失?

       答:可能,例如浮点数转换为整数是,丢掉了小数部分。

37. 布尔类型能否自动转换为int类型,如果不能,请简述其理由?

       答:不能,因为boolean和int类型之间不匹配。

38. 下面两种写法,哪种比较好?A.70L*60*24*365*70*20  B . 70*60*24*365*70*20L

  答:A,因为前面的计算过程中可能已经超过int类型所能表述的范围了。

猜你喜欢

转载自www.cnblogs.com/wlzg/p/10713950.html
今日推荐