当前位置: 首页 > news >正文

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)

  • CMD常见命令
  • 配置环境变量
  • JDK的下载和安装
  • 变量
      • 变量的声明和初始化
        • 声明变量
        • 初始化变量
      • 变量的类型
      • 变量的作用域
      • 变量命名规则
      • 示例代码
  • 键盘键入
      • 使用 `Scanner` 类读取输入
        • 步骤
        • 示例代码
      • 常用方法
      • 处理输入异常
        • 示例代码
      • 使用 `BufferedReader` 读取输入
        • 示例代码
      • 选择合适的输入方法
  • IDEA项目结构介绍

CMD常见命令

在这里插入图片描述

配置环境变量

为什么要配置环境变量?
我们想要在任意的目录下都可以打开指定的软件。就可以把软件的路径配置到环境变量中。

JDK的下载和安装

Java JDK下载安装及环境配置超详细图文教程
下载完成后打开环境所在文件夹,可以看到一下新生成的各种文件,下图是他们对应的内容和功能。
在这里插入图片描述

在这里插入图片描述

变量

在Java编程中,变量是用于存储数据的容器。每个变量都有一个特定的数据类型和一个名称。以下是关于Java变量的详细介绍:

变量的声明和初始化

声明变量

在Java中,声明一个变量需要指定变量的数据类型和名称。例如:

int age;
double salary;
String name;
初始化变量

声明变量后,你可以为其赋值。你也可以在声明的同时进行初始化:

int age = 25;
double salary = 50000.0;
String name = "John Doe";

变量的类型

Java中的变量可以是以下几种类型:

  1. 基本数据类型(Primitive Types)
    • byte:8位整数,范围:-128到127。
    • short:16位整数,范围:-32,768到32,767。
    • int:32位整数,范围:-231到231-1。
    • long:64位整数,范围:-263到263-1。
    • float:32位单精度浮点数。
    • double:64位双精度浮点数。
    • char:16位字符,表示单个Unicode字符。
    • boolean:布尔值,只有两个取值:truefalse

整数和小数取值范围大小关系:
double > float > long > int > short > byte

byte a = 100;
short b = 10000;
int c = 100000;
long d = 100000L;
float e = 10.5f;
double f = 20.5;
char g = 'A';
boolean h = true;

如果要定义long类型的变量
在数据值的后面需要加一个L作为后缀
L可以是大写的,也可以是小写的。
建议:使用大写。

注意点:定义float类型变量的时候
数据值也需要加一个F作为后缀

  1. 引用数据类型(Reference Types)
    • 类(Class)
    • 接口(Interface)
    • 数组(Array)
String str = "Hello, World!";
int[] numbers = {1, 2, 3, 4, 5};

变量的作用域

变量的作用域决定了变量在哪些部分的代码中是可见的和可访问的。主要有以下几种作用域:

  1. 局部变量(Local Variables)
    局部变量是在方法、构造函数或代码块中声明的变量。它们只能在声明它们的块中访问。

    public void myMethod() {int x = 10; // 局部变量System.out.println(x);
    }
    
  2. 成员变量(Instance Variables)
    成员变量是在类中声明的变量,但在方法、构造函数或代码块之外。它们在类的每个实例中都有一个副本。

    public class MyClass {int x = 5; // 成员变量public void display() {System.out.println(x);}
    }
    
  3. 类变量(Class Variables)
    类变量使用static关键字声明,它们在类的所有实例中共享一个副本。

    public class MyClass {static int y = 10; // 类变量public void display() {System.out.println(y);}
    }
    

变量命名规则

  1. 变量名必须以字母(a-z或A-Z)、美元符号($)或下划线(_)开头。
  2. 变量名可以包含字母、数字、美元符号和下划线,但不能包含空格。
  3. 变量名区分大小写(ageAge是不同的变量)。
  4. 避免使用Java关键字作为变量名。
    小驼峰命名法:方法、变量
    规范1:标识符是-一个单词的时候,全部小写
    范例1: name
    规范2:标识符由多个单词组成的时候,第一个单
    词首字母小写,其他单词首字母大写.
    范例2: firstName

大驼峰命名法:类名
规范1:标识符是一一个单词的时候,首字母大写
范例1: Student
规范2:标识符由多个单词组成的时候,每个单词
的首字母大写
范例2: GoodStudent

示例代码

public class VariableExample {// 成员变量int instanceVar = 50;// 类变量static int staticVar = 100;public void display() {// 局部变量int localVar = 25;System.out.println("局部变量: " + localVar);System.out.println("成员变量: " + instanceVar);System.out.println("类变量: " + staticVar);}public static void main(String[] args) {VariableExample example = new VariableExample();example.display();}
}

键盘键入

在Java中,可以通过多种方式从键盘读取用户输入。最常用的方式是使用 Scanner 类。以下是详细的步骤和示例代码:

使用 Scanner 类读取输入

步骤
  1. 导入 Scanner

    • 在程序的开始部分导入 java.util.Scanner 包。
  2. 创建 Scanner 对象

    • 使用 System.in 作为参数创建 Scanner 对象。
