Java学习笔记01
第1章 Java 主方法中的顺序结构
Java 程序基本结构
public class Demo {
public static void main(String[] args) {
System.out.println("我想学习Java!");
}
}
- public 是访问修饰符,表示该类是公开的。如果不写 public,也能正确编译,但是这个类将无法从命令行执行,将在后面的实训中详细介绍;
- class 是关键字,表示这是一个类;
- Demo 是这个 Java 程序的名称(类名),Java 中对定义类名有一定的要求。要求如下:
- 类名必须以英文字母开头,后接字母,数字和下划线的组合;
- Java 程序中良好的命名习惯通常是以大写字母开头来命名类名,如果类名由多个单词组成,每个单词的第一个字母都应该大写。例如:Student、OutputTriangle 等。
数据类型
数据类型 | 描述 | 占用字节 | 取值范围 | 默认值 |
---|---|---|---|---|
byte | Java中最小的数据类型, | 1个字节 | -128~~127(-27~~27-1) | 0 |
int | 整型,用于存储整数 | 4个字节 | -2147483648~2147483647 | 0 |
short | 短整型 | 2个字节 | -32768~32717 | 0 |
long | 长整型 | 8个字节 | -263~263-1 | 0L |
float | 浮点型,用于存储带小数点的数字 | 4个字节 | / | 0.0f |
double | 双精度浮点型,用于存储带有小数点的数字 | 8个字节 | / | 0.0d |
char | 字符型,用于存储单个字符 | 2个字节 | 0~65535 | 空 |
boolean | 布尔类型,用于判断真或假 | 1个字节 | 仅有两个值,即true、false | false |
格式化输出
格式控制字符 | 结果 |
---|---|
%d | 整数 |
%8d | 整数,左对齐,输出宽度为 8 |
%-6d | 整数,右对齐,输出宽度为 8 |
%f | 浮点数 |
%.2f | 浮点数,四舍五入后保留两位小数 |
%8.2f | 浮点数,四舍五入后保留两位小数,左对齐,输出宽度为8 |
Scanner 类 reader 对象
使用 import 导入类
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
// 创建一个Scanner的实例对象,这个对象可以为用户提供输入,将这个实例对象命名为reader,后面我们可以直接用reader调用Scanner类的相关方法
Scanner reader = new Scanner(System.in);
// 从键盘处接收用户输入的浮点型数据
double a = reader.nextDouble();
System.out.print("输入的数据为:" + a);
}
}
Math类
方法 | 描述 |
---|---|
abs(x) | 返回参数x的绝对值,不改变x的数据类型 |
sqrt(x) | 计算x的平方根,返回值为 double |
cbrt(x) | 计算x的立方根,返回值为 double |
floor(x) | 返回小于x的最大整数,返回类型为 double |
ceil(x) | 返回大于等于x的的最小整数,返回类型为 double |
round(x) | 将x四舍五入取整,返回值为 long |
pow(x,y) | 计算x的y次方,返回类型为 double |
max(x,y) | 计算x和y的最大值,返回类型为 double |
min(x,y) | 计算x和y的最小值,返回类型为 double |
sin(x) | 求x的正弦值 |
cos(x) | 求x的余弦值 |
tan(x) | 求x的正切值 |
asin(x) | 求x的反正弦值 |
acos(x) | 求x的反余弦值 |
atan(x) | 求x的发正切值 |
toDegrees(x) | 将x转化为角度 |
toRadians(x) | 将x转换为弧度 |
PI | π |
例如
int a = 27;
double cbrt = Math.cbrt(a);
double abs = Math.abs(a);
double floor1 = Math.floor(a);
double floor2 = Math.floor(b);
long round1 = Math.round(a);
long round2 = Math.round(b);
double max = Math.max(a,b);
double min = Math.min(a,b);
System.out.print(Math.PI);
更改字符类型
基本数据类型转换
在 Java 开发之中,经常会涉及到不同类型数据之间进行相互转换。那 Java 之间又是如何转换数据类型的呢?
Java 中数据类型的转换有两种:
- 自动转换;
- 强制转换。
首先我们得需要知道 Java 基本数据类型之间的范围大小。
Java 中整型和浮点型按照范围从小到大:
byte -> short -> int -> long -> float -> double
字符型转换为整型:
char -> int
例如
// 定义一个字符型变量a,值为 a;
char a = 'a';
// 将 int 类型强制转化为 char 型。
char m = (char)(a - 32);
// 定义一个字符型变量c,值为 中;
char c = '中';
// 定义一个字符型变量d,值为 国;
char d = '国';
// 将 int 类型强制转化为 char 型。
char n = (char)(c+d);
System.out.println(m);
System.out.print(n);
第2章 Java 主方法中的分支结构
if…else if…else 语法
if(布尔表达式 1){
表达式1
}else if(布尔表达式 2){
表达式2
}else if(布尔表达式 3){
表达式3
}else {
表达式4
}
switch 语句
switch(expression){
case value :
语句1
break; //可选
case value :
语句2
break; //可选
// 你可以有任意数量的case语句
default : //可选
语句3
}
switch 语句有如下规则:
- switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE7 开始,switch 还支持字符串 String 类型,但是使用 String 类型时,case 标签必须为字符串常量或字面量;
- switch 语句可以拥有多个 case 语句,每个 case 后面跟一个要比较的值和冒号;
- case 语句中 value 的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量;
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句;
- 当遇到 break 语句时,switch 语句终止,继续执行 switch 语句后面的语句。case 语句不一定要包含 break 语句,如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句;
- switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。当 case 语句的值和所有变量值都不相等时,执行 default 分支。default 分支不需要 break 语句。
注意:switch 语句执行时,一定会先进行匹配。如果匹配成功,则返回当前 case 的值,再根据是否有 break,判断是否继续进行匹配判断。
案例:
public static void main(String args[]) {
char grade = 'B';
switch (grade) {
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中等");
break;
case 'D':
System.out.println("及格");
break;
case 'F':
System.out.println("你需要再努力努力");
break;
default:
System.out.println("未知等级");
}
System.out.println("你的等级是 " + grade);
}
第3章 Java 主方法中的循环结构
while
while( 循环条件表达式 ) {
循环体语句序列;
}
do…whlie
do {
循环体语句序列;
} while(循环条件表达式);
for
for(表达式1; 表达式2; 表达式3) {
循环体语句序列;
}
break
public class BreakTest {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
//判断i是否为4的倍数,如果是,则退出循环。
if (i % 4 == 0) {
break;
}
System.out.print(i+" ");
}
}
}
continue
public class ContinueTest {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
//判断i是否为4的倍数,如果是,则退出本次循环。
if (i % 4 == 0) {
continue;
}
System.out.print(i);
}
}
}