总结
a.八大基本数据类型和对应的内存空间
八大基本数据类型:
数据类型 | 内存空间 |
byte | 1字节 -2^7~2^7-1 |
short | 2字节 -2^15~2^15-1 |
int | 4字节 -2^31~2^31-1 |
long | 8字节 -2^63~2^63-1 |
float | 4字节 -3.4 x 10^38^ ~ 3.4 x 10^38^ |
double | 8字节 -1.7 x 10^308^ ~ 1.7 x 10^308^ |
char | 2字节 0 ~ 2^16^ - 1 |
boolean | 1位 true,false |
b.什么是自动类型转换和强制类型转换?
自动类型转换由小范围数据类型直接转换为大范围数据类型,
列:int a = 1000;
long b = a;(int直接转换为long类型)
强制类型转换是大范围数据类型转换为小范围数据类型,转换过程需确保转换后不会溢出(即转换前的数据大小不能超过定义的类型大小范围),否则数据可能丢失
c.什么是自动类型的提升?
自动类型提升:一个表达式中出现多种不同数据类型的时候,会出现类型提升,算术表达式结果的数据类型就是这些数据类型中最大的那个类型
当容量小(不是字节大小)的数据和容量大的数据进行运算时(+ - * / % =),自动把结果提升为容量大的数据类型
d.变量的作用是什么?使用变量需要注意哪些?
何为变量,变量就是可以改变的量,即在内存中开辟一个空间用来存放某一个类型的数据,变量定义后需要初始化,变量可以方便我们存数据和取数据,方便进行修改.
注意事项:需要初始化,赋值类型要和声明类型保持一致,作用域为当前花括号内
e.前置++和后置++的区别?
前置++:先自增1,再参与代码运算
后置++:先参与代码运算,再自增1
f. short s = 1; s = s + 1;和s+=1的区别?
s = s+ 1:报错! 因为s是一个short类型的数据,1是一个int类型的数据,需要强转
s+=1:在底层自动强转,不报错
g.=和==的区别
=是赋值
==是判断两数字是否相等,返回一个布尔类型的值,可用于流程控制语句进行判断
h.三元运算符使用过程中,需要注意的语法?
三元运算符: 数据类型 = boolean表达式 ? 结果1 : 结果2
三元表达式通过判断Boolean表达式返回的结果来选择将结果1或者是结果2赋值给式首声明的变量,若Boolean表达式返回为true,则返回结果1,否则返回结果2
i.与(&) 短路与(&&) 或(|) 短路或(||)的区别?
以上符号均用于连接两个或多个布尔表达式,
&, &&:两真即真,即& , &&左右的布尔表达式都为true
| , || :一真即真,即| , ||左边或者右边只要有一个为ture,整个式子就为true
&,|:无论左边结果怎么样,都会执行右边的表达式
&&:左边结果为false,则整个式子都为false,整个式子右边不再执行(提高效率)
||: 左边布尔表达式为true,则整个式子都为true,表达式右边不再执行(提高效率)