您的位置:首页 > 编程语言 > Java开发

Java初学笔记

2016-02-01 23:44 302 查看
1、交换两个变量的值:【常用方法1/3,func2可能存在溢出的风险】

class Demo
{

public static void main(String[] args)
{

int n=3, m=8;
System.out.println("n="+n+"m="+m);

/*---------fun1-------*/
int tmp ;
tmp = n ;
n = m ;
m = tmp ;
System.out.println("n="+n+"  m="+m);

/*---------fun2-------*/
n = n + m ;
m = n - m ;
n = n - m ;
System.out.println("n="+n+"  m="+m);

/*---------fun3-------*/
n = n^m;
m = n^m;  //(n^m)^m =原n --> m , 现在m中存的原n的值
n = n^m;  //(n^m) ^ (n^m^m) =原m -->n, 现在n中存的是原m的值
System.out.println("n="+n+"  m="+m);

/*常用fun1/fun3 , 不会存在溢出的问题*/

}

}


2、swich语句中,default 和 case的书写顺序不固定,执行顺序是固定的。

程序跳出swich语句的条件是:遇到 break 或 遇到 }

如果default书写在case语句之前,并且后面没有跟break。-->若执行default语句,则,执行执行后面所以可以执行的语句,遇到break或 } 跳出swich语句段;此时不再判断default后面的case语句。

break 和 continue 只能用于循环语句才有效:

break : 跳出当前循环。

continue : 跳出本次循环。

3、无线循环最简单的表现形式:

/*无线循环最简单的表现形式*/
for(;;){}

while(true){}


4、标号 使用的小技巧:

/**
有循环嵌套时,可以通过设置:标号
配合break语句,在不同的条件下,跳出不同层次的循环。
*/
class LabelDemo
{
public static void main(String[] args)
{

w:for(int x=0; x<3; x++)
{
q:for(int y=0; y<4; y++)
{
System.out.println("x="+x+" y="+y);

if(x == 1)
break q; //跳出标号 q 对应的循环

if(x == 2)
break w;  //跳出标号 w 对应的循环
}

}

}

}


5、函数:

修饰符 返回值类型函数名(参数类型1 参数1,参数类型2 参数2,......)

{

执行语句;

return 返回值;

}

6、函数重载:

同一个类中函数名相同参数个数或参数类型不同,与返回值类型无关。

好处:方便阅读,优化程序设计。

7、java中的数组:

/*
数组:

元素类型[] 数组名 = new 元素类型[元素个数或数组长度]

x的类型为:数组类型 , 而不是int型

*/
int[] x = new int[3]
/*-数组的3中初始化方法-这3中方法都会在堆空间中开辟空间,存放实体-*/
/*-------------*/
int[] arr1 = new int[]{1,2,3,4};
/*-------------*/
int[] arr2 = {1,2,3,4};
/*-------------*/
int[] arr3 = new int[4];
arr3[1] = 1;
arr3[2] = 2;
/*-- 获取数组的长度 --*/
System.out.println("arr1 length"+arr1.length);


8、内存空间:【栈】【堆】

栈:里面存放的都是局部变量。

栈内存中,为每一个函数方法开辟了一个栈内存空间,用于临时存放方法中定义的局部变量、引用对象,使用结束后会被释放。

堆:里面存放的是
实体 和 全局变量。

堆空间中的每一个实体都会对应有一个地址值,该地址值一般会赋值给内存中的变量,便于对堆空间中的实体进行引用。

堆内存中的实体值,都有默认初始化值,比如 0。

例:int[] x = new int[3];

new int[3] : 堆内存中会开辟空间 存放该创建的实体,开辟出来的该空间会对应一个内存地址值,该地址值赋值给了 栈空间中的引用对象 x 。

x : 为引用对象,类型为数组类型,存放在栈内存空间中,指向堆空间中的实体;

给引用对象赋值为null可以断开与堆内存中实体的关系,此时,若堆内存中该实体 不被任何引用对象引用了 的话,便成了垃圾,一段时间后,Java虚拟机会不定时的运行垃圾回收机制 进行清理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: