2024.3.4 JAVA 复习

news/2024/4/19 15:04:17/文章来源:https://blog.csdn.net/m0_49956154/article/details/136459356

Java环境搭建

1、JDK和JRE的概述

  • JDK:Java开发工具包(Java Development Kit), 包含开发工具 和 JRE.

    • 常用的开发工具: javac, java

  • JRE:Java运行时环境(Java Runtime Environment), 包含运行Java程序时所需的核心类库和 JVM.

    • 核心类库: java.lang, java.util, java.io

  • JVM:Java虚拟机(Java Virtual Machine)

         作用: 用来保证Java程序跨平台性的, 但是JVM本身并不能跨平台.

 常用快捷键

五、Java基础语法

1、注释

注释常见分类为三种:分别是单行注释、多行注释、文档注释

//单行注释
​
/*多行注释多行注释
*/
​
/**文档注释文档注释
*/
​

2、分隔符

Java 语言里的分号(;) 花括号({})、方括号([])、圆括号(())、 圆点(.)都具有特殊的分割作用,被统称为分隔符。

  • 分号(;) 是Java语言分隔语句的,每个 Java 语句都是使用分号作为结尾。

  • 花括号({})作用是定义了一个代码块,一个代码块指的是”{” 和 “}” 所包含的代码片段,代码块逻辑上是一个整体,花括号是成对出现的。

  • 方括号([])作用是用于访问数组元素,方括号通常跟着数组变量名;

  • 圆括号(()) 功能较多,定义方法使用圆括号来包含参数声明;调用方法传递实参值;圆括号可以作为强制类型转换运算符等;

  • 圆点(.)作用类/对象和它的成员(包含成员变量、方法和内部类)之间的分隔符,表明调用某个类或某个实例的指定成员。

5、变量variable

在程序的执行过程中, 其值可以在某个范围内发生改变的量就叫变量.

Java中要求一个变量每次只能保存一个数据,而且必须要明确保存数据的数据类型

