java基础语法
选择eclipse工具,常见的2种格式为GBK和UTF-8。
1.1变量
- 边声明边赋值
//23为常量,常量代表整数值。
int age=23;
- 先声明,后赋值
double score;/声明
score=90.5;/赋值
1.2数据类型
数据类型分为基本数据类型和引用数据类型。
1.基本数据类型:共有8种
数据类型 | 字节数(1字节=8byte) | 备注 |
---|---|---|
byte | 1 | / |
short | 2 | $1600 |
int | 4 | 输入整数型,默认为int。如8,默认为int型 |
long | 8 | 添加后缀“l”或“L” |
float | 4 | 添加后缀“f”或“F” |
double | 8 | 输入小数型,默认为double |
char | 2 | / |
boolean | 1 | / |
2.引用数据类型(类、数组、接口、枚举)
1.3类型的转换
1.自动类型转换 ,小容量转大容量
byte,short,char=>int=>long=>float=>double;
byte类型+short类型=int类型
byte a=1;
short b1=2,b2=3;
int c=a+b1;//正确
short b=b1+b2;//报错,byte,short,char变量参与相加时,自动升级int类型。
2.强制类型转换
byte a=5;
int b=10;
int b=(byte)a;
int a=357;
byte b=(byte)a;
将32位的357转为8位的byte型输出,结果为101。
3.字符串类型转换
字符串型(非字符型)不能和整型直接进行转换,包含字符串型时,会提升其他类型为String。
注:字符与数字相加为求和,字符串型与其他相加为拼接。
byte b1=10;//常量具有内存优化机制
short s1=12,s2;
int n=b1+s1
s1=(short)(s2+3);//s2为short型,3默认为int型。相加后自动升级为int型。故需强制转换。
1.4运算符
包含算数运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和三元运算符,此处只列位运算和三元运算符。
1.位运算
运算符 | 运算规则 | 示例结果 |
---|---|---|
>>右位移 | 12>>2 | 3 |
<<左位移 | 12<<2 | 48 |
>>>无符号位右位移 | 12>>>2 | 3 |
& | 按位与:都为1则为1,否则为0 | / |
I | 按位或:都为0则为0,否则为1 | / |
~ | 1变为0;0变为1 | / |
^ | 相同(同为0或者1)为0,否则为1 | / |
右移:12>>n(n=1.2.3……)先将12转为2进制后,右移2位。相当于除法,除以n个2。
左移:12>>n(n=1.2.3……)先将12转为2进制后,右移2位。相当于乘法,乘以n个2。
正负符号位不变。
没有无符号位左移。
2.三元运算符
写法:条件表达式?条件1:条件2
规则:如果表达式返回值为真,则运行条件1,否者运行条件2;值1表达式类型和值2表达式的类型一致。
int age=10;
String n=age>7?"搬动桌子":"搬不动";
System.out.println(n);
1.5 流程控制
1.顺序结构
程序从上至下,从左至右执行。
2.分支结构
2.1 if结构
if
语法:
if(条件表达式){
//条件成立执行
}
if...else
语法:
if(条件表达式){
//条件成立执行
}else{
//执行
}
if...else if...else
语法:
if(条件表达式1){
//条件成立执行1
}
else if(条件表达式2){
//条件成立执行2
}else{
//执行
}
注意事项:
(1)else可以省略。
(2)对于多分支,如果第1个(或前面的条件成立),只执行当前条件,后面的条件即使成立也不执行。
(3)分支中执行语句只有一条时(一个表达式),可以省略大括号。(只有就近if的一个表达式大括号可以省略)。
(4)尽量条件范围小的放在最前面。
2.2 switch结构
switch(变量/常量){//类型:byte/short/int/char/枚举/String(jdk1.7)
case 值1://执行1
break;
case 值2://执行2
break;
default://执行
break;
}
注意事项:
(1)可以省略break,顺序从满足条件的语句从上到下执行,与case值得顺序无关。
(2)case块中的值是惟一的。
(3)等值比较。
if语句与switch的区别:
(1)if是区间范围比较,switch为等值比较。
(2)switch语句首先计算表达式的值,如果表达式的值和case后的某个值对应相同,则执行该case语句后的若干个语句直到遇到break语句为止。若没有一个常量值的表达式与条件表达式中的语句对应,则执行default后的语句。如果不存在default,且表达式的值不予任何case相对应,则switch不作任何处理。
3.循环
3.1 for循环
for(初始值表达式1;条件表达式2(返回boolean类型);迭代4){
//重复从第2步-3-4直至迭代结束。
// 执行条件3
}
3.2 while循环
//初始值1
while(条件表达式2){
//操作3
//迭代4
}
for和while循环的特点:先判断后执行。(如果条件不成立,不执行)
3.3 while循环
//初始值1
do{
//执行2
//迭代3
}while(条件表达式4);
3.4 foreach循环
//初始值1
for(元素的类型 元素变量名:数组或集合){
//操作
}
1.6 关键字
break
:终止,打断。
(1)可以出现在switch结构和循环结构中,其他地方不能出现。
(2)在循环中表示终止当前的循环。
(3)break语句后不执行输出。
continue
:继续。
(1)只能出现在循环中,其他地方不能出现。
(2)在循环中表示结束当前循环,进入下个循环。
return
:单独使用,如:return;表示结束方法的执行。