Java基础复习笔记 ​第02章:变量与进制

1. 关键字(keyword)

  • 关键字:被Java语言赋予特殊含义的字符串。
  • 注意点:关键字都是小写的!
  • Java规范了50个关键字(包含了goto、const两个保留字)
    • 额外的三个字面量true、false、null虽然不是关键字,但是我们也把他们看做是关键字。

2. 标识符

  • 凡是可以自己命名的地方,都是标识符。
  • 标识符都有哪些位置?类名、变量名、包名、方法名、接口名、常量名等
  • 标识符的命名规则

(如果不遵守,编译不通过。要求大家遵守)

由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。

  • 标识符的命名规范

(如果不遵守规范,不影响程序的编译和运行。建议大家遵守,否则容易被鄙视)

包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
例如:HelloWorld,String,System等

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
例如:age,name,bookName,main,binarySearch,getName

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY

  • 标识符在声明时,要见名知意!

3. 变量的基本使用

  1. 内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
  2. 变量的构成包含三个要素:数据类型 变量名 变量值
  3. Java中变量声明的格式:数据类型 变量名 = 变量值;
  4. Java是一门强类型的语言。即每一个变量都规定了具体的类型。
  5. 使用变量注意:
    • Java中每个变量必须先声明,后使用。
    • 使用变量名来访问这块区域的数据。
    • 变量的作用域:其定义所在的一对{ }内。
    • 变量只有在其作用域内才有效。出了作用域,变量不可以再被调用。
    • 同一个作用域内,不能定义重名的变量。

4. 基本数据类型的变量

变量按照数据类型来分:

基本数据类型:整型(byte \ short \ int \ long ) 、浮点型(float \ double ) 、字符型char 、布尔型boolean引用数据类型:类(class)、接口(interface)、数组(array); 注解(annotation)、枚举(enum)、记录(record)
  • 整型变量
//1. 整型的使用:
//byte(1个字节=8bit,-128~127) \ short(2字节) \ int(4字节) \ long(8字节)byte b1 = 12;b1 = 127;
//①声明变量以后,给变量赋的值必须在变量类型所允许的范围内变化。
//b1 = 128;//因为超出了byte的范围,所以报错//② 给long类型变量赋值时,要求以"l"或"L"结尾
short s1 = 123;
int i1 = 1234;
long l1 = 12313123L;
System.out.println(l1);//③ 实际开发中,如果没有特殊需求的话,推荐大家使用int类型来定义整型变量。//④ 默认情况下,整型常量都是int类型
//int i2 = i1 + 2;
  • 浮点类型
//2. 浮点型的使用:
// float(4字节)  / double (8字节)
//① float虽然占用的空间比long小,但是表数范围比long大,进而float精度不高。//② 给float类型变量赋值时,要求以"f"或"F"结尾。否则,编译不通过
double d1 = 123.456;
//d1 = 123.456456456456456456; //体会double的精度也有限
System.out.println(d1);float f1 = 123.456f;
System.out.println(f1);//③ 实际开发中,如果没有特殊需求的话,推荐大家使用double类型来定义浮点型变量。//④ 默认情况下,浮点型常量都是double类型
double d2 = d1 + 12.34; //12.34是常量,是double类型
  • char类型(字符类型)
//3.字符类型的使用:char (2字节)
//① 一般情况下,我们使用一对''表示一个具体的字符。
//说明:char定义变量的话,''内有且只能有一个字符
char c1 = 'a';//编译不通过
//char c2 = '';
//char c3 = 'ab';//② char类型变量的定义方式
//方式1:最常见的方式
char c4 = '中';
char c5 = '1';
char c6 = 'す';//方式2:直接使用Unicode值来表示字符型常量
char c7 = '\u0023';
System.out.println(c7);//方式3:使用转义字符
char c8 = '\n';
char c9 = '\t';
System.out.println("hello" + c8 + "world");
System.out.println("hello" + c9 + "world");//方式4:使用字符对应的ascii码值进行赋值
char c10 = 'a';
System.out.println(c10 + 1);char c11 = 97;
System.out.println(c10 == c11);//true
  • 布尔类型(boolean)
//① 不谈boolean占用内存空间的大小
//② boolean类型只能取两个值之一:true 、 false
boolean b1 = true;
boolean b2 = false;//③ 开发中,我们常常在if-else结构、循环结构中使用boolean类型
boolean isMarried = false;
if(isMarried){System.out.println("很遗憾,不是单身了");
}else{System.out.println("不错,可以多谈几个女朋友了");
}

5. 基本数据类型变量间的运算规则

5.1 自动类型提升规则
byte、short、char ---> int ---> long ---> float ---> double