package com.itheima;public class Test01_变量 {public static void main(String[] args) {// 定义变量: 方式一 声明变量并赋值// 格式:  数据类型 变量名 =  值int a = 100;System.out.println(a);// 定义变量: 方式二 先声明 后赋值int b; // 声明b = 50; // 赋值System.out.println(b);// 尝试, 定义一个变量 不赋值, 直接打印即可   直接报错, 告知没有赋值int c = 10;System.out.println(c);// 尝试定义一个字节类型的变量, 尝试赋值byte d = -128;System.out.println(d);}
}

 生成随机数

package com.itheima.demo01;import java.util.Random;
import java.util.Scanner;public class random_number {public static void main(String[] args){Random random = new Random();int computerNum = random.nextInt(100) ;System.out.println("生成的随机数是:"+ computerNum);// 键入Scanner sc = new Scanner(System.in);while (true){System.out.println("请输入一个数字【1-100】,与系统随机数进行比较:");int userNum = sc.nextInt();///进行判断if (userNum>computerNum){System.out.println("您输入的值大于了随机数");}else if (userNum<computerNum){System.out.println("您输入的值小于了随机数");}else {System.out.println("恭喜您,匹配成功");break;}}}
}

二、流程控制

和Python中一样, Java中也是有分支结构和循环结构的, 它们的用法都一样, 只是写法稍有不同, 接下来, 我们来研究下Java中分支结构和循环结构的格式.

1、if语句

如果我们想某些代码是在满足条件的情况下, 才能被执行, 此时就需要用到选择结构了, 选择结构也叫分支结构, 主要分为以下两种:

  • if语句, 主要用于范围的判断

  • switch.case语句, 主要用于固定值的判断.

if语句格式:

package com.itheima.demo01;import java.util.Scanner;public class if_elseif_else {public static void main(String[] args){Scanner sc  = new Scanner(System.in);System.out.println("请输入您的成绩:");double score  = sc.nextDouble();if(score>=85){System.out.println("您的成绩优秀");}else if(score>=75){System.out.println("您的成绩中等");}else if(score>=60){System.out.println("您的成绩刚刚及格");}else {System.out.println("您成绩不合格");}}
}

2、switch语句

switch语句, 一般是用于做固定值判断的

格式:

示例:

1 一年有12个月, 分属于春夏秋冬4个季节, 键盘录入一个月份, 请用程序实现判断该月份属于哪个季节, 并输出。

switch(表达式) {  
    case 值1:     
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    case 值3:
        语句体3;
        break;
    ...    //根据需求, 可以写多组case.
    default:    
        语句体n;
        break;

package com.itheima.demo01;import java.util.Scanner;//示例:
//
//1 一年有12个月, 分属于春夏秋冬4个季节, 键盘录入一个月份, 请用程序实现判断该月份属于哪个季节, 并输出。
public class Switch {public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请您输入一个月份:");int month = sc.nextInt();switch (month){case 12:case 1:case 2:System.out.println("冬季");break;case 3:case 4:case 5:System.out.println("春季");break;case 6:case 7:case 8:System.out.println("夏季");break;case 9:case 10:case 11:System.out.println("秋季");break;default:System.out.println("您输入的数字有误,请重新输入");break;}}
}

3、for循环

for循环是我们在实际开发中应用到的最多的循环, 它一般适用于循环次数固定的情况.

格式:

for(初始化条件1; 判断条件2; 控制条件3) {//循环体;
}

说明:

1 初始化条件: 用来记录 循环的初始状态的. 即: 从哪开始循环.

2 判断条件: 用来决定循环是否继续执行的, 条件成立, 则循环继续执行, 条件不成立, 整个循环就结束了.

3 控制条件: 用来控制初始化条件变化的, 一般是每循环一次, 初始化条件+1.

4 循环体: 需要用来重复做的事情(代码).

package com.itheima.demo01;public class For_xunhuan {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {System.out.println(i);}for (int a = 5; a >= 1; a--) {System.out.println(a);}int sum = 0;for (int b = 1; b <= 100; b++) {if (b % 2 == 0) {sum += b;}}System.out.println("1到100的偶数和为:"+sum);}
}

三、数组

和Python中一样, Java中也是有用来同时存储多个同类型元素的容器的, 那就是: 数组。在一个数组中,数据元素的类型是唯一的,即一个数组中的元素的类型相同。

1、定义格式

  • 方式一: 动态初始化 (我们给定长度, 由系统给出默认初始化值)

格式一: 数据类型[] 数组名 = new 数据类型[长度];
​
格式二: 数据类型 数组名[] = new 数据类型[长度];

解释: 上述两种定义方式只是写法不同, 并无其他区别

  • 方式二: 静态初始化(我们给定初始化值, 由系统指定长度)

格式一:数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3};     
​
格式二:数据类型[] 数组名 = {元素1, 元素2, 元素3};

解释: 上述两种定义方式只是写法不同, 并无其他区别.

数组中的每个元素都是有编号的, 且编号是从0开始的. 可以方便我们快速操作数组中的元素.

解释: 编号也叫索引(这个是最常见的念法), 下标、角标、index

数组中每个元素都有默认值.

package com.itheima;import java.util.Arrays;public class Test09 {public static void main(String[] args) {//1. 创建一个数组// 方式一: 动态指定, 构建数组的时候, 只需要指定长度即可int[] arr1 = new int[10];//int arr2[] = new int[10];// 方式二: 静态指定, 构建数组的时候, 直接指定数组中每一个元素的值//double[] arr3 = new double[]{3.5,6.2,1.3,4.5};double[] arr4 = {3.5,6.2,1.3,4.5};//2. 执行相关的操作// 2.1 如何获取数组中指定位置的元素: 在数组中, 通过索引下标的方式获取, 默认下标从0开始int e1 = arr1[2];System.out.println(e1);double e2 = arr4[3];System.out.println(e2);//double e3 = arr4[4]; // 注意: 当获取超出数组范围的数据时候, 会报出如下的错误: ArrayIndexOutOfBoundsException//System.out.println(e3);// 2.2 如何为数组中元素进行重新赋值arr1[2] = 10;System.out.println(arr1[2]);// 2.3 如何获取数组的长度:int length = arr4.length;System.out.println(length);// 2.4 遍历数组System.out.println("-------------------");// for循环for(int i = 0; i< arr4.length; i++){System.out.println(arr4[i]);}// while循环System.out.println("-------------------");int i = 0;while(i< arr4.length){System.out.println(arr4[i]);i++;}// 增强for: 迭代器   快捷键:  iter + 回车   此种方式与Python中For循环有一些相似了System.out.println("-------------------");for (double v : arr4) {System.out.println(v);}System.out.println("-------------------");// 2.5 将arr4中数据进行反转操作double[] arr5 = new double[arr4.length];for(int j = arr4.length-1; j >= 0; j--){arr5[arr4.length -1 - j] = arr4[j];}System.out.println(Arrays.toString(arr5)); // 将数组以字符串的形式打印出来// 演示 小错误:String[] arr6 = new String[10];String e3 = arr6[2]; // 注意 e3 = Nulle3.concat("xxx'"); // 注意: 使用 null 调用API, 会报: NullPointerException (空指针异常)}
}

3、了解数组的内存图介绍

内存是计算机中的重要原件,也是临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。

即: Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

四、方法

Python中的函数, 是将具有独立功能的代码块组织成为一个整体,使其成为具有特殊功能的代码集。Java中也是如此。只不过,Java中的函数也叫方法.

1、定义格式

修饰符 返回值的数据类型 方法名(参数类型 参数名1, 参数类型 参数名2) { //这里可以写多个参数//方法体;return 具体的返回值;  
}
​
修饰符: 目前记住这里是固定格式public static
​
返回值的数据类型: 用于限定返回值的数据类型的.注意: 1.返回值的数据类型是int类型, 则说明该方法只能返回int类型的整数.2.如果方法没有具体的返回值, 则返回值的数据类型要用void来修饰.
​
方法名: 方便我们调用方法.  定义的时候 要遵循小驼峰的命名法
​
参数类型: 用于限定调用方法时传入的数据的数据类型.例如: 参数类型是String类型, 说明我们调用方法时, 只能传入字符串.参数名: 用于接收调用方法时传入的数据的变量. 方法体: 完成特定功能的代码.return 返回值: 用来结束方法的, 并把返回值返回给调用者. 解释: 如果方法没有明确的返回值, 则return关键字可以省略不写.

注意事项:

示例:

需求一: 编写一个方法, 接收数组参数, 实现遍历数组的功能

需求二: 获取数组最值(例如: 最大值)

package com.itheima;public class Test10_method {// main 方法public static void main(String[] args) {int[] arr1 = {1,4,6,3,8,10,15};// 调用方法foreachArr(arr1); // 传入的参数为实参// 获取数组中最大值int maxNum = getMaxNum(arr1);System.out.println("最大值为:"+maxNum);}// 方法的定义public static void foreachArr(int[] arr){ // 定义参数为形参// 遍历数组for (int e : arr) {System.out.println(e);}}// 定义方法: 实现获取数组中最大值public static int getMaxNum(int[] arr){int max = arr[0];for (int e : arr) {if(e > max)  max = e;}return max;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_997724.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js作用

Node.js可以开发应用 开发服务器应用 开发工具类应用 开发桌面端应用

UOS 与 Ubuntu 命令行打开安装包界面,双击打开界面调用安装包界面展示

UOS 使用deepin-deb-installer安装程序 deepin-deb-installer xxxxxxx.deb & Ubuntu snap-store --local-filename /home/seven/wps-office_1xxxxxxx.deb &

卧室装修干货|榻榻米的4种类型及优缺点。福州中宅装饰,福州装修

卧室想要做榻榻米设计&#xff0c;不知道如何下手&#xff0c;这篇文章一定要看&#xff1a;常见榻榻米的类型有哪些&#xff1f;这些类型分别有哪些优缺点呢? 榻榻米是一种传统的日本床铺设计&#xff0c;近年来在现代室内设计中越来越受欢迎。它以低矮的床垫和简洁的线条为…

智慧灯杆-智慧城市照明现状分析(1)

城市道路照明是城市公共设施的重要组成部分,而随着城镇化建设的推进,城市道路照明路灯的数量越来越多,能耗越来越高,供电趋于紧张。此外,城市照明的维护工作和高昂的维护成本(人工控制、路灯巡查等),给城市管理造成了巨大的困难。管理部门需要更有效率的管理和节能方案…

【新版Hi3521DV200处理器性能】

新版Hi3521DV200处理器性能 Hi3521DV200是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;DVR产品应用开发的新一代专业SoC芯片。Hi3521DV200集成了ARM Cortex-A7四核处理器和性能强大的神经网络推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c;Hi352…

leetcode 热题 100_滑动窗口最大值

题解一&#xff1a; 双端队列&#xff1a;滑动窗口的本质是在窗口末尾添加一个元素&#xff0c;并移除头部的一个元素。对于添加的元素&#xff0c;直接和当前最大值比较即可&#xff0c;但对于移除的元素&#xff0c;如果移除的是原先的最大值&#xff0c;则需要重新遍历窗口寻…

甘特图资源视图和任务视图的区别

甘特图(Gantt chart)是一种常用的项目管理工具,用于直观地展示项目的进度和各项任务的时间安排。甘特图包含资源视图和任务视图两种视角。 一个项目的甘特图demo &#xff1a; https://zz-plan.com/share/87f1340286f1343ba5 资源视图主要显示项目中不同资源的分配和利用情况…

大数据Doris(六十七):Doris on ES在快手商业化的架构实现

文章目录 Doris on ES在快手商业化的架构实现 一、架构图

子查询与连表查询

子查询与连表查询 标签:数据库 子查询 mysql> explain select e.empno,e.ename,(select dname from dept d where e.deptno d.deptno) as dname from emp e where e.deptno 1; -------------------------------------------------------------------------------------…

c++ 11 新特性 不同数据类型之间转换函数之const_cast

一.不同数据类型之间转换函数const_cast介绍 const_cast是C11中引入的一种类型转换操作符&#xff0c;用于修改类型的const或volatile属性。const_cast的主要用途是移除对象的常量性&#xff0c;它是唯一具有此能力的C风格的转型操作符。在C11中&#xff0c;const_cast可以完成…

【uni-app小程序开发】实现一个背景色渐变的滑动条slider

最近做的一个用uni-app+vue2开发的微信小程序项目中要实现一个滑动进度控制条,如下图所示: 1. 滑动条需要渐变背景色 2. 滑块的背景色需要与当前位置滑动条的背景色一致(动态改变) 碰到这样的需求,我当然先是看看官方提供的slider组件和uView里的u-slider组件能不能满足…

华为OD机试 - 字符串统计(Java 2024 C卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&a…

LeetCode每日一题[c++]-找出美丽数组的最小和

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你两个正整数&#xff1a;n 和 target 。如果数组 nums 满足下述条件&#xff0c;则称其为 美丽数组 。 nums.length n.nums 由两两互不相同的正整数组成。在范围 [0, n-1] 内&#xff0c;不存在…

kmc密钥管理的基本功能是什么

KMC(密钥管理中心)在公钥基础设施中占据着举足轻重的地位&#xff0c;它是专门负责为CA(证书授权)系统提供一系列密钥服务的核心组件。这些服务包括但不限于密钥的生成、保存、备份、更新、恢复以及查询等&#xff0c;旨在解决分布式企业应用环境中大规模密码技术应用所带来的密…

最优算法100例之01-求数组中超过一半的数字

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的、都是整数,并且给定的数组总是存在…

获取C语言语句对应的汇编码和机器指令

借助IDE的调试功能 以CodeBlocks为例&#xff0c;先设置断点&#xff0c;然后点击红色三角形调试。 然后选择Debug➡ Debugging Windows➡Disassembly 就可以看到了 使用命令行 在工程文件中&#xff0c;一般可以找到一个.o文件。如果没有&#xff0c;可以先在program.c的目录下…

Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速度和更好的开发体验

Android APK体积优化指南&#xff1a;清理项目&#xff0c;打造更小的APK、更快的构建速度和更好的开发体验 在任何软件项目中&#xff0c;开发是一个持续的过程&#xff0c;随着时间的推移&#xff0c;代码库会变得越来越复杂。这种复杂性可能导致构建时间变慢、APK体积变大&…

【排序算法】深入理解快速排序算法:从原理到实现

目录 1. 引言 2. 快速排序算法原理 3. 快速排序的时间复杂度分析 4. 快速排序的应用场景 5. 快速排序的优缺点分析 5.1 优点&#xff1a; 5.2 缺点&#xff1a; 6. Java、JavaScript 和 Python 实现快速排序算法 6.1 Java 实现&#xff1a; 6.2 JavaScript 实现&#…

【机器学习300问】28、什么是决策树?

〇、两个预测任务 &#xff08;1&#xff09;任务一&#xff1a;银行预测偿还能力 当前&#xff0c;某银行正致力于发掘潜在的放贷用户。他们掌握了每位用户的三个关键特征&#xff1a;房产状况、婚姻状况以及年收入。此外&#xff0c;银行还拥有过往这些用户的债务偿还能力的…

基于单片机的晾衣架控制系统设计

目 录 摘 要 I Abstract II 引 言 1 1 系统方案设计 3 1.1 系统方案论证 3 1.2 系统工作原理 4 2 硬件设计 5 2.1 单片机 5 2.2 按键设计 7 2.3 光线检测模块 8 2.4 雨滴检测模块 9 2.5 电压比较器 10 2.6 微动步进电动机 11 2.7 硬件电路原理图 12 3 系统主要软件设计 14 3.1…