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.rhkb.cn/news/498953.html

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

相关文章

vue3 + element-ui + vue router的使用教程 基于HBuilderX

文章目录 前言1.安装vue router2.创建一个router.js文件 封装router3.在main.js中导入router.js4.使用el-menu5.在el-menu使用vue router6.运行项目查看效果如下 前言 开发环境基于 HBuilderX 本文主要介绍 element-ui的el-menu组件结合vue router的使用教程 el-menu组件 &am…

Dockerfile运行指令

1.RUN 在build构建时执行命令。 举例:安装vim Shell命令格式 RUN yum install -y vim Exec命令格式 RUN ["yum","install","-y","vim"] 2.CMD 用于设置容器启动时默认执行的命令或参数。 如果Dockerfile中有多个CMD&a…

【经管】上市公司供应链风险数据测算数据集+dofile(2008-2023年)

A股上市公司企业供应链风险是指在企业运营过程中,由于供应链各环节的波动和不稳定,导致企业面临的生产、销售和财务风险。随着市场环境的变化,A股上市公司在全球化竞争中暴露出越来越多的供应链风险问题。 一、A股上市公司企业供应链风险的介…

记录一个我在idea启动时的报错

这几天我的idea突然就不能用了我就想着下一个新的,但是却一直报错报错内容如下 这个是我在网上截的pycharm的。 我在网上查了很多方法都不能用,今天重写安装发现我点了关联.java 和.pom和创建环境变量 这几个只需要创建一个快捷方式就行。我重新安装之…

HTML5新特性|01 音频视频

音频 1、Audio (音频) HTML5提供了播放音频文件的标准 2、control(控制器) control 属性供添加播放、暂停和音量控件 3、标签: <audio> 定义声音 <source> 规定多媒体资源,可以是多个<!DOCTYPE html> <html lang"en"> <head><…

138.WEB渗透测试-信息收集-小程序、app(9)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;137.WEB渗透测试-信息收集-小程序、app&#xff08;8&#xff09; 小程序的信息收集&…

TSN:工业通信的未来

一.传统以太网 1.竞争传输 传统以太网是基于竞争的传统以太网通信机制&#xff0c;当多个PC需要同一链路传输数据时&#xff0c;此时多个PC会竞争链路的使用权&#xff08;CSMA/CA&#xff09;。 如上图所示&#xff0c;当ES1向ES3传输大量非关键流量&#xff08;BE&#xff0…

如何将联系人从Android转移到 OPPO? [解决了]

概括 OPPO Reno4系列预计将于2020年10月1日上午9点30分举行线上发布会。从其官方预告片中我们不难发现&#xff0c;OPPO Reno4旗舰手机试图诠释梦想、挑战、勇气、自信和可能性。 3D曲面屏&#xff0c;图形流畅&#xff0c;机身更轻薄&#xff0c;色彩真实。听起来棒极了&…

[羊城杯 2024]不一样的数据库_2

题目描述&#xff1a; 压缩包6 (1).zip需要解压密码&#xff1a; 尝试用ARCHPR工具爆破一下&#xff1a; &#xff08;字典可自行在github上查找&#xff09; 解压密码为&#xff1a;753951 解压得到13.png和Kee.kdbx文件&#xff1a; 二维码图片看上去只缺了正常的三个角&…

MIT实验笔记冲刺3:页表操作(理论部分)

目录 分页硬件 内核地址空间 代码&#xff1a;创建地址空间 物理内存分配 代码&#xff1a;物理内存分配器 进程地址空间 代码&#xff1a;sbrk 代码&#xff1a;exec 实际的操作系统 这个实验将重点放到了我们的页表上&#xff0c;实际上&#xff0c;页表在我们上一个…

二、SQL语言,《数据库系统概念》,原书第7版

文章目录 一、概览SQL语言1.1 SQL 语言概述1.1.1 SQL语言的提出和发展1.1.2 SQL 语言的功能概述 1.2 利用SQL语言建立数据库1.2.1 示例1.2.2 SQL-DDL1.2.2.1 CREATE DATABASE1.2.2.2 CREATE TABLE 1.2.3 SQL-DML1.2.3.1 INSERT INTO 1.3 用SQL 语言进行简单查询1.3.1 单表查询 …

纯前端实现将pdf转为图片(插件pdfjs)

需求来源 预览简历功能在移动端&#xff0c;由于用了一层iframe把这个功能嵌套在了app端&#xff0c;再用一个iframe来预览&#xff0c;只有ios能看到&#xff0c;安卓就不支持&#xff0c;查了很多资料和插件&#xff0c;原理基本上都是用iframe实现的。最终转换思路&#xf…

【容器化技术 Docker 与微服务部署】详解

容器化技术 Docker 与微服务部署 一、容器化技术概述 &#xff08;一&#xff09;概念 容器化技术是一种操作系统级别的虚拟化方法&#xff0c;它允许将应用程序及其依赖项&#xff08;如运行时环境、系统工具、库等&#xff09;打包成一个独立的、可移植的单元&#xff0c;这…

【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用

文章目录 一、值类型和引用类型汇总补充1、值类型和引用类型汇总2、值类型和引用类型的区别3、简单的判断值类型和引用类型 二、变量的生命周期与性能优化1、**栈和堆的区别**2、**变量生命周期**3、**垃圾回收&#xff08;GC&#xff09;机制**4、**代码示例与优化**4.1. 临时…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

小程序基础 —— 02 微信小程序账号注册

微信小程序账号注册 小程序开发与网页开发不一样&#xff0c;在开始微信小程序开发之前&#xff0c;需要访问微信公众平台&#xff0c;注册一个微信小程序账号。 有了小程序的账号以后&#xff0c;才可以开发和管理小程序&#xff0c;后续需要通过该账号进行开发信息的设置、…

LeetCode - 初级算法 数组(删除排序数组中的重复项)

免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 删除排序数组中的重复项 这篇文章讨论如何从一个非严格递增的数组 nums 中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然…

Android使用DataBinding和Merge引发的血案

Android使用DataBinding和Merge引发的血案 1.前言&#xff1a; 相信Databinding和Merge大家都不陌生&#xff0c;今天讲解的是Databinding和Merge一起使用遇到的问题&#xff0c;在父布局使用&#xff0c;引用的布局使用Merge会导致id找不到&#xff0c;运行时直接崩溃了&…

SQLiteDataBase数据库

XML界面设计 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_paren…

04-微服务02

我们将黑马商城拆分为5个微服务&#xff1a; 用户服务 商品服务 购物车服务 交易服务 支付服务 由于每个微服务都有不同的地址或端口&#xff0c;相信大家在与前端联调的时候发现了一些问题&#xff1a; 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址…