- Scanner(java.util.Scanner) nextInt() nextLine()
- 单独else后面 是没有表达式的
- 三元都可以用if改,if不一定能用三元改(if是赋值时可用三元,是输出语句的时候就不能用三元)
- 当if语句控制的操作是一个输出语句的时候就不能用三元(因为三元运算符控制的是一个运算。操作完毕后就应该有一个结果,而不是一个输出)
- If()else if()…….else 首先判断if表达式是true还是false是true就执行语句一,是false就执行语句二(依次进行,并不并列,只能一个)
- Switch后面的表达式是有限的,byte,short,int char(枚举 1.5) String(1.7)
- Case:后面跟的是要和表达式进行比较的值。Case后面的值只能是常量,不能是变量。
- Default的作用是对不正确的情况给出提示(所以不建议省略),可以在任意位置,(建议在最后),不管default在什么位置,都是先走case,再走default.
- Case穿透(专业叫法)
- Switch运行结束:一是遇到break;二是运行到末尾。
- For(初始化语句;判断条件;控制语句){循环体} 循环体语句在控制语句之前执行
- 加了分号(for后面)就是表示有一个空语句,其余{}就成了一个代码块.
- 定义在循环中的变量只有在所在的大括号内有效
- 一个数值每一位数字的获取就是原数除以10的位次方在%十。例子十位x/10%10.百位x/100%10
- 变量及早的从内存中消失,可以提高内存的使用效率。所以能定义局部变量就不要定义成全局变量
- Do…while循环至少执行一次循环体,而另外两种循环必须先判断条件是否成立,然后决定是否执行循环体语句
- 两种死循环:while(true) for(;;){}
- 外循环控制行数,内循环控制列数
- ‘\x’ 表示转义‘\t‘表示table ‘\r’回车’\n’换行
- Break中断当前循环,并不是所有程序(单层循环)
- 要想退出多层循环,就比须使用标签。 标签的格式: 标签名:语句
- Return的常用功能是结束一个方法,跳到上层调用的方法。
- 实际参数:就是实际参与运算的。形式参数:就是方法定义上的,用于接收实际参数
- 方法不调用不执行,主方法是由java虚拟机调用的。
- 方法中的参数在使用时不要再定义了(限于在该方法中)。
- 方法与方法是平级关系,不能嵌套定义。
- 方法调用的时候不用再传递数据类型。
- 如果方法有明确的返回值,一定要有return带回一个值。
- 方法重载:在同一个类中,方法名相同,参数列表不同(参数个数不同,参数类型不同)与返回值类型无关。
- Int[]a 定义一个int类型的数组a变量 int a[]:定义一个int类型的a数组变量。(c#只能用前者,java两种都可以);不管是什么推荐使用第一种,因为第一种才是主流。
- 数组的初始化:动态初始化(只是指定长度,由系统给出初始化值)静态初始化(给出初始化值,由系统决定长度);
- 数组动态初始化的格式:数据类型[] 数组名=new 数据类型【数组长度】;
- 栈中存放的是局部变量(局部变量:在方法定义中或者方法声明上的变量都称为局部变量)堆中:——》(存放的是所有new出来的东西)
- 数组的长度数组名加点length(小写) Arrays.sort()排序。
- 堆内存的特点:每一个new出来的东西都有地址值。每个变量都有默认值。使用完毕后就变成了垃圾,但是并没有立即回收,会在垃圾回收器空闲的时候回收。
- 栈内存的数据使用玩就释放掉。
- 堆内存的两个引用指向同一个堆内存空间,无论是它们谁的操作,都是针对同一个地方。
- 数组的静态初始化格式:数据类型【】 数组名=new 数据类型【】{元素1,元素2……..}.简化格式:数据类型【】 数组名={};
- 数组静态与动态初始化每次只能有一个,不能重合。
- ArrayIndexOutOfBoundsException:数组索引越界 原因:访问了不存在的索引。-------->待续
posted on
2016-03-31 14:20
doAction
阅读(
843)
评论()
编辑
收藏
举报