Java基础语法
注释的使用
public class Temp {
/**
* 此处为文档注释,内容会被解释成正式文档,包含进javadoc
* @param args
*/
public static void main(String[] args){
/*
* 此处是多行注释
*/
System.out.println("Hello World");
// 此处为单行注释,编译代码时,忽略此段注释
}
}
标识符和关键字
用于定义名称的都称之为标识符,在Java中以字母、数字、_、$组成,其中不能重复,不能以数字开头,不能是Java中的关键字,且区分大小写。
数据类型
基本数据类型不牵扯到内存开辟的问题
默认值问题:
public class Temp {
public static void main(String[] args){
int x;//编译不过,默认值只在类属性中生效
System.out.println(x);
}
}
解决数据溢出问题:
public class Temp {
public static void main(String[] args){
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(max);
System.out.println(min);
// 数据范围小的类型,与数据范围大的类型计算,自动转换为数据范围大的类型
System.out.println(max+1L);
System.out.println(min-(long)1);
}
}
Java对byte操作有特殊支持
/**
* Java对byte操作有特殊支持
*/
public class Temp {
public static void main(String[] args){
byte x = 20;// 20是int,但是数值在byte范围内,自动转为byte
System.out.print(x);
}
}
/**
* Java对byte操作有特殊支持
*/
public class Temp {
public static void main(String[] args){
byte x = 200;// 200是int,但是数值不在byte范围内,编译出错
System.out.print(x);
}
}
自动转型(由小到大):
byte → short → int → long → float → double
强制转型(由大到小):
double → float → long → int → short → byte
常见问题:
一个char字符是可以存储一个汉字的,因为在Java中采用的是UNICODE编码,一个char占16位。在Java中,也不能用0或者非0代替布尔型数据
运算符
包括算术运算符、逻辑运算符、位运算符
常见问题:
如何更快的计算出2的3次方?如果直接采用222,是需要数学计算过程,由于计算机的数据都是按位保存的,所以此问题移位是最快的:
public class Temp {
public static void main(String[] args){
int x = 2;
System.out.print(x<<2);// 向左移两位
}
}
程序结构
### 顺序结构
从头一直顺序执行到代码结束
### 选择结构
包含if…else…或者switch选择快的代码结构
### 循环结构
while循环 和 for循环
/**
* 实现1 ~ 100 累加
*/
public class Temp {
public static void main(String[] args){
int sum = 0;
int x = 1;
do {
sum = sum + x;
x++;
} while (x <= 100);
System.out.print(sum);
}
}
/**
* 实现1 ~ 100 累加
*/
public class Temp {
public static void main(String[] args){
int sum = 0;
int x = 1;
while (x <= 100){
sum += x;
x ++;
}
System.out.print(sum);
}
}
/**
* 实现1 ~ 100 累加
*/
public class Temp {
public static void main(String[] args){
int sum = 0;
for (int i = 1;i <= 100;i++){
sum += i;
}
System.out.print(sum);
}
}
Java提供了两个中断循环的操作:break(离开循环,执行循环外的下一个语句)和continue(强迫程序调到循环的起始处),并且这两个语句都要结合if来结合使用
方法
方法的重载
指的是 方法名 相同,参数 类型和个数不同,无须关注方法的返回值类型
递归
-
必须有结束条件
-
每次调用都需要改变传递的参数
public class Temp { public static void main(String[] args){ int sum = add(100); System.out.print(sum); } public static int add(int x){ if (x == 1) { return 1; } else { return x + add(x - 1); } } }