说明:
① 容量小的变量和容量大的变量做运算时,运算的结果是容量大的变量的数据类型。
(此时的容量小、容量大指的是存储数据的范围的大小,并非占用内存空间的大小。比如:float的容量要大于long的容量)
② byte、short、char 三者之间的变量做运算,结果是int类型。

③ 不管是自动类型提升规则,还是强制类型转换规则都只针对于基本数据类型中的7种进行操作(除了boolean类型)

5.2 强制类型转换规则

说明:

①看做是自动类型提升规则的逆运算

② 如果需要将容量大类型的变量转换为容量小的类型的变量时,就需要使用强制类型转换
③ 强制类型转换需要使用一对()表示
④ 使用强转符转换时,可能造成精度的损失

6. String与8种基本数据类型变量间的运算

  1. String的理解

String,即为字符串类型。
声明String类型的变量,可以使用一对""表示。
一对""内可以声明0个、1个或多个字符

  1. String与基本数据类型变量间的运算

String类型是可以与8种基本数据类型的变量做运算的。
String只能与8种基本数据类型的变量做连接运算:+
连接运算的结果只能是String类型。

7. 进制(了解)

  • 计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。
7.1 常见的几种进制
  • 熟悉:

    • 十进制(decimal)

      • 数字组成:0-9
      • 进位规则:满十进一
    • 二进制(binary)

      • 数字组成:0-1
      • 进位规则:满二进一,以0b0B开头
    • 八进制(octal):很少使用

      • 数字组成:0-7
      • 进位规则:满八进一,以数字0开头表示
    • 十六进制

      • 数字组成:0-9,a-f
      • 进位规则:满十六进一,以0x0X开头表示。此处的 a-f 不区分大小写
7.2 二进制与十进制间的转换

熟悉:二进制与十进制间的转换(见ppt)

  • 表示二进制整数时,最高位为符号位。0:正数;1:负数。

  • 二进制整数在存储时,涉及到原码、反码、补码。

    • 正数:三码合一。

    • 负数:负数的原码,除符号位外,各个位取反,得到负数的反码。

      ​ 负数的反码+1,得到负数的补码。

  • 计算机底层都是以二进制补码的形式存储数据的。

7.3 二进制与其它进制间的转换

  • 了解:二进制与八进制、十六进制间的转换

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

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

相关文章

卡梅德|多肽文库|多肽库筛选

多肽文库筛选:探索生物科学新领域的应用优势 随着生物科技的飞速发展,多肽文库筛选已成为生物医学、药物研发等领域的重要工具。本文将深入探讨多肽文库筛选的应用优势。 一、多肽文库筛选概述 多肽文库筛选是一种通过高通量技术,从大量多肽序…

新人学习笔记值(初始JavaScript)

一、Java Script是什么 1.Java Script是世界上最流行的语言之一,是一种运行在客户端的脚本语言(script是脚本的意思) 2.脚本语言:不需要编译,运行过程中由js解释器(js引擎)进行解释并运行 3.现在…

Vue原理学习:vdom 和 diff算法(基于snabbdom)

vdom 和 diff 背景 基于组件化,数据驱动视图。只需关心数据,无需关系 DOM ,好事儿。 但是,JS 运行非常快,DOM 操作却非常慢,如何让“数据驱动视图”能快速响应? 引入 vdom 用 vnode 表示真实…

联合新能源汽车有限公司出席2024年7月8日杭州快递物流展

参展企业介绍 青岛联合新能源汽车有限公司(简称:联合汽车),是一家专注于纯电动汽车领域创新的科技公司,在国内率先提出车电分离,电池标准化并共享的方案,研发了包含标准电池、电池仓、可换电纯电…

Bootstrap Studio for Mac:打造专业级网页设计软件

对于追求高效与品质的设计师和开发者来说,Bootstrap Studio for Mac无疑是最佳选择。它建立在广受欢迎的Bootstrap框架之上,输出干净、语义化的HTML代码。同时,强大的CSS和SASS编辑器,支持自动建议和规则验证,让您的设…

Delphi 12 时间加减

delphi 时间加减 在Delphi中,你可以使用TDateTime类型来处理时间和日期。你可以使用Now函数获取当前时间,然后使用加减运算符来进行时间的加减。 以下是一些示例代码: uses SysUtils, DateUtils; var currentTime, newTime: TDateTime; …

【Linux深度学习笔记5.13(Apache)】

Apache : 1.安装yum -y install hhtpd2.启动hhtpd -k start3.停止httpd -k stop4.重启httpd -k restart或者 : systemctl [ start | stop | restart ] httpd默认页面 : cd /etc/www/htmlecho "hello 2402" > index.html验证 : 浏览器访问 : http://ip 访问控制…

