当前位置: 首页 > 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;处…...

Envoy 详解:云原生时代的高性能网络代理

Envoy 详解&#xff1a;云原生时代的高性能网络代理 文章目录Envoy 详解&#xff1a;云原生时代的高性能网络代理前言核心特性架构与设计哲学核心组件与术语xDS 协议&#xff1a;动态配置的基石主要使用场景与其他代理的对比&#xff08;Envoy vs Nginx&#xff09;部署模式与未…...

【技术解读】xNIDS:如何为深度学习入侵检测系统“翻译”可执行的主动防御规则?

1. 深度学习入侵检测的"黑盒困境"&#xff1a;为什么需要翻译器&#xff1f; 第一次接触深度学习入侵检测系统&#xff08;DL-NIDS&#xff09;时&#xff0c;我被它的检测准确率惊艳到了——某些场景下能达到99%以上的识别率。但当我试图把它部署到实际生产环境时&a…...

告别卡顿!用ZLMRTCClient.js和Vue3打造超低延迟WebRTC监控播放器(附完整代码)

超低延迟WebRTC监控播放器&#xff1a;基于ZLMRTCClient.js与Vue3的工程实践 在安防监控、智慧园区等对实时性要求极高的场景中&#xff0c;传统流媒体方案如HLS或FLV往往面临3-5秒甚至更高的延迟。这种延迟在关键场景下可能导致严重后果——当监控画面显示"一切正常"…...

过拟合和欠拟合

模型容量可以视作模型的复杂度。如果数据比较简单&#xff0c;却选择了模型容量高的&#xff08;复杂模型&#xff09;&#xff0c;可能会出现过拟合&#xff08;underfitting&#xff09;如果数据比较复杂&#xff0c;却选择类简单模型&#xff0c;可能会出现欠拟合&#xff0…...

从零构建Sora 2-DaVinci双引擎协同工作站:Intel Xeon W9-3400系列+RTX 6000 Ada专属散热/供电/PCIe拓扑配置清单(附实测带宽衰减曲线)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Sora 2与DaVinci整合的架构演进与协同范式 Sora 2作为新一代多模态时序生成引擎&#xff0c;其核心能力已从单向视频合成跃迁至具备物理感知、因果推理与跨模态对齐的闭环生成范式。DaVinci则持续强化其在专业…...

从SD销售订单到MM采购入库:一条龙打通SAP核心业务流的BAPI实战

SAP跨模块BAPI集成实战&#xff1a;从销售订单到采购入库的自动化业务流 当企业规模扩张到一定程度&#xff0c;各业务部门之间的数据孤岛问题就会成为效率提升的最大障碍。想象一下这样的场景&#xff1a;销售部门接单后&#xff0c;采购团队需要手动创建采购需求&#xff0c;…...

端侧AI算力瓶颈与优化企业格局解析

一、引言&#xff1a;端侧AI的发展困境与研究核心1.1 端侧AI的产业价值与普及现状端侧AI作为边缘计算的核心落地形态&#xff0c;正深度渗透工业制造、智能终端、车载电子、安防监控等领域。据IDC数据&#xff0c;2025年全球端侧AI芯片市场规模突破180亿美元&#xff0c;工业端…...

Auto-Lianliankan:基于Python图像识别的连连看自动化终极方案

Auto-Lianliankan&#xff1a;基于Python图像识别的连连看自动化终极方案 【免费下载链接】Auto-Lianliankan 基于python图像识别实现的连连看外挂&#xff0c;可实现QQ连连看秒破 项目地址: https://gitcode.com/gh_mirrors/au/Auto-Lianliankan 你是否曾经在玩连连看游…...

基于 SOFAJRaft + Spring Boot 构建高可用 KV 存储集群(完整源码)

基于 SOFAJRaft + Spring Boot 构建高可用 KV 存储集群(完整源码) 引言 在分布式系统中,一致性 是核心难题。Raft 是比 Paxos 更易于理解的共识算法,而 SOFAJRaft 是蚂蚁集团开源的 Java 高性能 Raft 实现。 本文带你从零构建一个 3 节点高可用 KV 存储集群,包含完整源码、…...

金蝶发布企业AI操作系统“灵基”,引领企业进入AI原生时代

5月20日&#xff0c;金蝶AI峰会2026在深圳成功举办&#xff0c;本次峰会通过线上线下同步召开&#xff0c;汇聚产学研先锋力量&#xff0c;共探智能未来。会上&#xff0c;金蝶正式发布企业AI操作系统“灵基(Lingee)”。这不仅是金蝶AI战略的全面跃迁&#xff0c;更是驱动企业管…...