黑马程序员技术交流社区
标题:
[哈尔滨校区]语言基础问题总汇(上)
[打印本页]
作者:
15846574191
时间:
2015-12-6 20:03
标题:
[哈尔滨校区]语言基础问题总汇(上)
适合基础差的同学将前五天所有问题捋一遍
1,System.out.print();和System.out.println();的区别是什么?
前者打印输出后不换行,后者打印输出后换行
2,JVM能跨平台吗,它有什么作用?
不能跨平台,可以保证Java系统跨平台
3,标识符的命名规则注意事项?
包:全部小写,一般用企业域名反写,不写WWW,多级包之间用.隔开
类或者接口:所有单词首字母大写,其他字母小写
变量或者方法:一个单词时全部小写,多个单词时从第二个单词首字母开始大写
常量:全部大写,不同单词间用_隔开
4,什么是保留字?
现在还不是关键字,但在以后JDK升级可能成为关键字,例如goto,const
5,JDK和JRE的区别:
JDK:Java开发工具包,包含Java开发工具包和JRE
JRE:Java运行环境,包含在运行Java程序所需要的核心类库和JVM
JVM:Java虚拟机,用来保证Java程序跨平台
6,什么是变量?变量的定义格式?要使用变量需要注意什么?
变量是在程序运行过程中,其值可以在一定范围内改变
两种定义格式:1数据类型 变量名=数值
2数据类型 变量名;
变量名=数值
注意1同一大括号内相同变量名不能重复定义
2局部变量使用前必须初始化(定义,赋值)
3可以同时定义多个同类型变量
7数据类型注意事项?
1、整型默认的是int类型,浮点型默认的是double类型。
2、如果定义long类型的变量,在变量值后边加L或者(小写L)。
如果定义float类型的变量,在变量值后边加F或者(f)。
8,Java中的数据类型分几类?基本数据类型有哪些?
两类1基本数据类型2引用数据类型
基本数据类型分为四类八种:整数型(byte short int long),浮点型(float double),布尔类型(boolean),字符型(char)
9,boolean类型占几个字节?
一个字节,理论上来讲,八分之一个字节就够了,因为他只有两个数值(true,false),但计算机最底层储存单位是字节,所以当做一个字节来算
10,为什么long的范围比float的范围小?
因为底层存储结构不同
11,数据类型转换:
隐式转换:把描述范围小的变量赋值给描述范围大的变量,格式与定义变量格式一样
强制转换:把描述范围大的变量赋值给描述范围小的变量,格式(转换后的数据类型)要转换的值或者变量名
12,byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
第一个, 第一b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
第二byte类型的变量在进行运算的时候,会自动类型提升为int类型
第二个不会编译失败,3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
13,byte by = 130;有没有问题?有问题如何解决?结果是多少呢?如何计算结果?
会超过byte所描述范围,强制转换为byte类型或者将类型提升为int类型
先算出130的二进制补码为00000000 00000000 00000000 10000010,
因为byte所描述范围只有一个字节,截取130的二进制补码一个字节为10000010
然后算出反码为10000001,最后算出原码11111110并转换为十进制为-126
14,byte b = 10;
b++;
b = b + 1;
哪句是编译失败的呢?为什么呢?
第三个,1为默认的int类型,b需要提升为int类型后进行运算,运算后类型为int而b为byte类型,大的数据类型不能赋值给小的,会损失精度
15,a,A,0的ASCII码值?
'a' 97 'A'65 '0'48
16,+运算符的作用有哪些?
表示正数,字符串连接符号,表示加法
17,除法和取余的注意事项?
整数间相除结果是整数,如果想得到小数,任意数转换成浮点型即可
取余得到的结果只跟左边的数据符号有关
18,++和--的使用规则?
单独使用,前后没区别。参与运算时符号在前面,先自增(自减)在参与运算,符号在后面,先参与运算再自增(自减)
19, int x = 4;
int y = (x++) + (++x) + (x*10) 求y值?
y = 4 + 6 + (6*10)= 70
x的值的变化:5 6 6
20,扩展的赋值运算符有什么,并有什么特点?
有+=,-=,*=,/=,%=
符号左右两边的值运算后赋值给左边,并且包含了强制转换
21 &和&&的区别是什么?|和||的区别是什么?
&是逻辑与,不论前面是true还是false,后面都执行
&&是短路与,如果前面是flase后面不执行
|是逻辑或,不论前面是true还是false,后面都执行
||是短路或,如果前面是true后面不执行
22,位运算符^的特点是什么?
相同为0不同为1,一个数据异或另一个数据两次,结果还是这个数据
23,怎么交换两个int类型的值(int a = 1,int b =2)
第一种:采用第三方变量。(开发中常用)
int temp = a;
a = b;
b = temp;
第二种:可以采用+法运算。
a = a + b;
b = a - b;
a = a - b;
第三种:采用位运算符。
a = a ^ b;
b = a ^ b;
a = a ^ b;
24,2*8和2*12的高效运算是什么?
2*8=2<<3 , 2*12=2<<2+2<<3
25,用三元运算符获取三个数a,b,c中最大值
a>b?(a>c?a:c):(b>c?b:c);
26,if的第二种格式(if else)和三元表达式有什么区别?
能用三元运算符解决的问题,都可以用if来做,反之不成立。
27,if语句的注意事项
1条件表达式的结果只能是boolean类型
2如果if控制的是一句,可以省略大括号,反之不能
3一般左大括号和;不能共存
28, int x = 1,y = 1;
if(x++==2 & ++y==2){
x =7;
}
System.out.println("x="+x+",y="+y);
结果为多少?
x=2,y=2
29, int x = 1,y = 1;
if(x++==1 || ++y==1){
x =7;
}
System.out.println("x="+x+",y="+y);
结果为多少?
结果x=7,y=2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2