首页 > 代码库 > 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有边是堆,堆默认对值进行初始化,会有自己的起始地址,栈中的变量会引用这个地址找到堆中的存储区。