先++,后++,逻辑运算符,内存划分小知识

来源:互联网 发布:途宝飞鲸软卡 知乎 编辑:程序博客网 时间:2024/05/19 12:13

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

标准逻辑运算符与条件逻辑运算符的区别?

对于标准逻辑运算符,需要对所有子表达式求值之后,才能得到结果值,而对于条件逻辑运算符,对其左操作求值后,如果能确定其结果,就不对右操作数进行求值

3

一个数异或一个数两次结果还是这个数

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 为变量无法判断大小,所以同样可能会丢失精度

类型转换时,以占用内存较大类型为主进行转换

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 垃圾回收机制

0 0
原创粉丝点击