1:计算出十进制46对应的二进制,八进制,十六进制的值。
128 64 32 16 8 4 2 1
0 0 1 0 1 1 1 0
答:
二进制:101110 八进制:56 十六进制:2E
至于进制的内容今天在练习一次,以后就可以不用练习了。
后面能听懂就OK了。不用浪费太多时间。
(可用计算器验证你算的是否正确)
2:什么是变量?变量的定义格式?要使用变量需要注意什么?
答:
变量:在程序执行过程中,其值可以发生改变的量
格式:数据类型 变量名=变量值
注意事项:
A:同一区域不能使用相同的变量名
B:局部变量使用前必须赋值
3:Java中的数据类型分几类?基本数据类型有哪些?
答:
A:基本数据类型
byte 占用1个字节 -128-127
short 占用2个字节 -2^15-2^15-1
int 占用4个字节 -2^31-2^31-1
long 占用8个字节 -2^63-2^63-1
float 占用4个字节 -3.403E38~3.403E38
double 占用8个字节 -1.798E308~1.798E308
char '' 占用2个字节 0-65535
boolean 占用8分之一个字节
true
false
B:引用类型
4:数据类型转换:
答:
隐式转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会将取值范围小的数据类型自动转换为取值范围大的数据类型,在进行运算
强制转换:
(数据类型) 变量或者表达式或者值
注意:如果超出了被赋值数据类型的取值范围得到的结果会与想象的不同
面试题:
第一题:
byte b1=3,b2=4,b;
b=b1+b2; //
b=3+4; // b = 7;
哪句是编译失败的呢?为什么呢?
答:b=b1+b2编译失败,首先b1和b2都是变量,里面存储的值是变化的,在程序运行中JVM无法判断里面具体的值;
byte变量在运算的过程中会自动向上转型为int类型,所以编译失败
第二题:
答:
byte by = (byte)130;有没有问题?有问题如何解决?结果是多少呢?
有问题,byte的取值范围是-128至127,130超出其取值范围,
130换成二进制数为:1000 0010(为补码)
反码为:1000 0001
原码为:1111 1110 转化成二进制数为 -126
则结果为:-126
第三题:
byte b = 10;
b++;
b = b + 1;
哪句是编译失败的呢?为什么呢?
答:b=b+1编译失败,b是byte类型,与int类型数据运算会自动向上转型,所以编译失败
5:常见的算术运算符有哪些?
+运算符的作用有哪些?
答:
正号,字符串连接符号,算术运算符 sop(1 + 2 + "hello" + 3 + 4); 输出为:3hello34
除法和取余的区别?
答:
/获取的是除法操作的商,%获取的是除法操作的余数
++和--的使用规则?
答:
自加(++)自减(--)运算
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
a:单独使用:
放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
b:参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
6:常见的赋值运算符有哪些?
答:
有=、+=、-=、*=、/=
+=运算的作用是什么?
答:
+= 把左边和右边做加法,然后赋值给左边。
扩展的赋值运算符有什么特点?
答:
7:short s = 1; s = s + 1;有没有问题?如果有怎么解决?
答:
有问题,s是short类型,1是int类型,运算过程中会将结果自动转型为int类型,结果会损失精度
解决方法:改为s=(short)(s+1)
short s = 1; s += 1;有没有问题?如果有怎么解决?
答:
没有问题
8:常见的关系运算符有哪些?
答:
==,!=,>,>=,<,<=
关系运算符的结果有什么特点?
答:
无论你的操作是简单还是复杂,结果是boolean类型
9:练习打字(每天十分钟,即使休息的时候,也建议练习)
10:分析以下需求,并用代码实现:
(1)已知一个三位数,请分别获取该三位数上每一位的数值
(2)例如:123的个位、十位、百位,分别是3、2、1
(3)打印格式"数字123的个位是 3, 十位是 2, 百位是 1"
public class TestDemo2 {
public static void main(String[] args) {
// 需求:
/*分析以下需求,并用代码实现:
* (1)已知一个三位数,请分别获取该三位数上每一位的数值
* (2)例如:123的个位、十位、百位,分别是3、2、1
* (3)打印格式"数字123的个位是 3, 十位是 2, 百位是 1"*/
int x=123;
int ge=x%10;
int shi=(x/10)%10;
int bai=(x/10/10)%10;
System.out.println("ge="+ge+" "+"shi="+shi+" "+"bai="+bai);
}
}
|
|