Java必知必会-入门篇

2024-08-24 21:28
文章标签 java 入门篇 必知 必会

本文主要是介绍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:一个整数、字符或枚举类型的表达式。
  • value1value2等:与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必知必会-入门篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103643

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis