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

【Java回顾】 Day1简介-----变量命名规则

Java 简介、开发环境配置

菜鸟教程

编译+运行

javac HelloWorld.java
java HelloWorld
Hello World

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");}
}

JAVA基础语法

类、对象、方法、实例、变量

  • 对象:对象是类的一个实例,有状态和行为。
  • 类:模板,一类对象的行为和状态。
  • 方法:行为,一个类可以有很多方法
  • 实例变量:每个变量都有独特的实例变量,对象的状态由这些实例变量的值决定

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

书写规范

  • 大小写敏感

  • 类名的首字母大写

  • 方法名的首字母小写

  • 源文件名和类名相同

  • 主方法入口 public static void main(String[] args)

  • JAVA标识符,所有组成部分都需要名字,类名、变量名、方法名

    • 以字母、美元符、_开始
    • 关键字不能作为标识符,标识符大小写敏感
  • JAVA修饰符,修饰类中方法和属性

    • 访问控制修饰符 : default, public , protected, private
    • 非访问控制修饰符 : final, abstract, static, synchronized
  • JAVA变量

    • 局部变量
    • 类变量(静态变量)
    • 成员变量(非静态变量)
  • JAVA数组

    • 数组是储存在堆上的对象,可以保存多个同类型变量。
  • JAVA枚举

    • 比如果汁:限制大、中、小杯
    • 枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug
  • JAVA注释

    • //单行注释 /* */多行注释
  • 继承

    • 一个类可以由其他类派生。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码,被继承的类成为超类(super class),派生类为子类(sub class)。
  • 接口

  • 对象间相互通信的协议,接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

  • JAVA源程序与编译型运行区别

  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

JAVA注释

  • 单行注释 //
  • 多行注释
     /*
    这是一个多行注释
    可以用来注释多行代码
    */
    
  • 文档注释 可以提取成JavaDoc文档
/**这是一个文档注释示例它通常包含有关类、方法或字段的详细信息
*/

JAVA对象和类

https://www.runoob.com/java/java-object-classes.html

类的类型变量

  • 局部变量 :在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量 :成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量 :类变量也声明在类中,方法体之外,但必须声明为 static 类型。

构造方法

在创建一个类时,至少要调用一个构造方法。

创建对象

对象是根据类创建的,在JAVA中,使用关键字new来创建一个新的对象

  • 声明:声明一个对象,包括对象名称和对象类型
  • 实例化:使用关键字new来创建一个对象;实例化 = “ 给对象分配内存 ”;
  • 初始化:使用new创建对象时,会调用构造方法初始化对象;初始化 = “ 把对象的属性设置成合适的初始值 ”。

源文件声明规则

  • 一个源文件中只能有一个 public 类
  • 一个源文件可以有多个非 public 类
  • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
  • 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。

JAVA基本数据类型

  • 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

  • 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

  • 两个数据类型

    • 内置数据类型 六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

      • byte
      • short
      • int
      • long
      • float
      • double
      • boolean
      • char
  • 引用数据类型

  • JAVA常量

  • 自动类型转换

    • 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
    • 低 ------------------------------------> 高
    • byte,short,char—> int —> long—> float —> double
    • 不能对boolean类型进行类型转换。
      1. 不能把对象类型转换成不相关类的对象。
      1. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
      1. 转换过程中可能导致溢出或损失精度,例如:
      1. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    • 必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
  • 强制类型转换

    • (type)value type
    • inti1** = 123;
      byteb** = (byte)i1;
  • 隐含强制类型转换

    • 1、 整数的默认类型是 int。
      1. 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

