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类型所能表述的范围了。