//1.导包,找到Scanner这个类在哪
//书写要注意:要写在类定义的上面
import java.util.Scanner;public class HelloWorld
{//主入口
public static void main (String[] agrs) 
{	//2、创建对象,表示我现在准备要用Scanner这个类Scanner sc=new Scanner(System.in);//3、接收数据并赋值给i;int i=sc.nextInt();System. out . println(i);
}
}
  1. 读取输入
    • 使用 Scanner 类的各种方法读取不同类型的输入,例如 nextLine() 读取字符串,nextInt() 读取整数,nextDouble() 读取浮点数等。
示例代码
import java.util.Scanner;public class UserInputExample {public static void main(String[] args) {// 创建 Scanner 对象Scanner scanner = new Scanner(System.in);// 读取字符串输入System.out.print("请输入您的名字: ");String name = scanner.nextLine();System.out.println("您的名字是: " + name);// 读取整数输入System.out.print("请输入您的年龄: ");int age = scanner.nextInt();System.out.println("您的年龄是: " + age);// 读取浮点数输入System.out.print("请输入您的体重: ");double weight = scanner.nextDouble();System.out.println("您的体重是: " + weight);// 关闭 Scanner 对象scanner.close();}
}

常用方法

  • nextLine(): 读取整行输入(包括空格)。
  • next(): 读取下一个单词(以空格、换行或制表符为分隔)。
  • nextInt(): 读取整数。
  • nextDouble(): 读取双精度浮点数。
  • nextBoolean(): 读取布尔值(truefalse)。
  • nextFloat(): 读取单精度浮点数。
  • nextLong(): 读取长整数。

处理输入异常

在读取输入时,可能会遇到输入不匹配的异常(例如用户输入非整数时调用 nextInt())。可以使用异常处理来捕获和处理这些情况。

示例代码
import java.util.Scanner;
import java.util.InputMismatchException;public class UserInputExampleWithExceptionHandling {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);try {System.out.print("请输入您的年龄: ");int age = scanner.nextInt();System.out.println("您的年龄是: " + age);} catch (InputMismatchException e) {System.out.println("输入的不是一个有效的整数!");}scanner.close();}
}

使用 BufferedReader 读取输入

除了 Scanner 类,还可以使用 BufferedReaderInputStreamReader 组合来读取输入。

示例代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class BufferedReaderExample {public static void main(String[] args) {// 创建 BufferedReader 对象BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));try {// 读取字符串输入System.out.print("请输入您的名字: ");String name = reader.readLine();System.out.println("您的名字是: " + name);// 读取整数输入System.out.print("请输入您的年龄: ");int age = Integer.parseInt(reader.readLine());System.out.println("您的年龄是: " + age);} catch (IOException e) {System.out.println("读取输入时发生错误!");} catch (NumberFormatException e) {System.out.println("输入的不是一个有效的整数!");}}
}

选择合适的输入方法

  • Scanner: 更加直观和简单,适合大多数情况下的输入读取。
  • BufferedReader: 更加高效,适合读取大量数据或对性能要求较高的场合。

通过这些方法,你可以在Java程序中轻松实现从键盘读取用户输入的功能。

IDEA项目结构介绍

【附安装包】IDEA下载、安装、配置与使用(保姆级教程)

四层结构
在这里插入图片描述

相关文章:

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA) CMD常见命令配置环境变量JDK的下载和安装变量变量的声明和初始化声明变量初始化变量 变量的类型变量的作用域变量命名规则示例代码 键盘键入使用 Scanner 类读取输入步骤示例代码 常用方法处…...

Redis的安装配置及IDEA中使用

目录 一、安装redis,配置redis.conf 1.安装gcc 2.将redis的压缩包放到指定位置解压 [如下面放在 /opt 目录下] 3.编译安装 4.配置redis.conf文件 5.开机自启 二、解决虚拟机本地可以连接redis但是主机不能连接redis 1.虚拟机网络适配器网络连接设置为桥接模式…...

ubuntu 物理内存爆炸而不使用虚拟内存的问题

ubuntu 物理内存不足时有时候会不去使用虚拟内存,让虚拟内存空闲,而直接关闭占用内存的进程,如果在进行模型测试或训练时,就会导致训练或测试进程被杀死。 1. 修改 swappiness: cat /proc/sys/vm/swappiness sudo sysc…...

Python实现音频均衡和降噪

使用librosa库来读取音频文件,音频处理是一个复杂过程,这里只是简单的进行降噪和均衡。 import librosa import soundfile as sf def improve_audio_quality(input_file, output_file): # 读取音频文件 audio, sample_rate librosa.load(input_…...

【JavaScript 算法】贪心算法:局部最优解的构建

🔥 个人主页:空白诗 文章目录 一、贪心算法的基本概念贪心算法的适用场景 二、经典问题及其 JavaScript 实现1. 零钱兑换问题2. 活动选择问题3. 分配问题 三、贪心算法的应用四、总结 贪心算法(Greedy Algorithm)是一种逐步构建解…...

Azcopy Sync同步Azure文件共享