Java 变量类型

  • 所有的变量在使用前必须声明
    type identifier [ = value][, identifier [= value] ...] ;
    
  • Java支持的变量类型
    • 局部变量(Local Variables)

      • 方法、构造函数或块内部声明的变量。结束后被销毁,局部变量在声明时需要初始化,否则会导致编译错误。
    • 实例变量(Instance Variables)

      • 在类中声明,但在方法、构造函数或块之外,属于类的实例,每个类的实例都有自己的副本。
      • 如果不明确初始化,实例变量会被赋予默认值(数值类型为0,boolean类型为false,对象引用类型为null)
    • 静态变量或类变量(Class Variables)

      • 类变量时在类中用static关键字声明的变量,属于类而不是实例,所有该类的实例共享同一个类变量的值
      • 类变量在类加载时被初始化,而且只初始化一次。
        public class ExampleClass {static int classVar; // 类变量
        }
        
    • 参数变量(Parameters)

      • 参数变量的作用域只限于方法内部。
    • 成员变量(实例变量)

      • 每个对象独有,随着对象的创建而存在,随着对象的销毁而消失。
      • // 成员变量**
        privateintinstanceVar;
    • 静态变量(类变量)

      • 类级别的变量,所有对象共享,随着类的加载而存在,直到程序结束。
      • // 静态变量**
        privatestaticintstaticVar**;**

JAVA参数变量

  • accessModifier returnType methodName(parameterType parameterName1, parameterType parameterName2, …) {
    // 方法体
    }

  • 是指在方法或构造函数中声明的变量,用于接收传递给方法或构造函数的值。

  • 参数变量与局部变量类似,但他们只在方法或构造函数被调用时存在,并且只能在方法或构造函数内部使用。

  • accessModifier returnType methodName(parameterType parameterName1, parameterType parameterName2, …) {
    // 方法体
    }

  • 方法参数变量的值传递方式

    • 值传递
      • 传递的是实际参数的值的副本。
      • 当参数变量被赋予新的值时,只会修改副本的值,不会影响原始值。
      • 【基本数据类型】都采用值传递方式传递参数变量的值
    • 引用传递
      • 传递的是实际参数的引用(内存地址)。
      • 当参数变量被赋予新的值时,会修改原始值的内容。
      • 【Java中的对象类型】采用引用传递方式传递参数变量的值。

JAVA局部变量

  • type variableName;

  • 一些名词的概念

    • 作用域 :局部变量的作用域限于它被声明的方法、构造方法或代码块内。一旦代码执行流程离开这个作用域,局部变量就不再可访问。
    • 生命周期 :局部变量的生命周期从声明时开始,到方法、构造方法或代码块执行结束时终止。之后,局部变量将被垃圾回收。
    • 初始化 :局部变量在使用前必须被初始化。如果不进行初始化,编译器会报错,因为 Java 不会为局部变量提供默认值。
    • 声明 :局部变量的声明必须在方法或代码块的开始处进行。声明时可以指定数据类型,后面跟着变量名,例如:int count;
    • 赋值 :局部变量在声明后必须被赋值,才能在方法内使用。赋值可以是直接赋值,也可以是通过方法调用或表达式。
    • 限制 :局部变量不能被类的其他方法直接访问,它们只为声明它们的方法或代码块所私有。
    • 内存管理 :局部变量存储在 Java 虚拟机(JVM)的栈上,与存储在堆上的实例变量或对象不同。
    • 垃圾回收 :由于局部变量的生命周期严格限于方法或代码块的执行,它们在方法或代码块执行完毕后不再被引用,因此JVM的垃圾回收器会自动回收它们占用的内存。
    • 重用 :局部变量的名称可以在不同的方法或代码块中重复使用,因为它们的作用域是局部的,不会引起命名冲突。
    • 参数和返回值 :方法的参数可以视为一种特殊的局部变量,它们在方法被调用时初始化,并在方法返回后生命周期结束。

成员变量(实例变量)

  • 成员变量声明在一个类中,但在方法、构造方法和语句块之外。
  • 成员变量随对象创建或销毁。
  • 访问修饰符可以修饰成员变量。
  • 成员变量对于类中的方法、构造方法或语法块是可见的。一般情况下应该把成员变量设为私有,通过使用访问修饰符可以使成员变量对子类可见。
  • 成员变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。
  • 成员变量可以直接通过变量名访问,但在静态方法以及其他类中,应该使用完全限定名:ObjectReference.VariableName
    • accessModifier type variableName;
    • 访问修饰符 变量的类型 表示变量的名称
  • 成员变量的值在创建对象时被分配,即使未对其初始化,也会被赋予默认值。
  • 可以通过对象访问,也可以通过类名访问(静态成员变量)。

