本文主要是介绍Java必知必会-入门篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明:
- 会先教会大家如何使用,并给出相应的练习题示例
- 作业习题是帮助大家巩固所学内容,需要大家独立完成
目录
一、输出内容
1.1 学会打印 hello world
1.2 练习题:打印一棵树
1.3 作业习题:打印一颗星星
二、基本数据类型
2.1 认识基础数据类型
2.2 分别对基础数据类型进行介绍
2.3 变量与常量
2.4 声明变量与常量
2.5 练习题:计算半径为5的圆面积
2.6 作业习题:一个小球从98米的高空做自由落体运动,请问需要多少秒才抵达地面?
三、运算符
3.1 算术运算符
3.2 自增和自减运算符
3.3 比较运算符
3.4 位运算符
3.5 三元运算符
3.6 作业习题:使用三元运算符模拟点赞功能
四、数据类型转换
4.1 隐式类型转换
4.2 显式类型转换
4.3 作业习题:自主分别进行一次隐式类型转换和显式类型转换
五、流程控制
5.1 条件语句
5.2 循环语句
5.3 循环控制
5.4 作业习题:使用任意一个循环语句打印从10000到1且不是4的倍数的数值
六、数组
6.1 一维数组
特点:
初始化一维数组
静态初始化(在声明时赋值)
动态初始化(使用new关键字)
访问数组元素
修改数组元素
遍历数组
示例:声明、初始化、修改和遍历一个一维数组。
6.2 二维数组
特点:
初始化二维数组
声明和初始化:
初始化并赋值:
访问元素:
遍历二维数组:
示例:创建、初始化、访问和遍历一个二维数组。
6.3 作业习题:使用Java生成杨辉三角形前五行
一、输出内容
1.1 学会打印 hello world
public class Main {public static void main(String[] args) {System.out.println("Hello world!");}
}
运行后控制台显示的结果:
Hello world!
1.2 练习题:打印一棵树
public class Main {public static void main(String[] args) {System.out.println("*");System.out.println("**");System.out.println("***");System.out.println("****");System.out.println("*****");System.out.println("*");System.out.println("*");System.out.println("*");System.out.println("*");}
}
运行后控制台显示的结果:
*
**
***
****
*****
*
*
*
*
1.3 作业习题:打印一颗星星
二、基本数据类型
2.1 认识基础数据类型
Java中有8种基本的数据类型,用于存储数值、字符和布尔值
数值类型:
- 整数类型:byte、short、int、long
- 浮点类型:float、double
字符类型:char
布尔类型:boolean
2.2 分别对基础数据类型进行介绍
整型数据类型:
- byte:8位,有符号的整数类型,取值范围从-128到127。
- short:16位,有符号的整数类型,取值范围从-32,768到32,767。
- int:32位,有符号的整数类型,取值范围从-2^31到2^31-1。
- long:64位,有符号的整数类型,取值范围从-2^63到2^63-1。
浮点数据类型:
- float:32位,单精度、32位IEEE 754浮点数。
- double:64位,双精度、64位IEEE 754浮点数。
字符类型:
char
:16位,表示Unicode字符,取值范围从’\u0000’(即为0)到’\uffff’(即为65,535)。
布尔类型:
boolean
:表示逻辑值true和false。
2.3 变量与常量
变量:在程序执行的过程中,其值能被改变的量称为变量
常量:在程序执行的过程中,其值不能发生改变的量称为常量,使用final关键字进行修饰
2.4 声明变量与常量
声明变量:
int number; // 声明一个整型变量
double pi = 3.14159; // 声明并初始化一个双精度浮点数变量
char letter = 'A'; // 声明并初始化一个字符变量
boolean flag = true; // 声明并初始化一个布尔变量
声明常量:
public class Constants {public static final double PI = 3.14159; // 声明一个类级别的常量
}
final int MAX_VALUE = 100; // 声明一个整型常量
如果没有public
关键字,那么这些常量将只能在Constants
类内部访问。如果没有static
关键字,那么在其他类中访问这些常量时,需要创建Constants
类的实例。
2.5 练习题:计算半径为5的圆面积
public class CircleAreaCalculator {public static final double PI = 3.14159; // 自定义π的常量public static void main(String[] args) {double radius = 5.0; // 圆的半径double area = calculateCircleArea(radius);System.out.println("圆的面积是: " + area);}public static double calculateCircleArea(double radius) {return PI * radius * radius; // 使用自定义的π常量计算面积}
}
2.6 作业习题:一个小球从98米的高空做自由落体运动,请问需要多少秒才抵达地面?
三、运算符
3.1 算术运算符
-
加法(+):将两个操作数相加。
- 示例:
int sum = 5 + 3;
// 结果为8
- 示例:
-
减法(-):从第一个操作数中减去第二个操作数。
- 示例:
int difference = 5 - 3;
// 结果为2
- 示例:
-
乘法(*):将两个操作数相乘。
- 示例:
int product = 5 * 3;
// 结果为15
- 示例:
-
除法(/):将第一个操作数除以第二个操作数。
- 示例:
double quotient = 5.0 / 2.0;
// 结果为2.5 - 注意:如果两个操作数都是整数类型,结果会舍去小数部分,只保留整数部分。
- 示例:
-
取模(%):返回第一个操作数除以第二个操作数后的余数。
- 示例:
int remainder = 5 % 3;
// 结果为2
- 示例:
3.2 自增和自减运算符
-
前缀形式:运算符位于变量之前(例如
++a
或--a
)。在这种情况下,变量在表达式求值之前增加或减少。 -
后缀形式:运算符位于变量之后(例如
a++
或a--
)。在这种情况下,变量在表达式求值之后增加或减少。
public class IncrementDecrementOperators {public static void main(String[] args) {int a = 5;// 前缀自增int b = ++a; // a先自增为6,然后b被赋值为6System.out.println("a (after ++a): " + a); // 输出 6System.out.println("b: " + b); // 输出 6// 后缀自增int c = a++; // c被赋值为6,然后a自增为7System.out.println("a (after a++): " + a); // 输出 7System.out.println("c: " + c); // 输出 6// 前缀自减int d = --a; // a先自减为6,然后d被赋值为6System.out.println("a (after --a): " + a); // 输出 6System.out.println("d: " + d); // 输出 6// 后缀自减int e = a--; // e被赋值为6,然后a自减为5System.out.println("a (after a--): " + a); // 输出 5System.out.println("e: " + e); // 输出 6}
}
3.3 比较运算符
-
等于(==):检查两个操作数是否相等。
- 示例:
int a = 5; int b = 5; boolean result = (a == b);
// result为true
- 示例:
-
不等于(!=):检查两个操作数是否不相等。
- 示例:
int a = 5; int b = 3; boolean result = (a != b);
// result为true
- 示例:
-
大于(>):检查左边的操作数是否大于右边的操作数。
- 示例:
int a = 5; int b = 3; boolean result = (a > b);
// result为true
- 示例:
-
小于(<):检查左边的操作数是否小于右边的操作数。
- 示例:
int a = 3; int b = 5; boolean result = (a < b);
// result为true
- 示例:
-
大于等于(>=):检查左边的操作数是否大于或等于右边的操作数。
- 示例:
int a = 5; int b = 5; boolean result = (a >= b);
// result为true
- 示例:
-
小于等于(<=):检查左边的操作数是否小于或等于右边的操作数。
- 示例:
int a = 3; int b = 5; boolean result = (a <= b);
// result为true
- 示例:
3.4 位运算符
-
按位与(&):
- 两个操作数的相应位都为1时,结果位才为1。
- 示例:
int a = 5; int b = 3; int result = a & b;
// result为1(二进制:0101 & 0011 = 0001)
-
按位或(|):
- 两个操作数的相应位都为0时,结果位才为0。
- 示例:
int a = 5; int b = 3; int result = a | b;
// result为7(二进制:0101 | 0011 = 0111)
-
按位异或(^):
- 两个操作数的相应位相同,结果位为0;相应位不同,结果位为1。
- 示例:
int a = 5; int b = 3; int result = a ^ b;
// result为6(二进制:0101 ^ 0011 = 0110)
-
按位非(~):
- 反转操作数的每一位,即0变1,1变0。
- 示例:
int a = 5; int result = ~a;
// result为-6(二进制:0101 变为 1010,即-6的补码)
-
左移(<<):
- 将操作数的二进制表示向左移动指定的位数。
- 示例:
int a = 2; int result = a << 2;
// result为8(二进制:0010 向左移动2位,变为 1000)
-
右移(>>):
- 将操作数的二进制表示向右移动指定的位数。
- 示例:
int a = 8; int result = a >> 2;
// result为2(二进制:1000 向右移动2位,变为 0010)
-
无符号右移(>>>):
- 类似于右移,但填充最高位的值为0,而不是符号位。
- 示例:
int a = -2; int result = a >>> 2;
// result为-2(二进制:1111 向右移动2位,变为 1111,但符号位被置为0)
3.5 三元运算符
三元运算符(也称为条件运算符)是一种可以返回三个表达式中的一个表达式的值的运算符。它的基本形式如下:
(条件) ? 表达式1 : 表达式2;
三元运算符的一个示例:
int a = 5;
int b = (a > 3) ? 10 : 20;
System.out.println("b的值是:" + b); // 输出 b的值是:10
3.6 作业习题:使用三元运算符模拟点赞功能
四、数据类型转换
4.1 隐式类型转换
从低级类型向高级类型转换,系统会自动执行,这种转换称为隐式转换。
类型按精度从低到高排序的顺序为byte、short、int、long、float、double
4.2 显式类型转换
显示数据转换(也称为强制类型转换)是指显式地将一个变量从一种数据类型转换为另一种数据类型。这种转换可能会导致数据丢失,因为目标数据类型的范围可能小于源数据类型。
显示数据转换的例子:
- float 转换为 int:
public class ImplicitExplicitConversion {public static void main(String[] args) {float f = 100.0f;int i = (int) f; // 显示数据转换,将 float 转换为 intSystem.out.println("f 的值是:" + f);System.out.println("i 的值是:" + i);}
}
4.3 作业习题:自主分别进行一次隐式类型转换和显式类型转换
五、流程控制
5.1 条件语句
if 语句基本形式:
if (条件) {
// 如果条件为 true,则执行的代码
}
示例:
int age = 20;
if (age >= 18) {System.out.println("成年了!");
} else {System.out.println("未成年!");
}
if-else 语句基本形式:
if (条件) {
// 如果条件为 true,则执行的代码
} else {
// 如果条件为 false,则执行的代码
}
示例:
int score = 85;
if (score >= 90) {System.out.println("优秀!");
} else if (score >= 80) {System.out.println("良好!");
} else {System.out.println("及格!");
}
switch语句的基本语法和用法:
switch (expression) {case value1:// 如果expression等于value1,则执行这里的代码break;case value2:// 如果expression等于value2,则执行这里的代码break;// 可以有多个casedefault:// 如果expression与所有case都不匹配,则执行这里的代码
}
expression
:一个整数、字符或枚举类型的表达式。value1
、value2
等:与expression
相匹配的值。break
:在每个case
块的最后,使用break
语句来结束switch
语句,防止代码继续执行下一个case
块。default
:可选的,如果expression
与所有case
都不匹配,则执行这里的代码。
简单的switch
语句示例:
public class SwitchStatementExample {public static void main(String[] args) {int dayOfWeek = 3; // 假设今天是星期三switch (dayOfWeek) {case 1:System.out.println("今天是星期一");break;case 2:System.out.println("今天是星期二");break;case 3:System.out.println("今天是星期三");break;case 4:System.out.println("今天是星期四");break;case 5:System.out.println("今天是星期五");break;case 6:System.out.println("今天是星期六");break;case 7:System.out.println("今天是星期日");break;default:System.out.println("输入的数字不是一周中的某一天");break;}}
}
switch语句也可以用于字符类型:
public class SwitchStatementExample {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;default:System.out.println("无效的成绩");break;}}
}
5.2 循环语句
循环语句用于重复执行一段代码,直到满足某个条件为止。Java提供了三种主要的循环结构:for
语句、while
语句和do-while
语句。
for
循环是最常用的循环之一,它由三个部分组成:初始化表达式、循环条件、以及迭代表达式。
- 初始化表达式:在循环开始之前执行一次,用于设置循环变量。
- 循环条件:在每次迭代前检查,如果为真,则执行循环体;如果为假,则退出循环。
- 迭代表达式:在每次循环体执行后执行,用于更新循环变量。
for 语句基本形式:
for (初始化表达式; 循环条件; 迭代表达式) {// 循环体
}
简单的 for
循环示例,用于在 Java 中打印数字 0 到 9:
for (int i = 0; i < 10; i++) {System.out.println(i);
}
while
循环在每次迭代之前检查条件。如果条件为真,则执行循环体。它适用于当你不知道循环需要执行多少次,但你知道需要满足什么条件才能继续执行时。
while 语句基本形式:
while (条件) {// 循环体
}
示例:
int i = 0; // 初始化循环变量
while (i < 10) { // 循环条件System.out.println(i); // 循环体:打印当前数字i++; // 更新循环变量
}
do-while
循环与 while
循环相似,但是它保证至少执行一次循环体,因为条件检查是在循环体之后进行的。
do-while语句基本形式:
do {// 循环体
} while (条件);
示例:
int i = 0; // 初始化循环变量
do {System.out.println(i); // 循环体:打印当前数字i++; // 更新循环变量
} while (i < 10); // 循环条件
5.3 循环控制
break 语句:
用于立即退出当前循环,不再执行循环体内的剩余代码。
for (int i = 0; i < 10; i++) {if (i == 5) {break;}System.out.println(i);
}
continue 语句:
语句用于跳过当前循环的剩余代码,直接进入下一次循环。
for (int i = 0; i < 10; i++) {if (i == 5) {continue;}System.out.println(i);
}
5.4 作业习题:使用任意一个循环语句打印从10000到1且不是4的倍数的数值
六、数组
6.1 一维数组
一维数组(One-dimensional array),也简称数组,是数据结构中的一种基础形式,用于在单个线性序列中存储一系列相同类型的数据项。数组中的每个数据项都有一个索引(或位置),通过这个索引可以快速访问到数组中的特定元素。
特点:
- 顺序存储:数组中的元素是连续存放的。
- 相同类型:数组通常存储相同类型的数据。
- 随机访问:可以通过索引直接访问数组中的任何元素。
- 固定大小:一旦数组被创建,它的大小就固定不变。
初始化一维数组
静态初始化(在声明时赋值)
int[] numbers = {1, 2, 3, 4, 5};
动态初始化(使用new关键字)
int[] numbers = new int[5]; // 创建一个可以存储5个整数的数组
访问数组元素
可以通过索引来访问数组中的元素。索引从0开始。
int firstElement = numbers[0]; // 获取第一个元素
修改数组元素
可以通过索引来修改数组中的元素。
numbers[0] = 10; // 修改第一个元素为10
遍历数组
可以使用for循环来遍历数组中的所有元素。
for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);
}
或者使用增强型for循环(for-each循环)
for (int number : numbers) {System.out.println(number);
}
示例:声明、初始化、修改和遍历一个一维数组。
public class Main {public static void main(String[] args) {// 声明并初始化一个一维数组int[] numbers = new int[5];// 修改数组元素numbers[0] = 1;numbers[1] = 2;numbers[2] = 3;numbers[3] = 4;numbers[4] = 5;// 遍历数组并打印每个元素for (int i = 0; i < numbers.length; i++) {System.out.println("Element at index " + i + ": " + numbers[i]);}}
}
6.2 二维数组
二维数组(Two-dimensional array),也称为矩阵(matrix),是一种数据结构,它存储了元素的一个表格,这些元素可以通过两个索引来访问:行索引和列索引。在许多编程语言中,二维数组可以看作是一维数组的数组。
特点:
- 二维结构:元素按行和列排列。
- 相同类型:通常存储相同类型的数据。
- 固定大小:一旦创建,其行数和列数就固定了。
- 连续存储:在内存中,二维数组的元素通常是连续存储的。
初始化二维数组
声明和初始化:
int[][] matrix = new int[3][3]; // 创建一个3x3的二维数组
初始化并赋值:
int[][] matrix = {{1, 2, 3},{4, 5, 6},{7, 8, 9}
};
访问元素:
int element = matrix[1][2]; // 获取第二行第三列的元素,即数字6
遍历二维数组:
for (int i = 0; i < matrix.length; i++) { // 遍历行for (int j = 0; j < matrix[i].length; j++) { // 遍历列System.out.print(matrix[i][j] + " ");}System.out.println(); // 换行
}
示例:创建、初始化、访问和遍历一个二维数组。
public class Main {public static void main(String[] args) {// 声明并初始化一个3x3的二维数组int[][] matrix = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};// 遍历并打印二维数组的所有元素for (int i = 0; i < matrix.length; i++) {for (int j = 0; j < matrix[i].length; j++) {System.out.print(matrix[i][j] + " ");}System.out.println(); // 在每行后换行}}
}
6.3 作业习题:使用Java生成杨辉三角形前五行
这篇关于Java必知必会-入门篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!