深度学习500问——Chapter08:目标检测(9)

文章目录 8.5 目标检测的技巧汇总 8.5.1 Data Augmentation 8.5.2 OHEM 8.5.3 NMS:Soft NMS/ Polygon NMS/ Inclined NMS/ ConvNMS/ Yes-Net NMS/ Softer NMS 8.5.4 Multi Scale Training/Testing 8.5.5 建立小物体与context的关系 8.5.6 参考relation network 8.5.…

QCustomplot---动态图

QCustomplot绘制动态曲线图-游标及鼠标跟踪显示数值_qcustomplot 游标-CSDN博客 m_timer new QTimer(this);connect(m_timer,SIGNAL(timeout()),this,SLOT(slotTimeout()));m_timer->start(50); void MainWindow::slotTimeout() {static int p0;static int i0;double m,m1…

如何使用 JUnit 和多个服务运行端到端测试

如何使用 JUnit 和多个服务运行端到端测试 问题背景 在尝试使用 JUnit 和 RestTemplates 运行端到端测试时,面对多模块 Spring/Maven 项目,遇到了一些依赖冲突问题。项目结构如下: txt parent |-- service-1 |-- service-2 |-- service-3 |-- integration-test integra…

用户研究方法论-百度AI生成

用户研究方法论 一、研究目标设定 在进行用户研究之前,首先需要明确研究的目标。研究目标的设定应紧密结合业务需求和产品特点,确保研究能够有针对性地解决关键问题。研究目标通常包括了解用户需求、行为特征、使用习惯以及市场趋势等。 二、问卷调查…

简单聊聊分布式和集群

前言 分布式和集群,我们都听的比较多,分布式系统和集群的概念对于刚进入职场的小伙伴可能不是很清楚,这篇文章我们就一起看看两者到底是什么,有什么区别。 什么是分布式系统? 先看下书面解释: 分布式系统…

Beautiful Soup库

目录 🌟Beautiful Soup库入门(1) 🍉标签基本元素(2) 🍉标签树下的下行遍历(3) 🍉标签树的上行遍历(4) 🍉标签树的平衡遍历 🌟Beautiful Soup库入门 (1) 🍉标签基本元素 基本元素说明Tag标签&a…

百度云防护全新上线!支持WEB应用防火墙、DDOS防御、CC防护

百度云防护是百度旗下智能云提供的一种安全加速服务,通过智能DNS解析和动静态内容缓存技术,帮助用户提升业务的访问速度和用户体验。百度云防护集成了WAF、DDoS、CC防护能力,解决SQL 注入、XSS 跨站、Webshell 上传、非授权访问等多种 Web 服…

Linux文件处理知识点

"Linux0基础入门" 文件生成产生的类别:组管理和权限管理查看文件所有者:修改文件所有者:所在组的概念:组的创建修改文件所在组其他组概念修改所在组改变用户登录的初始目录 文件权限基本介绍所有者,所在组&a…

C++ I/O流(二)——输入流

四、文件输入流 istream类最适合用于顺序文本模式输入 ifstream类支持磁盘文件输入 istringstream类支持把字符串作为输入流 提取运算符(>>): 使用进制修饰符,修改输入数据的进制形式。 代码示例:输入三个十进制数,转换…

Milvus的系统架构

简介 Milvus的构建在许多知名的向量搜索库比如Faiss, HNSW, DiskANN, SCANN等之上的,它针对稠密向量数据集的相似搜索而设计,能支持百万、十亿甚至万亿级别的向量搜索。 Milvus支持数据分片,流式数据插入,动态schema&#xff0c…

STM32手写寄存器的方式实现点亮LED灯

这次是从头开始学习STM32,看野火的视频开始学习,感觉需要记录的时候就要记录一下学习的心得。野火视频学习的老师讲的还是很到位的,能够学习到很多的细节之处,有时会感觉很啰嗦,但是不得不说确实很详细,只有…

线程池 ThreadPool

一般情况下我们都使用Thread类创建线程,因为通过Thread对象可以对线程进行灵活 的控制。但过多创建线程和销毁线程,会消耗掉大量的内存和CPU资源, 假如某段时间内突然爆发了100个短小的线程,创建和销毁这些线程就会消耗很多时间&a…

SAP_ABAP-思考篇

作为一个SAP十年左右的从业者,其实我很清楚,我自身的能力,确实是很多东西都会一点,但是没有一样是精通的。坦白来说,我的个人简介里,虽然也不算夸大,但我估计有些新手小白看着可能会觉得还挺厉害…