【Java伴学笔记】Day-02 变量|计算机的存储方式|数据类型|标识符|键盘输入流

一、变量

在Java中,变量用于存储数据值,可以是数字、文本或其他类型的信息。Java中的变量必须声明后才能使用,并且每个变量都有特定的类型。下面是一些基本的变量使用示例:

  1. 声明一个整型变量并赋值
int myNumber;
myNumber = 10;

或者可以在一行中完成声明和赋值:

int myNumber = 10;
  1. 声明一个浮点型变量并赋值
double myDouble = 10.5;
  1. 声明一个字符串变量并赋值
String myString = "Hello, world!";
  1. 声明一个布尔型变量并赋值
boolean myBoolean = true;
  1. 使用变量进行计算
int a = 5;
int b = 10;
int sum = a + b;
System.out.println("The sum is: " + sum);
  1. 变量的作用域
public class Main {public static void main(String[] args) {int x = 10; // x可以在main方法内部访问System.out.println("Value of x is: " + x);}public static void someMethod() {// System.out.println("Value of x is: " + x); // 这行代码会报错,因为x的作用域仅限于main方法}
}

在上面的例子中,变量x只能在main方法内部访问,它不属于someMethod方法的作用域。
7. 常量
在Java中,使用final关键字可以声明一个常量,表示这个变量的值在初始化之后不能更改。

final double PI = 3.14159;
  1. 静态变量
    静态变量属于类,而不是类的某个具体实例。它们可以在类的所有实例之间共享。
public class MyClass {public static int staticVariable = 10;public static void main(String[] args) {System.out.println("Value of staticVariable is: " + MyClass.staticVariable);}
}

这些例子展示了在Java中如何声明、初始化和修改变量。根据您的具体需求,您可以选择不同的变量类型和作用域。

变量相关的注意事项

  1. 只能存储一个值。
  2. 变量名不允许重复定义。
  3. 一条语句可以定义多个变量。
  4. 变量在使用前一定要赋值。
  5. 变量的作用域范围。

二、计算机的存储方式

关于进制

二进制:Binary
十进制:Decimal
八进制:Octal
十六进制:Hexadecimal

请添加图片描述

十进制转为其他进制的方法

请添加图片描述

编码

请添加图片描述

图片的存储

请添加图片描述

声音数据

请添加图片描述

三、数据类型

在 Java 中,数据类型分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。

基本数据类型

Java 有 8 种基本数据类型,它们分别是:

  1. byte:8 位有符号整数,取值范围从 -128 到 127。
  2. short:16 位有符号整数,取值范围从 -32,768 到 32,767。
  3. int:32 位有符号整数,取值范围从 -2^31 到 2^31-1。
  4. long:64 位有符号整数,取值范围从 -2^63 到 2^63-1。
  5. float:32 位 IEEE 754 浮点数。
  6. double:64 位 IEEE 754 浮点数。
  7. char:16 位 Unicode 字符,取值范围从 ‘\u0000’(即为 0)到 ‘\uffff’(即为 65,535)。
  8. boolean:表示逻辑值 true 和 false。

示例代码

public class Main {  public static void main(String[] args) {  // byte  byte b = 10;  System.out.println(b);  // short  short s = 20;  System.out.println(s);  // int  int i = 30;  System.out.println(i);  // long  long l = 999999999999999999L;  System.out.println(l);  // float  float f = 3.14f;  System.out.println(f);  // double  double d = 3.14;  System.out.println(d);;  // char  char c = 'a';  System.out.println(c);  }  
}

在 Java 中,当你定义一个 long 类型的变量并赋值时,如果该整数的值超出了 int 类型的范围(-2^31 到 2^31-1),那么你需要明确地告诉编译器这是一个 long 类型的值。这是因为整数常量在 Java 中默认是 int 类型的,除非你用某种方式指示编译器将其视为 long 类型。

为了指示一个整数是 long 类型,你可以在整数值后面加上字母 L(大小写均可,Ll),这样做是为了避免整数溢出并提供清晰的代码可读性。例如:

long num = 123456789012345L; // 正确,指定为 long 类型

如果你不加上 L,并且数值超出了 int 的范围,编译器会报错,因为它无法将大数值直接赋值给 int 类型的变量。例如:

int num = 123456789012345; // 错误,数值超出 int 范围

在上面的例子中,你需要将数值后面的 L 添加到整数值来修正错误:

long num = 123456789012345L; // 正确,指定为 long 类型

需要注意的是,虽然 long 类型也可以接受小数,但是在这种情况下,小数会被视为 double 类型,而不是 long 类型。如果你想要将一个精确的小数赋值给 long 类型变量,你需要对其进行类型转换。

引用数据类型

引用数据类型指向一个对象,它们包括:

