引用数据类型:类,接口,数组,枚举(Enum)
类:自定义类,类库中的类String,StringBuffer,Integer......
类库中的类:有Sun公司定义好的,直接可以拿来用的,按照规范使用即可
引用数据类型的使用 ----- 类 类库中的类
引用数据类型 变量名 = new 引用数据类型([参数]);
eg:Scanner scanner = new Scanner(System.in);
注意:a、new :关键字是给变量分配内存空间
b、变量名就可以调用该类中的属性和方法
语法:*** 变量名.方法();
变量名.属性名
2-1.Scanner 类:从键盘上输入任意数据类型
使用规范:a. 导包:import Java.包名.变量名(位置:在class的上面,package的下面)
b. 生成变量名
c. 调用该类方法
随机数类 Random ——类库中的类:该类用于生成伪随机数的流
流程控制语句
4-1. 单分支结构
if(条件){
//代码块
}
4-2. 双分支结构
if(条件){
//代码块1
}else{
//代码块2
}
4-3. 多分支结构
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else if(条件3){
//代码块3
}else if(条件N){
//代码块N
}
注:条件值一定是Boolean (true/false)
if...else 和 ? :
5-1.两者之间对于返回值有不同的要求。三元运算符是必须要有返回值,其运算后一定有一个返回值返回给开发人员使用,而if...else 不一定有返回值,其执行结果可能是赋值语句或输出语句。
5-2. 两者的性能不同,三元元运算符(? :)性能高于if...else
5-3. 两者的性能不同,在ireport的一些动态执行的情况下,只能用三元运算符而不能用if...else,当然在大多数情况下两者是可以等价互换的
5-4. 两者的语言特性不同,三元运算符涉及到一种双目运算符提升的特性,所谓双目数值提升,在双目运算符Java的开发环境下可以简单的理解为类型转换的问题
(1).如果定义了数据类型的变量和未定义数据类型的变量参与双目运算符的后双目运算,那么返回的结果就是范围大(精度高)的类型。(2).如果两个定义了数据类型的变量参与双目运算符的后双目运算,那么返回的结果就是范围大(精度高)的类型。(3).如果直接进行数值的比较,则自动转型为范围大(精度高)的类型。
A.从类型转换上看 因为三目运算符在做判断的时候需要考虑到类型转换的问题,同时在一定的情况下显得不 是那么灵活。而if else 不需要考虑类型转换,也相对于三目运算符较为简单灵活。所以 if else 效率高一点。
B.从总体上看 a:需要考虑到循环自身所占用的时间。 b:需要考虑到赋值以及循环内的其他运算符所占用的时间。所以 三目运算符效率高一点.
switch...case...default
没有匹配的执行 default:
***遇到break就跳出多分支结构 ***标号不可以重复 ***标号是无序的 ***多个标号可以共享同一个语句块
@ java基础之if else和switch case效率对比
1.switch用来根据一个整型值进行多路分支,并且编译器可以对多路分支进行优化
2.switch-case只将表达式计算一次,然后将表达式的值与每个case的值比较,进而选择执行哪一个case的语句块
3.if..else 的判断条件范围较广,每条语句基本上独立的,每次判断时都要条件加载一次。所以在多路分支时用,switch比if..else if .. else结构要效率高。