java 栈 int_java开始学习,数据类型和堆栈

一篇简单的文章作为自己转型的开始,以后由嵌入式开发转向安卓app开发

javaee企业版

javase 标准板,做桌面应用程序

javame小型版,针对小产品,比如手机(这个已经不用了,现在用的是安卓)

java输出

System.out.print(a);

print只是输出‘字符’和“字符串”和 变量

print(‘a‘+1) 变为输出 98 ‘a‘的ASCII为97。print(’你‘+1);因为汉字也是存放表中

java不同数据类型运算注意事项

java数据类型分为byte 1个字节 short 两个字节 int 4个字节 long 8个字节  float 4个字节 double 8个字节 char两个字节

byte b = 4;  //将int型 4对比是否符合前面数据类型的范围,符合则自动转换为byte型

b = 4 +6;  // 这里也是将int型 先比较计算结果是否超过变量范围,没超自动转换为byte类型,超了报错

byte b1 = 3;

byte b2 = 4;

b = b1 +b2;  //这个会报错,丢失精度,因为b1和b2为变量,没法确定计算结果是否会超过本身范围

同理如果上面改为

b = b1 + 10;   //也是报错,因为b1是变量,值不确定,加上数会超范围

同理改为

b = b1 - 3;     //也是报错因为 byte减int没法进行

同理

int b = 10;

byte c = 9;

b = b - c ;   //ok

c = b - c;   //报错。因为可能相减的值仍会比byte范围大。

int x;

x = b1 + b2;   //可以。因为int型范围大于byte,byte的计算结果不会超出int型的范围。

int x1 = Integer.VALUE;

int x2 = 2;

x = x1 + x2;    //这个虽然运算结果会超过范围,但是编译时不会报错,因为同类型,运算结果超出时结果是负数。

java字符串连接作用

print("a" + 3);

输出a3

int a = 4;

int b = 5;

pirnt(a+b);   //得到9,没有到字符串连接,就是进行计算

print("a" + a + b);  //得到a45

print("a" + 4 + 5);  //得到a45

如果想要进行运算就加括号,括号保证了运行顺序,先进行加法运算,后进行字符连接。

print("a" + (4 + 5) );  //结果为 a9

堆栈 数组简介

栈,函数中的局部变量;变量所属区域运行完成,自动释放;

堆:new出来的数组和方法;内存垃圾自动回收,不用程序员释放;

public static void main ()

{

int[] arr = new int[3];

System.out.print(arr);   //得到 [[email protected]  ;这是arr地址

System.out.print(arr[0]);  //输出arr数组第一个元素

arr = null;   //arr指向空,断开连接堆连接,释放了堆内存

}

程序运行过程:将main函数压栈导入内存,然后运行到arr压栈,arr有边是堆,堆默认对值进行初始化,会有自己的起始地址,栈中的变量会引用这个地址找到堆中的存储区。

045f70c15fade43531e891194ce981cc.png

原文:http://my.oschina.net/u/274829/blog/293670

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值