  1. 类(Class):例如 String、Integer、System 等。
  2. 接口(Interface):一种只含有抽象方法和静态常量的引用类型。
  3. 数组(Array):一种可以存储多个同类数据项的容器。
  4. 枚举(Enum):在 Java 5 中引入,用于定义一组固定的常量值。
    引用数据类型默认值为 null,表示没有引用任何对象。
    基本数据类型和引用数据类型的主要区别在于:
  • 基本数据类型的变量直接存储值,而引用数据类型的变量存储的是对象的引用(内存地址)。
  • 基本数据类型在栈内存中分配空间,而引用数据类型的对象在堆内存中分配空间,引用(引用变量的值)在栈内存中。
  • 基本数据类型的赋值是值的复制,而引用数据类型的赋值是引用的复制。
  • 基本数据类型参与运算时是值参与,而引用数据类型参与运算时通常是对对象的引用参与。

四、标识符

什么是标识符?

在编程语言中,标识符(Identifier)是程序员定义的用来标识变量、函数、类、模块或其他用户定义的项目名称的字符串。

命名规则

  1. 标识符必须以字母(A-Z,不区分大小写)或下划线开头。
  2. 标识符不能是保留字或关键字。
  3. 标识符通常是大小写敏感的(如 Java、C++、C# 等)。
  4. 标识符不能包含空格或其他标点符号(除下划线和美元符号外)。
  5. 标识符的长度通常有限制,但这个限制因语言而异。

常用命名法

在编程中,常用的命名法有几种,它们旨在提高代码的可读性和一致性。以下是一些常见的命名法:

  1. 驼峰命名法(CamelCase)
    • 小驼峰命名法(lowerCamelCase):第一个单词以小写字母开始,后续单词的首字母大写。常用于变量名、函数名和对象属性。
      示例:firstName, lastName, calculateAge
    • 大驼峰命名法(UpperCamelCase):第一个单词以大写字母开始,后续单词的首字母大写。常用于类名、接口名和枚举名。
      示例:Person, LinkedList, HttpRequest
  2. 蛇形命名法(Snake Case)
    • 所有单词都用下划线分隔,并且所有字母都是小写。常用于Python和一些系统级别的编程语言。
      示例:first_name, last_name, calculate_age
  3. 帕斯卡命名法(Pascal Case)
    • 与大驼峰命名法相同,所有单词的首字母都大写。
      示例:Person, LinkedList, HttpRequest
  4. 匈牙利命名法(Hungarian Notation)
    • 在变量名前加上一个或多个前缀,以指示变量的类型或用途。这种命名法在现代编程中已经不太常见。
      示例:szName(字符串名称),nAge(整型年龄)
  5. 下划线命名法(Underscore Case)
    • 类似于蛇形命名法,但是使用单个下划线来分隔单词,并且通常用于私有变量或函数。
      示例:_first_name, _last_name, _calculate_age
  6. 大写下划线命名法(SCREAMING_SNAKE_CASE)
    • 所有单词都用下划线分隔,并且所有字母都是大写。常用于常量名。
      示例:MAX_VALUE, TOTAL_COUNT
      不同的编程语言和开发社区可能会偏好不同的命名法。在选择命名法时,最重要的是保持一致性,并遵循你所使用的编程语言或项目的标准约定。

五、键盘输入流

在Java中,实现键盘输入有多种方式,以下是一些常见的方法:

使用 Scanner

Scanner 类是Java标准库中用于获取用户输入的常用类。以下是一个简单的例子:

// 导包 -- 寻找 Scanner 类
import java.util.Scanner;
public class Main {public static void main(String[] args) {// 创建对象 使用类 Scanner 实例化 对象 scannerScanner scanner = new Scanner(System.in);System.out.print("请输入一个数字:");// 接收数据int num = scanner.nextInt();System.out.println("您输入的数字是:" + num);scanner.close();}
}

补充知识

Java学习九—常用包(类)之java.util包 http://t.csdnimg.cn/Kg0BA

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

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

相关文章

企业如何选择渲染农场?渲染100邀请码1a12

渲染农场能降低企业成本,帮助企业更好的服务客户,那么如何选择渲染农场呢?又有什么标准?这次我们就来看下。 1、渲染性能 渲染性能是衡量农场优劣的重要指标,性能越好农场越优质,性能主要包括渲染速度、稳…

一文快速接入银行卡识别API

银行卡识别API 能通过机器学习和图像识别技术来解析银行卡相关信息,根据用户上传卡片自动识别内容,返回该卡的卡号、所属银行及银行类型等信息。可以在用户需要输入银行卡等相关信息时使用该功能,帮助用户快速输入正确信息,简化用…

VPX3U架构+GPU景嘉微:基于飞腾处理器的全国产化刀片式板卡

近期承接了客户一个全国产的VPX3U的项目。搭载的飞腾FT2000系列处理器的VPX3U板卡。服务于某某部门。这款产品拥有全国产化及自主可控的硬件技术。以下是基于飞腾FT2000处理器的VPX3U主板的一些特点: ①飞腾FT2000系列处理器 处理器:板卡兼容飞腾FT2000…

【触摸屏】【红十字会学习系统】功能模块:视频 + AI拍照合成

项目背景 提升公众急救能力:确保每个人都能在紧急情况下采取正确的急救措施,减少伤害,挽救生命。培养人道主义价值观:通过教育和培训,传播红十字精神,促进社会对弱势群体的关注与支持。建立社区响应网络&a…

【Linux】进程间通信(IPC)——匿名管道

目录 为什么要进行进程间通信? 匿名管道的具体实现 pipe创建内存级文件形成管道 pipe的简单使用 匿名管道的四种情况和五种特性 四种情况 五种特性 PIPE_BUF 命令行管道 | 功能代码:创建进程池 为什么要进行进程间通信? 1.数据传输&…

第五天安全笔记(持续更新)

第五天防御笔记 NAT种类: 静态NAT动态NATNapt 特点: 一对多----easy ip 多对多的napt 服务器的映射关系: 1.源NAT----基于IP地址进行转换,包括静态NAT,动态NAT,以及NAPT 2.目标NAT---基于目标IP地址进行转换&a…

[笔记.AI]AI Agent理解(LLM AI Agent)

前几天看到一个图,感觉能帮助理解 AI Agent 的基本思想和原理,特摘过来备忘。顺道加上自己目前对相关部分的理解,不一定对,权当做个记录。 另外,专门查了下图的来源,应该是源自 Lilian Weng 的博客文章《…

Android Studio启动报错:The emulator process for AVD Pixel_5_API_30 has terminated

Android Studio启动AVD报错: The emulator process for AVD Pixel_5_API_30 has terminated. 原因:安装时使用自定义安装后,修改了默认安装目录。 而avd文件默认在 C:\Users\用户名\.android 目录下。所以导致打开AVD时报错。 解决方法&am…

SadTalker数字人服务器部署

一、单独SadTalker部署 git clone https://github.com/OpenTalker/SadTalker.gitcd SadTalker conda create -n sadtalker python3.8conda activate sadtalkerpip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://download.pyto…

快速上手绿联私有云UGOS Pro系统Docker | 安装/部署/管理/docker-compose一网打尽

快速上手绿联私有云UGOS Pro系统Docker | 安装/部署/管理/docker-compose一网打尽 哈喽小伙伴们好,我是Stark-C~ 因为众所周知的原因,关于最新发布的绿联私有云UGOS Pro系统咱这里也不过多说,不过有一点不可否认:新系统专业性更…

代码随想录第51天|单调栈

42. 接雨水 参考 思路1: 暴力解法 找每个柱子的左右高度超时 O(N^2) 思路2: 双指针优化 class Solution { public:int trap(vector<int>& height) {vector<int> lheight(height.size(), 0);vector<int> rheight(height.size(), 0);lheight[0] hei…

nginx的正向与反向代理

正向代理与反向代理的区别 虽然正向代理和反向代理都涉及代理服务器接收客户端请求并向服务端转发请求&#xff0c;但它们之间存在一些关键的区别&#xff1a; 正向代理&#xff1a; 在正向代理中&#xff0c;代理服务器代表客户端向服务器发送请求&#xff0c;并将服务…

ctfshow-web入门-php特性(web104-web108)

目录 1、web104 2、web105 3、web106 4、web107 5、web108 1、web104 需要传入的 v1 和 v2 进行 sha1 加密后相等。 解法1&#xff1a; 这里都没有判断 v1 和 v2 是否相等&#xff0c;我们直接传入同样的内容加密后肯定也一样。 ?v21 post&#xff1a; v11 拿到 flag…

SQL 多变关联使用子查询去重

不去重状态 select a.*,b.recon_amt from free_settlement_first aleft join free_settlement_second b on a.settlement_first_id b.settlement_first_id 有2条数据出现了重复 使用子查询去重 select a.*,b.recon_amt from free_settlement_first aleft join free_settlem…

Vue 最新动态!!!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 当Vue 3.4在六个月前发布时,整个前端开发社区都为之振奋。这次更新不仅带来了许多新特性,还解决了许多开发过程中遇到的痛点。 然而,时间飞逝,随着我在项目中不断应用这些新特性,逐渐积累了很多宝贵的经验和心得。 今…

一篇学通Axios

Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于浏览器和 node.js 环境。它提供了一种简单易用的方式来发送 HTTP 请求&#xff0c;并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换 JSON 数据等功能。 Axios 名字的由来 Axios 的名字来源于希腊神话中的…

Linux操作系统入门(适用java软件开发)

1.什么是操作系统? 操作系统&#xff08;Operating System&#xff0c;简称 OS&#xff09;是一种系统软件&#xff0c;它管理和控制计算机硬件与软件资源&#xff0c;为用户和应用程序提供一个接口和环境来访问计算机系统的服务和功能。操作系统的主要目标是提供一个方便、有…

探索性数据分析:使用Python与Pandas库实现数据洞察

探索性数据分析&#xff1a;使用Python与Pandas库实现数据洞察 引言 在当今数据驱动的时代&#xff0c;数据分析已成为决策制定、策略规划和业务优化的关键环节。无论是商业智能、金融分析还是市场研究&#xff0c;数据分析都扮演着至关重要的角色。Pandas库作为Python生态系统…

微积分-导数8(线性近似和微分)

线性近似 我们已经看到&#xff0c;在切点附近&#xff0c;曲线与其切线非常接近。事实上&#xff0c;通过放大可微函数图上的某一点&#xff0c;我们注意到图形看起来越来越像它的切线&#xff08;见图&#xff09;。这一观察是找到函数近似值的方法的基础。 这个想法是&am…

monodepth代码与原理对照实现

先实现demomonodepth/monodepth_simple.py at master mrharicot/monodepth GitHub import os os.environ[TF_CPP_MIN_LOG_LEVEL]0 这行代码是为tensorflow设置环境变量TF_CPP_MIN_LOG_LEVEL,用来控制tensorflow c后端输出的日志级别。0就是输出所有级别的日志信息。包括(调…