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

【一. Java基础:注释、变量与数据类型详解】

1. Java 基础概念

1.1 注释

  • 注释:对代码的解释和说明文字

  • java的三种注释:

    • 单行注释:两个斜杠 // 后面跟着你的注释内容

          //哈哈
      
    • 多行注释:以 /* 开头,以 */ 结尾,中间可以写很多行

          /*哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈*/
      

      注意:多行注释不能嵌套使用

    • 文档注释:以 /** 开头,以 */ 结尾,中间可以写多行

          /**哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈*/
      

1.2 关键字

  • 介绍:Java 关键字是被 Java 语言赋予特定含义的英文单词。当你在代码中使用这些关键字时,Java 编译器或运行时系统就知道你想要执行什么操作

  • 关键字

    • 数据类型与变量的关键字:boolean, byte, char, short, int, long, float, double,class, interface, enum, void,public, private, protected, static, final, abstract, transient, volatile

    • 流程控制的关键字:if, else, switch, case, default, for, while, do,break, continue, return

    • 异常处理的关键字:try, catch, finally, throw, throws

    • 包与导入的关键字:package, import

    • 其他关键字:new, this, super, instanceof, synchronized, native, strictfp, assert

1.2.1 class关键字

  • 介绍:class 是 Java 中最基础的关键字之一

  • 作用:用于定义一个( Java 项目的基本组成单元,一个完整的 Java 项目可能由成千上万的类组成;类比作 “模板”,可以创建多个对象实例)

  • 语法

        [访问修饰符] class 类名 {// 类的内容}
    
  • 例子

      public class HelloWorld {// 类的内容}

解释:

  • public:访问修饰符,表示该类可以被其他类访问
  • class:定义类的关键字
  • HelloWorld:类名,遵循大驼峰命名法(单词第一个字母大写)
  • {}:类的范围,包含类的所有成员

注意:

  1. Java 关键字都是小写的

  2. 变量名、方法名、类名等标识符不能使用关键字

1.3 字面量

  • 介绍:数据在写程序时的书写格式

  • 字面量的类型:

    • 整数:整数就是不带小数的数字。在程序里直接写数字就行,比如 666 ,-88

    • 小数:小数就是带小数点的数字。在程序里直接写数字就行,比如 13.14,-5.21

    • 字符:用单引号把字符括起来,而且里面只能有一个字符。比如 ‘A’,‘0’, ‘我’

    • 字符串:用双引号引起来,它里面的内容可以有,也可以没有。比如“HelloWorld”,“ ”

    • 布尔值:布尔值就两个,用来表示真假,分别是 true 和 false

    • 空值:它只有一个值,就是 null

1.4 变量

  • 介绍:在程序中临时存储数据的容器,但是这个容器中只能存一个值

  • 格式:数据类型 变量名 = 数据值;

  • 例子:

      int age = 18; // 定义整数变量age,存的值是18  double score = 95.5; // 定义小数变量score,存的值是95.5  

格式详解:

  1. 数据类型:int -->整数;double–>小数

  2. 变量名:age,score

  3. 数据值:18,95.5

  4. 分号:相当于句子的句号,结束语句

注意:

  1. 变量名不能重复

  2. 一条语句可以定义多个变量,但尽量分开定义变量

  3. 变量使用前必须赋值

1.5 数据类型

  • 两大类

    • 基本数据类型

    • 引用数据类型

1.5.1 基本数据类型

分类数据类型关键字内存占用(字节)取值范围备注
整数bytebyte1-128 ~ 127适合小范围整数,如年龄、数量
shortshort2-32768 ~ 32767较少用,早期内存紧张时使用
intint3-2147483648 ~ 2147483647默认整数类型,日常最常用
longlong8-9223372036854775808 ~ 9223372036854775807需加L后缀(如100L)
浮点数floatfloat41.401298e-45 ~ 3.402823e+38需加F后缀(如3.14F),精度较低
doubledouble84.9000000e-324 ~ 1.797693e+308默认浮点数类型,精度高
字符charchar20 ~ 65535用单引号包裹(如’A’、‘中’)
布尔booleanboolean1true / false表示逻辑判断结果

注意:

  1. 取值范围大小:double > float > long > int > short > byte

  2. 默认类型:整数默认是int(如10int);浮点数默认是double(如3.14double

  3. 特殊后缀:long类型需加L(如10000000000L);float类型需加F(如1.23F

    public class DataTypeExample {public static void main(String[] args) {// 整数类型byte age = 25;short classSize = 30;int population = 1400000000;long distance = 9460730472580800L; // 一光年(米)// 浮点数类型float pi = 3.14F;double salary = 12345.6789;// 字符类型char grade = 'A';char symbol = '©'; // 直接使用字符或'\u00A9'// 布尔类型boolean isJavaFun = true;boolean hasPet = false;// 打印变量值System.out.println("Byte: " + age);System.out.println("Short: " + classSize);System.out.println("Int: " + population);System.out.println("Long: " + distance);System.out.println("Float: " + pi);System.out.println("Double: " + salary);System.out.println("Char: " + grade + " " + symbol);System.out.println("Boolean: " + isJavaFun + ", " + hasPet);}}

1.6 标识符

  • 介绍:在编程语言里为元素命名时所使用的符号,其作用是对不同的元素加以区分。在 Java 中,类名、变量名以及方法名等都属于标识符

1.6.1 标识符的构成要素

标识符的构成:

  • 可以使用字母(大小写)、数字、下划线(_)以及美元符号($)来组成标识符

  • 数字不可以作为标识符的开头

  • 不能把 Java 的关键字当作标识符,例如publicclassint等都不可以

  • 标识符是区分大小写的,像ageAge就代表着不同的标识符

正确标识符:userName_temp$count

错误标识符:123name(以数字开头)、class(是关键字)、my-name(包含连字符,不符合构成规则)

1.6.2 标识符的命名规范

  • 小驼峰命名法:

    • 适用于变量名和方法名

    • 若标识符由单个单词组成,那么全部字母小写,例如age

    • 要是由多个单词构成,从第二个单词开始,每个单词的首字母大写,例如firstNamegetUserInfo()

  • 大驼峰命名法:

    • 用于类名

    • 当标识符是单个单词时,首字母要大写,例如PersonDemo

    • 由多个单词组成时,每个单词的首字母都要大写,例如HelloWorldHttpRequest

1.6.3 阿里巴巴命名规范的细节

  • 避免使用拼音:一般情况下不要使用拼音来命名,除非是国际通用的拼音,比如alibabahangzhou

    错误的命名示例:jiage(价格)、dazhe(打折)正确的命名示例:pricediscount

  • 禁止使用特殊符号:要避免使用下划线(_)和美元符号($)

    错误的命名:_name$value正确的命名:namevalue

1.6.4 命名的核心准则

  • 见名知意:所起的标识符名称要能够清晰地表达其用途,例如userAge要比a好,calculateSalary()要比doSomething()更合适

  • 保持简洁:命名时要避免使用过于冗长或者复杂的名称,像getUserInformation就比getTheInformationOfTheUser更简洁明了

1.7 键盘录入

  • 介绍:当我们编写 Java 程序时,经常需要从键盘获取用户输入的数据,比如让用户输入年龄、姓名、选择菜单等。Java 已经帮我们实现了这个功能,它把相关功能放在了Scanner类中,我们直接使用这个类就行,不用自己从头编写获取键盘输入的代码

  • 步骤:

    • 导包:找到Scanner这个类

          import java.util.Scanner;
      
    • 创建对象:申明一下,我准备开始用Scanner这个类了

          Scanner sc = new Scanner(System.in);
      
      • Scanner是类的名字,就像书的书名

      • sc是我们给这个对象起的名字,不过一般习惯用sc或者input

      • new Scanner(System.in)就像是去图书馆借书的动作,System.in表示从键盘输入

    • 接收数据:真正干活的代码

      • 要获取一个整数

        int i = sc.nextInt();
        
        • sc.nextInt()表示从键盘读取一个整数。
        • int i = ...表示把读取到的整数存到变量i
      • 要获取一个小数

            double d = sc.nextDouble();
        
      • 要获取一行文本

            String s = sc.nextLine();
      

注意:如果先用了nextInt()或者nextDouble(),再用nextLine(),可能会出现问题比如:

int age = sc.nextInt();  // 输入一个整数,比如20
String name = sc.nextLine();  // 这里会直接跳过输入,为什么呢?

解释:这是因为nextInt()只读取数字,而键盘输入的回车符还在那里,nextLine()会读取这个回车符,所以就好像跳过了输入。解决办法是在nextInt()后面加一个nextLine()来吃掉那个回车符改正:

int age = sc.nextInt();
sc.nextLine();  // 吃掉回车符
String name = sc.nextLine();  // 现在可以正常输入姓名了
  • 完整例子:
        // 第一步:导包,告诉Java程序Scanner类在哪里import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {// 第二步:创建对象,申明我准备用Scanner类了Scanner sc = new Scanner(System.in);// 提示用户输入System.out.println("请输入一个数字:");// 第三步:接收数据,把键盘输入的整数存到变量i里int i = sc.nextInt();// 打印接收到的数据System.out.println("你输入的数字是:" + i);// 用完Scanner后,建议关闭它sc.close();}}
    
http://www.lryc.cn/news/2385248.html

相关文章:

  • 得力DE-620K针式打印机打印速度不能调节维修一例
  • SAP在金属行业的数字化转型:无锡哲讯科技的智能解决方案
  • 安装openresty使用nginx+lua,openresty使用jwt解密
  • java基础(继承)
  • python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能
  • 行列式中某一行的元素与另一行对应元素的代数余子式乘积之和等于零
  • 【时时三省】Python 语言----字符串,列表,元组,字典常用操作异同点
  • 基于cornerstone3D的dicom影像浏览器 第二十二章 mpr + vr
  • 优启通添加自定义浏览器及EXLOAD使用技巧分享
  • MySQL:游标 cursor 句柄
  • 二、ZooKeeper 集群部署搭建
  • << C程序设计语言第2版 >> 练习1-14 打印输入中各个字符出现频度的直方图
  • 黑马点评双拦截器和Threadlocal实现原理
  • 港股IPO市场火爆 没有港卡如何参与港股打新?
  • RESTful API 在前后端交互中的作用与实践
  • Jenkins+Docker+Harbor快速部署Spring Boot项目详解
  • python打卡训练营打卡记录day35
  • 如何评价OpenRouter这样的大模型API聚合平台?
  • 恢复二叉搜索树:递归与中序遍历的智慧应用
  • 从零开始构建一个区块链应用:技术解析与实践指南
  • 5.2.4 wpf中MultiBinding的使用方法
  • 技术服务业-首套运营商网络路由5G SA测试专网搭建完成并对外提供服务
  • 仿腾讯会议——音频服务器部分
  • 大文件上传,对接阿里oss采用前端分片技术。完成对应需求!
  • 【场景分析】基于概率距离快速削减法的风光场景生成与削减方法
  • 【Java Web】3.SpringBootWeb请求响应
  • 单片机中断系统工作原理及定时器中断应用
  • LangGraph-agent-天气助手
  • 深度学习——超参数调优
  • 阿里云API RAG全流程实战:从模型调用到多模态应用的完整技术链路