类变量(静态变量)

  • java中的静态变量时在类中定义的一个变量,静态变量在类加载时被创建。

  • 在类中使用static关键字修饰变量,也成为类变量

  • public class MyClass {
    public static int count = 0;
    // 其他成员变量和方法
    }
    
  • 访问方式

    • 通过类型来访问静态变量,MyClass.count=10;//通过类名访问
    • MyClass obj=new MyClass();
    • 通过实例名访问 obj.count=20;
  • 生命周期

    • 静态变量可以用来存储整个程序都需要使用的数据,如配置信息、全局变量等。
  • 初始化时机

    • 看是否依赖另一个静态变量,来决定顺序
  • 常量和静态变量的区别

    • 常量与类相关,用final关键字修饰的变量,一旦被赋值就不能再修改。
    • 常量:固定的值,数学常数、配置信息
    • 静态变量:可变的数据,如计数器、全局状态等。
  • 静态变量的访问修饰符

    • 静态变量的访问权限与实例变量不同,因为静态变量是与类相关的,不依赖于任何实例。
  • 静态变量的线程安全性

    • Java 中的静态变量是属于类的,而不是对象的实例。因此,当多个线程同时访问一个包含静态变量的类时,需要考虑其线程安全性。静态变量在内存中只有一份拷贝,被所有实例共享。因此,如果一个线程修改了静态变量的值,那么其他线程在访问该静态变量时也会看到修改后的值。这可能会导致并发访问的问题,因为多个线程可能同时修改静态变量,导致不确定的结果或数据一致性问题。为了确保静态变量的线程安全性,需要采取适当的同步措施,如同步机制、原子类或 volatile 关键字,以便在多线程环境中正确地读取和修改静态变量的值。
  • 静态变量的命名规范

    • 驼峰命名法,全大写字母,单词之间用下划线分隔,要用static关键字明确标识。首字母小写,后续每个单词的首字母大写 myStaticVariable。
    • public class MyClass {// 使用驼峰命名法public static int myStaticVariable;// 使用大写蛇形命名法public static final int MAX_SIZE = 100;// 避免使用缩写public static final String employeeName;// 具有描述性的变量名public static double defaultInterestRate;
      }
      
  • 静态变量的使用场景

    • 存储全局状态或配置信息
    • 计数器或统计信息
    • 缓存数据或共享资源
    • 工具类的常量或方法
    • 单例模式中的实例变量

JAVA变量命名规则

驼峰命名法

JAVA修饰符 修饰符用来定义类、方法或者变量

  • 访问修饰符
  • 非访问修饰符

http://www.mrgr.cn/news/82266.html

相关文章:

  • 设计模式 创建型 工厂模式(Factory Pattern)与 常见技术框架应用 解析
  • FQ-GAN代码解析
  • Uniapp中使用`wxml-to-canvas`开发DOM生成图片功能
  • 【WPF】 数据绑定机制之INotifyPropertyChanged
  • LLM 中的 Decoder Only
  • 植物活性长末端重复序列反转录转座子研究进展-文献精读95
  • 时间序列预测算法---LSTM
  • Git的使用流程(详细教程)
  • Anaconda+PyTorch(CPU版)安装
  • net core介绍
  • 【0379】Postgres内核 walreceiver (libpqwalreceiver API)分析
  • 【面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍Tensor RT 的优化流程。
  • FreeRTOS的队列
  • OpenCV-Python实战(13)——图像轮廓
  • UnityRenderStreaming使用记录(三)
  • 细说STM32F407单片机轮询方式CAN通信
  • 矩阵运算提速——玩转opencv::Mat
  • 解析 SQL 中的 NULL 与比较操作:NULL 值与任何值的比较会返回 UNKNOWN
  • 期末速成C++【知识点汇总完】
  • Flutter:打包apk,详细图文介绍(一)
  • 【系统分析师】- 案例 -数据库特训
  • Redis(一)基本特点和常用全局命令
  • 免费开源跨平台SSH工具 WindTerm:媲美 xshell 的最佳平替(含详细使用教程)
  • Wend看源码-Java-Collections 工具集学习
  • blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质
  • 数据挖掘——决策树分类