目录
一、数据类型
1.Java的数据类型分类
Java语言的数据类型有两种,即基本数据类型和引用类型
2.基本数据类型初始值
1)每种具体类型都有不同的默认值;
2)当没有为一个属性变量赋值时,会根据类型为其赋值为默认值;
注意:char的默认值是\u0000,等同于一个空字符;boolean的默认值是false
3.基本数据类型转换
1)不同的基本数据类型之间可以进行转换。
2)从表示范围小的类型转换为表示范围大的类型,可以直接转换,称为隐式转换
3)从表示范围大的类型转换为表示范围小的类型,需要强制转换,称为显式转换
4)虽然类型之间可以进行强制的隐式转换,但是也需要有一定的前提;
数值类型和boolean类型之间就不能转换;强制也不可以;
5)不同类型的数据相加,返回数据的数据类型
byte a = 1;
short b = 2;
char c = 3;
int d=4;
float e=5;
double f=6;
long g=999999999;
//byte,short,char在运算时是自动转换为int型的,而int与long运算时自动转换为long型
//double>float>long>int>byte,short,char
System.out.println("byte+short+char:"+getType(a+b+c));
System.out.println("byte+short+char+int+float:"+getType(a+b+c+d+e));
System.out.println("float+double:"+getType(e+f));
System.out.println("int+long:"+getType(d+g));
System.out.println("float+long:"+getType(e+g));
System.out.println("double+long:"+getType(f+g));
}
public static String getType(Object o){
return o.getClass().toString(); //使用int类型的getClass()方法
}
运行结果:
byte+short+char:class java.lang.Integer
byte+short+char+int+float:class java.lang.Float
float+double:class java.lang.Double
int+long:class java.lang.Long
float+long:class java.lang.Float
double+long:class java.lang.Double
4.引用类型
1)除了8种基本数据类型,其他类型都是引用类型。
2)String属于引用类型
3)引用类型使用=赋值
二、方法
1)方法内部不可以再定义方法
2)main函数调用static方法(静态方法),可以直接采用类名.方法名的形式调用,在同一文件中也可以直接用方法名调用。
main函数调用非static方法(实例方法),需要创建对象,采用实例对象.方法名的形式调用。
1.可变参数
1)J2SE 1.5中提供了一种允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。
2)参数定义形式:
可变参数用...代替标识, ...位于变量类型和变量名之间,前后有无空格都可以
3)如果有多个参数,可变参数一定放在最后,并且一个方法只能有一个可变参数。
4)可变参数使用:
5)重载
注意:
三、流程控制
一、数组循环
1.for循环遍历
//定义一个数组
int[] a={1,2,3,4,5,6};
//使用for循环遍历
for (int i = 0; i < 6; i++) {
System.out.print(a[i]+",");
}
2.增强for循环遍历
增强for循环语法:
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}
//使用增强for循环遍历
for(int i:a){
System.out.print(i+"<");
}
二、条件分支
1. if..else
运算符 | 表达式 | 说明 | 执行 |
&& | 条件1 && 条件2 | 仅仅两个条件同时为真,结果为真 | 条件1为假,条件2不执行 |
| | | 条件1 | | 条件2 | 只要两个条件有一个为真,结果为真 | 条件1为真,条件2不执行 |
int m=0,n=0;
if(m++>0&&n++>0);
System.out.println("第一次运行结果 m:"+m+"\tn:"+n);
m=1;n=0;
if(m>0&&n++>0);
System.out.println("第二次运行结果 m:"+m+"\tn:"+n);
m=0;n=0;
if(++m>0&&++n>0);
System.out.println("第三次运行结果 m:"+m+"\tn:"+n);
m=1;n=0;
if(m++>0||n++>0);
System.out.println("第四次运行结果 m:"+m+"\tn:"+n);
运行结果:
第一次运行结果 m:1 n:0
第二次运行结果 m:1 n:1
第三次运行结果 m:1 n:1
第四次运行结果 m:2 n:0
2. switch/case
switch(表达式) { case 常量表达式1: 语句1; case常量表达式2: 语句2; ...... case常量表达式n : 语句n; default: 语句n+1; } |
switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置并开始顺序执行以后所有的程序代码,不管后面的case条件是否匹配,直到碰到break语句为止。
3.可以标记循环,进而跳转循环或中断循环
//continue 循环的标记 中断当前循环跳转到该循环
//break 循环的标记 中断该循环
//loop pp 标记两个循环
loop:
for (int i = 0; i < 7; i++) {
pp:
for (int j = 0; j < 1; j++) {
if (i == 3) {
i++;
continue pp;
}
System.out.println(i + "#Hello World");
}
}
运行结果:
0#Hello World
1#Hello World
2#Hello World
5#Hello World
6#Hello World