第二章:java编程基础
1.java的包,类,方法,参数和变量的名字,可由大小写字母,数字,下划线(_)和$符号组成,但标识符不能以数字开头,不能是java中的保留关键字。
(之所以笨小葱在这里写下这个内容,主要是实际开发中我都是以字母来表示标识符的,所以有一次笔试中,突然考到这个知识点,记不太清了。当时主要是不确定是否能以$,_开头)
QA: 下面哪些标识符合法的:
A.indentifier B.user_name C._user D.$AB2 E._2$ F._2234 G. 92.5 H.hello world I.class
2.java中的常量规则,以十进制表示时,第一位不能是0;以十六进制表示时,需以0x,或0X开头;以八进制表示时必须以0开头;长整型必须以L做结尾;float类型后面要加上f(F)。java中的字符占用两个字节,使用Unicode码表示的
QA:下面那些整型常量是不正确的?
A.0x8a B.0X8a C.0x12efg
(十六进制没有g)
D.0X9A
E.123
F.019(若是十进制不能以0开头,若是八进制没有9
)
G.5.022e+23f H..4f
I. 0f
J. 2e3f
QA:
java中char能否存储1个汉字?(这里笨小葱答错了,我记得c中char是1个字节,不能存储汉字。)
89:
java中的字符占用两个字节,16位,使用Unicode码表示的.而unicode码存储了汉字,所以可以表示汉字,占2个字节,但是表示字母也只能存储一个。
3.关于类型的自动提升,java定义了若干规则:
第一,所有的byte,short,char的值将被提升到int
第二,如果一个操作是long,结果就是long
第三,如果一个操作是float,结果就是float
第四,如果一个操作是double,结果就是double
QA:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
89:
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型) 编译报错
short s1 = 1; s1 += 1;(可以正确编译) 这里+=会自动强制转换为s1的类型相当于等于:s1=(s1.type)s1+1;
4.函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要他们的参数个数或类型不同即可。(不需要关注函数返回类型)
5.关于如何解决留言板分页问题,和走马灯问题。
QA: 一共有x个学员,每个房间住6人,一个公式计算一下房间数?
89:(
x+5)/6 若x是总共的留言数,6是每页显示的留言数,结果就是总共多少页 (如果学员和房间都有编号的话,这里的结果也可以表示第x号学生,住在第几号房间里)
QA:假设你要让x的值在0至9之间循环变化,写出代码。
89: int x=-1;
while(true)
{
x=(x+1)%10;
}
QA: 如何用程序求2的x次方问题
(移位不会改变变量本身的值,如a>>1.在单独一行中含无意义)
89:y=1<<x;
6.switch语句判断条件可以接受int,byte,char,short型,不可以接受其他类型
7.数组申明时不能制定长度,如:int a[5]; 编译报错
正确声明定义如下:int [] a=new int[5];
int [] a=new int[]{1,2,3,4,5};
int [] a={1,2,3,4,5};
多维数组的声明: int [][] a;
a=new int[3][];
或者 int [][] a=new int[3][2];
同样不能再申明时出现 int [3][2] a=new int [3][2];