文章目录 Azcopy Sync同步文件共享一、工作原理二、安装 AzCopy在 Windows 上在 Linux 上 三、资源准备1. 创建源和目标 Azure 存储账户2. 创建源和目标文件共享3. 确定路径4. 生成源和目的存储账户的共享访问签名(SAS)令牌配置权限示例生成的 URL 四、A…...

单例模式 饿汉式和懒汉式的区别

单例模式(Singleton Pattern)是设计模式中最简单、最常见、最容易实现的一种模式。它确保一个类仅有一个实例,并提供一个全局访问点。单例模式主要有两种实现方式:饿汉式(Eager Initialization)和懒汉式&am…...

Python中的模块和包的定义以及如何在Python中导入和使用它们

在Python中,模块(Module)和包(Package)是组织代码以便重用和共享的基本单元。它们使得Python代码更加模块化,易于管理和维护。 模块(Module) 模块是一个包含Python代码的文件&…...

设计模式使用场景实现示例及优缺点(结构型模式——组合模式)

结构型模式 组合模式(Composite Pattern) 组合模式使得用户对单个对象和组合对象的使用具有一致性。 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元…...

《系统架构设计师教程(第2版)》第11章-未来信息综合技术-06-云计算(Cloud Computing) 技术概述

文章目录 1. 相关概念2. 云计算的服务方式2.1 软件即服务 (SaaS)2.2 平台即服务 (PaaS)2.3 基础设施即服务 (IaaS)2.4 三种服务方式的分析2.4.1 在灵活性2.4.2 方便性方 3. 云计算的部署模式3.1 公有云3.2 社区云3.3 私有云3.4 混合云 4. 云计算的发展历程4.1 虚拟化技术4.2 分…...

网络安全工作者如何解决网络拥堵

网络如同现代社会的血管,承载着信息的血液流动。然而,随着数据流量的激增,网络拥堵已成为不容忽视的问题,它像是一场数字世界的交通堵塞,减缓了信息传递的速度,扰乱了网络空间的秩序。作为网络安全的守护者…...

电脑显示mfc140u.dll丢失的修复方法,总结7种有效的方法

mfc140u.dll是什么?为什么电脑会出现mfc140u.dll丢失?那么mfc140u.dll丢失会给电脑带来什么影响?mfc140u.dll丢失怎么办?今天详细给大家一一探讨一下mfc140u.dll文件与mfc140u.dll丢失的多种不同解决方法分享! 一、mfc…...

ospf的MGRE实验

第一步:配IP [R1-GigabitEthernet0/0/0]ip address 12.0.0.1 24 [R1-GigabitEthernet0/0/1]ip address 21.0.0.1 24 [R1-LoopBack0]ip address 192.168.1.1 24 [ISP-GigabitEthernet0/0/0]ip address 12.0.0.2 24 [ISP-GigabitEthernet0/0/1]ip address 21.0.0.2 24…...

开发指南047-前端模块版本

平台前端框架内置了一个文件version.vue <template> <div> <br> 应用名称: {{name}} <br> 当前版本&#xff1a;{{version}} <br> 服务网关: {{gateway}} </div> </template> <scrip…...

c#中的字符串方法

Concat() String.Concat(字符串1 字符串n) 字符串拼接 Contains () 字符串1.Contains(字符串2) 字符串1是否包含字符串2返回布尔值 CopyTo() 字符串1.CopyTo(0,空数组,0,5); 从哪开始 复制到哪里 从哪开始存 存储的个数 tartsWith 字符串1.StartsWith("字符串") 以…...

成像光谱遥感技术中的AI革命:ChatGPT

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力&#xff0c;ChatGPT在遥感中的应用&#xff0c;人工智能在…...

学习分布式事务遇到的小bug

一、介绍Seata 在处理分布式事务时我用到是Seata&#xff0c;Seata的事务管理中有三个重要的角色&#xff1a; TC (Transaction Coordinator) - 事务协调者&#xff1a;维护全局和分支事务的状态&#xff0c;协调全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器…...

ElasticSearch学习之路

前言 为什么学ElasticSearch&#xff1f; 数据一般有如下三种类型&#xff1a; 结构化数据&#xff0c;如&#xff1a;MySQL的表&#xff0c;一般通过索引提高查询效率非结构化数据&#xff0c;如&#xff1a;图片、音频等不能用表结构表示的数据&#xff0c;一般保存到mong…...

(C++二叉树02) 翻转二叉树 对称二叉树 二叉树的深度

226、翻转二叉树 递归法&#xff1a; 交换两个结点可以用swap()方法 class Solution { public:TreeNode* invertTree(TreeNode* root) {if(root NULL) return NULL;TreeNode* tem root->left;root->left root->right;root->right tem;invertTree(root->l…...

高阶面试-mongodb

mongodb的特点&#xff0c;为什么使用他 nosql数据库&#xff0c;前端到后端到数据库&#xff0c;都是json&#xff0c;无模式&#xff0c;数据模型发生变更&#xff0c;不需要强制更新表结构&#xff0c;可以快速实现需求迭代。 天生分布式&#xff0c;高可用&#xff0c;处…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...