java知识点(2)

基本数据类型

基本数据类型占的字节

数据类型 字节数 bit(位) 可存储数据的个数
byte 1 8 2^8=256
short 2 16 2^16
int 4 32 2^32
long 8 64 2^64
float 4 32 2^32
double 8 64 2^64
boolean 1(或4) 8(或32) 2^8(或2^32)

2.布尔类型:用boolean声明一个变量时,该变量的内存占用1或4个字节。当声明的是一个基本类型的变量时,该变量占四个字节;声明一个数组类型时,数组中每个元素占一个字节。

3.(1)若一整数没有添加任何标识,则默认为int型。若表示long型,可在数据后面加上L或l。eg:long money=10000000000000000L;
(2)若一浮点数没有添加任何标识,则默认为double型。若表示float型,可在数据后面加上f或F。eg:float money=5.20f;

4.数据类型转换细节
(1)凡是byte,short,char数据类型数据运算时,会自动转换成int型数据再运算。

//例1:
byte num1=1;
byte num2=2;
byte sum=num1+num2;//此句会报错,因为(num1+num2)的结果是int型。正确写法:byte sum=(byte)(num1+num2);

//例2:
System.out.println('a'+1);        //结果是:98

(2)两个不同的数据类型运算时,结果取决于大的数据类型。

int num=10;
long num1=20;
num=num+num1;   //报错。因为num是int型,(num+num1)是long型。解决办法:强制类型转换  num=(int)(num+num1);

交换两个变量的值的三种方法

法一:引用第三方变量

int a=3;
int b=5;
int temp=a;
a=b;          //a=5
b=temp;    //b=3

法二:加减法(不允许使用第三方变量时)

int a=3;
int b=5;
a=a+b;
b=a-b;
a=a-b;
//缺点:两个int类型的数相加,有可能超出int的范围。

法三:使用异或(不允许使用第三方变量时)

int a=3;
int b=5;

a=a^b;  //a=3^5
b=a^b;  //b=(3^5)^5=3
a=a^b;  //a=(3^5)^3=5
//缺点:逻辑不清晰

栈内存和堆内存

1.栈内存的特点:存储的都是局部变量,变量一旦出了自己的作用域马上会从内存中消失,释放内存空间。

2.堆内存的特点:存储的都是局部变量,变量一旦被使用完,并不会从内存中消失,而是等待垃圾回收器不定时把垃圾对象回收,这时候该对象才会消失。(垃圾回收器是一段能释放内存的程序)

3.凡是以关键字创建的对象,java虚拟机都会在堆内存中开辟一片新的内存空间,创建一个新的对象。

局部变量和成员变量

1.局部变量:在一个方法内部定义的变量。

2.成员变量:在方法外,类之内定义的变量。

二维数组

1.定义二维数组:
数据类型[][] 变量名=new 数据类型[长度1][长度2];

2.二维数组长度:

int[][] arr=new int[3][5];
System.out.println(arr.length);                     //arr.length=3
System.out.println(arr[1].length);                 //arr[1].length=5

3.遍历二维数组

for(int i=0;ifor(int j=0;jout.println(arr[i][j]+",");
      }
      System.out.println();//换行
}

你可能感兴趣的:(基本数据类型,二维数组,栈内存,堆内存,交换两个数值的方法,java笔记)