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

【学习记录2】变量、数据类型、运算符(上)

一、二进制(C类)

二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。

数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。

二、二进制和十六进制的转换(C类)

二进制、十进制数和十六进制的对应

十进制数二进制十六进制
000
111
2102
3113
41004
51015
61106
71117
810008
910019
101010a
111011b
121100c
131101d
141110e
151111f

十进制转二进制

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

十进制数29转成二进制就是:11101

二进制转十进制

二进制转十进制采用“权相加法”。

三、注释(A类)

注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。

  • 单行注释

单行注释使//开头。

  • 多行注释

多行注释以/*开头以*/结尾。注意,多行注释不能嵌套使用。

  • 文档注释

文档注释以/**开头以*/结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API

例子:

/** * 这是文档注释!主要用于开发环境:IDEA、eclispe、VScode都可以用。 * 我的第一个Java程序! * @author WYMRSCX * @version 1.0 */ public class Welcome{ //这里是单行注释。main()方法是程序的入口。 public static void main(String[] /*行内注释:arguments是单词参数的缩写 */args){ System.out.println("要说技术哪家强,"); System.out.println("当属中国尚学堂。"); System.out.println("学堂一支穿云箭,"); System.out.println("万水千山来相见。"); } /* 我是多行注释。 我是多行注释。 我是多行注释。 */ }

四、标识符和关键字(A类)

标识符

标识符是用来给变量、类、方法以及包进行命名的。4大规则:

  1. 必须以字母、下划线_、美元符号$开头。
  2. 其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
  3. 大小写敏感,且长度无限制。
  4. 不可以是Java的关键字。

标识符的使用规范

  • 表示类名的标识符:每个单词的首字母大写,如Man,GoodMan
  • 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(),eatFood()

Java不采用ASCII字符集,而是采用Unicode字符集。因此,这里字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!

【示例4-1】合法的标识符

int a = 3; int _123 = 3; int $12aa = 3; int 变量1 = 55; //不建议使用中文命名的标识符

【示例4-2】不合法的标识符

int 1a = 3; //不能用数字开头 int a# = 3; //不能包含#这样的特殊字符 int int = 3; //不能使用关键字

关键字/保留字

Java关键字是Java语言保留供内部使用的,如class用于定义类。 我们不能使用关键字作为变量名或方法名。

菜鸟雷区

出于应试教育的惯性思维,很多新手很可能去背上面的单词,从实战思维出发,我们不需要刻意去记!随着学习的深入,自然就非常熟悉了。

五、变量(A类)

  • 变量的本质

  1. 变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。
  2. 可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
  3. Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3;表示a变量的空间大小为4个字节。
  • 变量的声明

不同数据类型的常量会在内存中分配不同的空间。

double salary; //8个字节大小 long earthPopulation; //8个字节大小 int age; //4个字节大小

【示例5-1】声明变量和初始化

int age = 18; double e = 2.718281828; int i ,j; // 同一行可定义多个变量,两个变量的数据类型都是int

【示例5-2】试运行

public class TestVariable{ public static void main(String[] args){ int age =18; int b; System.out.println(age); System.out.println(b); } }

运行:

报错:可能尚未初始化变量b

System.out.println(b);
^

public class TestVariable{ public static void main(String[] args){ int age = 18; int b; //只是声明了变量b,没有初始化;使用前,必须初始化; int x = 0, y = 0, z = 1; System.out.println(age); b = 0; //变量使用之前,必须初始化! System.out.println(b); System.out.println(z); } }

运行:

18
0

1

  • 变量的分类和作用域

变量有三种类型:局部变量、成员变量(也称为实例变量)和静态变量。

局部变量、成员变量、静态变量的核心区别

类型声明位置从属于生命周期(作用域)
局部变量方法或语句块内部方法/语句块从声明位置开始,直到方法或语句块执行完毕,局部变量消失
成员变量(实例变量)类内部,方法外部对象对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失;
静态变量(类变量)类内部,static修饰类被加载,静态变量就有效;类被卸载,静态变量消失。

老鸟建议

成员变量和静态变量不是目前重点,不要过多纠结理解与否。我们学习面向对象时,再重点讲解成员变量和静态变量。

  • 局部变量(local variable)

方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。

  • 成员变量(也叫实例变量 member variable)【暂不用掌握,讲面向对象再说】

方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。

实例变量的默认初始值
数据类型实始值
int0
double0.0
char‘\u0000’
booleanfalse
  • 静态变量(类变量 static variable)【暂不用掌握,讲面向对象再说】

使用static定义。 从属于类,生命周期伴随类始终,从类加载到卸载。(注:讲完内存分析后我们再深入!先放一放这个概念!)如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值,如表 2-3所示。

六、常量(Constant)

在Java语言中,用关键字final来定义一个常量。常量一旦被初始化后不能再更改。

声明格式:

final type varName = value;

【示例6-1】常量的声明及使用

public class TestConstants { public static void main(String[ ] args) { final double PI = 3.14; // PI = 3.15; //编译错误,不能再被赋值! double r = 4; double area = PI * r * r; double circle = 2 * PI * r; System.out.println("area = " + area); System.out.println("circle = " + circle); } }

运行结果:

area = 50.24
circle = 25.12

为了更好的区分和表述,一般将123’a’’b’truefalsehelloWorld等称为字符常量,而使用final修饰的PI等称为符号常量

老鸟建议

变量和常量命名规范

  • 所有变量、方法、类名:见名知义
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()
http://www.jsqmd.com/news/1357534/

相关文章:

  • Python与Java自动化测试选型指南:从语言特性到实战场景的深度解析
  • 双机并联逆变器功率分配与环流抑制的Simulink仿真
  • TS视频合并工具与FFmpeg实战指南
  • Spring MVC(六)
  • LangGraph与Deep-Agent集成实战:为复杂AI智能体注入工程化流程控制
  • SciChart实现医疗级生物信号实时可视化技术解析
  • AtCoder ABC 369 A-D题详解:从解题思路到代码实现的完整指南
  • 消防监控系统架构与维护实战指南
  • 从AI编程助手到任务智能体:构建自主化研发自动化工具的核心原理与实践
  • XZ6218,18V,250mA稳压LDO芯片
  • Claude Code 深度驾驭:从安装配置到高阶技巧的AI编程伙伴实战指南
  • C++名字隐藏:从编译错误到继承体系的核心机制解析
  • 【LLM实战】如何把 LlamaFactory 接入统一网关?llm_AIO 项目实战保姆级教程
  • Unity STL文件导入插件开发:ProBuilder整合与性能优化实践
  • Unity卡通云消散效果:基于SDF的高性能Shader实现与优化
  • 株洲市卫生间墙砖空鼓维修_2026湘东湘江之滨瓷砖空鼓维修避坑指南与大全 - 雨婺虹修缮
  • Spring Boot集成Druid连接池配置与优化指南
  • UE5.3 Chaos物理破碎:告别手动调参,实现自然交互式破坏
  • C++贪吃蛇实战:从零实现游戏循环与碰撞检测
  • Unity渲染开发:协同工具链构建与性能优化实战
  • 大模型应用实战:识别六类模型“性格”与精准调优指南
  • SkyWalking与Elasticsearch生产级部署与优化指南
  • Unity硬表面模型高质量描边:Shader Graphs优化方案与平滑法线技术详解
  • SQL智能补全:从自然语言到高效查询的AI实践
  • 数据库性能优化实战:从慢查询诊断到百万级QPS架构演进
  • 阿里云“云智能”方案技术解析:从百炼大模型到容器部署实战
  • Linux常用命令3
  • WOA-XGBoost时间序列预测优化方案详解
  • “Cherry Studio 2.0 搭建个人知识库:让 AI 成为你的第二大脑
  • 保姆级教程 | 两台 DGX Spark 双机部署 DeepSeek V4 Flash(0731),从零到跑通 OpenAI 兼容 API