首页 > 代码库 > java开始学习,数据类型和堆栈

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);   //得到 [I@1de17f4  ;这是arr地址

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

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

}

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