Java语言基础
1
int a=3,b;
b=a++ 问:这里的b的值为多少? 这里b的值为3,当a进行自增运算时,会给a一片空间存入a=3,然后使a进行自增,自增后的值赋给变量a原来的区域,而最后赋值得过程中是之前a的预存值a=3。
b=++a 同问?这里的值为4 这里取得是a自增运算完之后的值
int i=3;
i=i++; 这里i的值同样为3
2
标准逻辑运算符与条件逻辑运算符的区别?
对于标准逻辑运算符,需要对所有子表达式求值之后,才能得到结果值,而对于条件逻辑运算符,对其左操作求值后,如果能确定其结果,就不对右操作数进行求值
3
一个数异或一个数两次结果还是这个数
4
short s=3 ; //这里其实发生了强制转换,把整型3的值强制转换为short
s+=4; // 编译可以通过这里发生强制转换,把整型4 转换为short类型
s=s+4; //这里编译不通过 因为可能会损失精度
byte b=4;
byte b1=3
byte b2=7;
b=b1+b2; //这里编译不通过 因为b1 b2 为变量无法判断大小,所以同样可能会丢失精度
5
类型转换时,以占用内存较大类型为主进行转换
6 赋值发生时,必须将赋值运算符右边的表达式的值强制转换为左边变量的类型
7 if 语句中的一个小知识
public class Test1 {
public static void main(String[] args) {
int x=2;
if(x++>1)// x先进行一次运算
System.out.println(x); //输出3
}
}
函数:
明确一:函数的结果是什么?
明确二:这个功能的实现过程中是否需要未知的元素参与运算?
返回值类型与参数类型无直接关系
内存的划分:
1 寄存器
2 本地方法区
3 方法区
4 栈内存
存储的是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放
5 堆内存
存储是数组和对象,凡是new建立在堆中
特点:
1 每一个实体都有首地址值
2 堆内存的每一个变量都有默认初始化值 int 0,float 0.0 double 0.0f boolean false char "u\0000"
3 垃圾回收机制