Java初学笔记
2016-02-01 23:44
302 查看
1、交换两个变量的值:【常用方法1/3,func2可能存在溢出的风险】
2、swich语句中,default 和 case的书写顺序不固定,执行顺序是固定的。
程序跳出swich语句的条件是:遇到 break 或 遇到 }。
如果default书写在case语句之前,并且后面没有跟break。-->若执行default语句,则,执行执行后面所以可以执行的语句,遇到break或 } 跳出swich语句段;此时不再判断default后面的case语句。
break 和 continue 只能用于循环语句才有效:
break : 跳出当前循环。
continue : 跳出本次循环。
3、无线循环最简单的表现形式:
4、标号 使用的小技巧:
5、函数:
修饰符 返回值类型函数名(参数类型1 参数1,参数类型2 参数2,......)
{
执行语句;
return 返回值;
}
6、函数重载:
在同一个类中,函数名相同,参数个数或参数类型不同,与返回值类型无关。
好处:方便阅读,优化程序设计。
7、java中的数组:
8、内存空间:【栈】【堆】
栈:里面存放的都是局部变量。
栈内存中,为每一个函数方法开辟了一个栈内存空间,用于临时存放方法中定义的局部变量、引用对象,使用结束后会被释放。
堆:里面存放的是
实体 和 全局变量。
堆空间中的每一个实体都会对应有一个地址值,该地址值一般会赋值给栈内存中的变量,便于对堆空间中的实体进行引用。
堆内存中的实体值,都有默认初始化值,比如 0。
例:int[] x = new int[3];
new int[3] : 堆内存中会开辟空间 存放该创建的实体,开辟出来的该空间会对应一个内存地址值,该地址值赋值给了 栈空间中的引用对象 x 。
x : 为引用对象,类型为数组类型,存放在栈内存空间中,指向堆空间中的实体;
给引用对象赋值为null可以断开与堆内存中实体的关系,此时,若堆内存中该实体 不被任何引用对象引用了 的话,便成了垃圾,一段时间后,Java虚拟机会不定时的运行垃圾回收机制 进行清理。
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虚拟机会不定时的运行垃圾回收机制 进行清理。
相关文章推荐
- java List集合类的用法
- JAVA中的几种设计模式
- JAVA中接口与抽象类的区别
- java常用数据类型
- MyEclipse添加ibatis DTD文件实现xml的自动提示功能
- Java NIO读书笔记2
- JAVA中的多态性
- 本地方法(JNI)——调用 java 方法
- Struts2-01-HelloWolrd
- Java Map简单使用
- 本地方法(JNI)——编码签名
- java中的内部类总结
- Java基础:数据类型(Data type)
- 字符串的比较 java
- 构建一个基于 Spring 的 RESTful Web Service
- Java 异步通信 程序
- Spring jdbcTemplate
- Java 阻塞的概念
- ADT Bundle 理解开发环境 & Eclipse工具使用技巧
- 从头认识Spring-1.13 注入properties与null