实训笔记6.5

news2025/1/23 13:00:27

实训笔记

  • 6.5
    • 一、座右铭
    • 二、上周回顾
      • Java基本语法
        • 1、Java的安装和环境变量的配置
        • 2、Java的标识符、关键字和保留字
        • 3、Java中的变量和常量、字面量
        • 4、数据类型
        • 5、运算符
        • 6、流程控制
        • 7、数组
        • 8、JVM内存图
        • 9、面向对象的两大概念-类和对象
    • 三、类的组成
      • 3.1 属性的声明和使用
        • 3.1.1 属性的完整声明语法:
        • 3.1.2 属性的分类
        • 3.1.3 属性的调用
        • 3.1.4 属性的初始化问题:
      • 3.2 方法的声明和使用
        • 3.2.1 方法的完整的声明语法
        • 3.2.2 方法的调用
        • 3.2.3 方法的分类
        • 3.2.4 方法的返回值
        • 3.6.5 方法名的问题
        • 3.6.6 方法的形参列表
        • 3.2.7 方法JVM内存图
        • 3.2.8 方法的重载
      • 3.3 构造器的声明和使用
        • 3.3.1 构造器的定义
        • 3.3.2 构造器的使用
        • 3.3.3 类中的默认构造器的问题
        • 3.3.4 构造器和构造参数的问题
        • 3.3.5 构造器JVM内存图的问题

6.5

一、座右铭

我的故事你说,我的文字我落,我值几两你定,我去何方我挑。

二、上周回顾

Java基本语法

1、Java的安装和环境变量的配置

JDK、JRE、JVM的区别

环境变量的配置

2、Java的标识符、关键字和保留字

  1. 包名:纯小写
  2. 类名:大驼峰命名法
  3. 方法名和属性名:小驼峰命名法
  4. static final 修饰的属性名:全大写加_

3、Java中的变量和常量、字面量

【注意】

(1)变量、常量必须初始化之后才能使用,如果没有初始化直接使用,就会报错

(2)变量的分类:

  1. 局部变量:必须显示的初始化(手动)
    前面只能被final修饰

  2. 成员变量(属性):可以显示初始化,也可以使用JVM默认初始化

    可以被访问控制修饰符、static、final

4、数据类型

(1)基本数据类型-严格意义来说是Java的”耻辱“

​ 四类八种:整数byte short int long、浮点数float double、字符型char、布尔型boolean

【注意】

​ ①char类型的ASCII编码,可以将一个字符转成数字的格式

​ a 97 A 95

​ ②基本数据类型的类型转换:自动类型提升、强制类型转换

(2)引用数据类型:类、数组、接口

5、运算符

赋值运算符:+= -+ ……

算术运算符:+ / ++ –

比较运算符:==

逻辑运算符:&& & || |

位运算符:原码 反码 补码 << >>

三元运算符:特殊的分支流程

6、流程控制

顺序流程:JVM内存中的程序计数器

分支流程:if分支 switch case分支

​ **【注意】**switch能匹配的值的类型:byte short char int String enum

​ case穿透

循环流程:for while do while

​ **【注意】**循环的四要素、多重循环

7、数组

【注意】

①数组的四个核心概念:数组名、数组的长度、数组的索引、数组存放的元素类型

②数组中可以存放基本数据类型、也可以存放引用数据类型,但是数组本身是引用类型的

③如果数组中存放的数据类型,也满足类型的转换规则

8、JVM内存图

JVM内存分为:虚拟机栈区、堆区、本地方法栈区、程序计数器、独立于JVM之外存在于直接内存中空间:元数据区

9、面向对象的两大概念-类和对象

类的组成:属性、方法、代码块、构造器、内部类

三、类的组成

3.1 属性的声明和使用

3.1.1 属性的完整声明语法:

访问控制修饰符 [static] [final] 数据类型 属性名 [= 值];

3.1.2 属性的分类

  1. 静态属性:在类加载的时候在元数据区域初始化操作,只会存在一份
  2. 非静态属性:在创建对象的时候才会在堆区进行初始化操作,一个对象初始化一份

3.1.3 属性的调用

对象名.属性名

静态属性:

可以直接使用类名.属性名

3.1.4 属性的初始化问题:

属性也是变量,需要初始化之后才能使用,但是属性无需手动初始化,如果没有初始化的话,在类加载或者构建对象的时候会赋予默认值

例外:

为了避免属性的调用异常,static final修饰的属性必须显示的手动初始化

3.2 方法的声明和使用

3.2.1 方法的完整的声明语法

访问控制修饰符 [static] [final] 返回值类型 方法名-小驼峰(形参列表) {

方法体;

【注意事项】:如果方法有返回值类型的话,必须在方法体的逻辑上的最后一行还有return+返回值类型的数据 方式返回针对性的值

}

3.2.2 方法的调用

  1. 语法:

    所有方法:对象名.方法名(实参列表);

    静态方法:类名.方法名(实参列表)

3.2.3 方法的分类

  1. 静态方法:在类加载的时候在元数据区域声明了方法,在内存只存在一份

  2. 非静态方法在对象创建的时候在堆区域声明了方法,在内存存在无数份

    *****【注意】

    1. 方法和方法之间是可以相互调用的,调用的时候有一些规则必须要遵守
    2. static修饰的方法无法调用非static修饰的方法
    3. 非static修饰的方法可以调用static修饰的方法
    4. 方法当中也可以直接使用本类中声明的属性,使用也必须满足静态调用规则

    代码:

    package method;
    
    public class Demo01 {
        public static String name;
        public static int age;
        public static void eat() {
            Demo01 d = new Demo01();
            d.run();
            System.out.println(name);
            //System.out.println(age);
        }
        public void run() {
            eat();
            System.out.println(name);
            System.out.println(age);
        }
        public static void main(String[] args) {
            eat();
        }
    }
    

3.2.4 方法的返回值

方法有返回值的,返回值的类型可以是任何数据类型,同时返回值类型还可以是一种特殊的返回值void

如果方法的返回值类型不是void,那么我们必须在方法体的逻辑上的最后一行使用return+返回值类型数据的定义方式定义返回值

不管是静态方法还是非静态方法都要声明返回值的

3.6.5 方法名的问题

方法名也是Java中标识符,除了满足标识符的四个要求之外,还必须满足小驼峰命名法。studentName

3.6.6 方法的形参列表

形参是方法在调用的时候,必须要传递进去的一些参数,方法可以有0个形参,也可以只有1个形参,也可以有多个形参。

  • 形参列表的声明语法

(数据类型形参名,数据类型形参名,……)

  • 形参就是方法的局部变量,局部变量没有被初始化,当我们调用方法时,必须按照形参的数据类型和顺序传递对应的数据值,传递数据值以后,局部变量就会在内存中自动初始化

  • **【注意】:**形参列表有一种特殊的形参,可变形参,在有些情况下,方法传递的参数的值的个数不确定的,但是参数的类型是确定的,可变长形参等同于数组,使用组完全一致,但是可变长形参可以不用传递任何的数据。

  1. 语法:

数据类型...... 形参名

  1. 可变长形参的使用就是数组的使用方式

  2. 可变长形参使用有一些注意事项:

3.2.7 方法JVM内存图

在这里插入图片描述

3.2.8 方法的重载

理论上同一个类中方法名必须是唯一的,但是在满足某些条件的基础之上,我们可以让同一个类中出现同名的多个方法。同名的多个方法成为方法的重载。

在类中,确实同一种方法可能因为参数问题需要定义多个重名方法,那么此时这些方法成为方法重载,可以在同一个类中存在多个重载方法。

【注意】方法重载必须满足如下条件

  1. 必须在同一个类中
  2. 方法重载只和形参列表有关系,和返回值没有任何关系
  3. 只要形参满足三个条件的任意一种,都可以构成方法重载(参数的个数、参数的类型、参数的顺序)

3.3 构造器的声明和使用

3.3.1 构造器的定义

构造器其实也是一个方法,比较特殊的方法,构造器在很多情况下也叫构造方法,构造方法是专门用来创建该类对象实例的一个方法。

语法:构造方法的返回值就是该类的对象,构造方法的方法名必须是类名
访问控制修饰符类名-构造器方法名(形参列表){
构造体;

}

【注意】构造器可以有多个,只需要满足方法的重载的条件即可。

3.3.2 构造器的使用

构造器的使用说白了就是对象的创建语法
类名对象名=new构造器的名字-类名(实参列表);

3.3.3 类中的默认构造器的问题

如果一个类中没有声明任何的构造器,那么类在编译的时候会给类中的class文件中自动添加一个public修饰的无参构造器。

一旦我们手动在类中声明了构造器,不管是无参的还是有参的,Java就不会给我们提供了无参构造器了,如果你想使用无参构造器,那么此时就必须手动声明了。

3.3.4 构造器和构造参数的问题

构造参数默认情况下就是给类中的属性进行赋值操作的。

方法中局部变量名可以和属性名重复的,但是重复之后,如果在方法中直接使用变量名获取的是局部变量,如果方法中使用属性,属性名前面要加上this.属性名。

3.3.5 构造器JVM内存图的问题

构造器也是一个方法,执行的时候需要方法入栈。

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

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

相关文章

扩散模型之DDPM

扩散模型之DDPM 文章前置生成模型总结 Design of DDPM正向加噪过程反向去噪过程 文章前置 最原文链接&#xff08;英文&#xff09;&#xff1a;What are Diffusion Models? 原文链接&#xff1a;Diffusion扩散模型大白话讲解&#xff0c;看完还不懂&#xff1f;不可能 原文链…

第10章 对象和类

第10章 对象和类 10.1 过程性编程和面相对象编程10.2 抽象和类10.2.1 类型是什么10.2.2 C中的类10.2.3 实现类成员函数10.2.4 使用类 10.1 过程性编程和面相对象编程 采用OOP方法时&#xff0c;首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操…

【蓝桥刷题】备战国赛——异或三角

蓝桥杯2021国赛真题——异或三角 &#x1f680; 每日一题&#xff0c;冲刺国赛 &#x1f680; 题目导航&#xff1a; 异或三角 &#x1f387;思路&#xff1a;数位 d p dp dp d f s dfs dfs 思维 &#x1f531;思路分析&#xff1a; ✅数理基础&#xff1a; 按位异或&am…

(2017,AdaIN)用自适应实例归一化进行实时的任意风格迁移

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization 公众号&#xff1a;EDPJ 目录 ​​​​​​​0. 摘要 1. 简介 2. 相关工作 3. 背景 3.1 批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09; 3.2 实例归一化&#xff…

入驻京东直播间、成功借壳上市,交个朋友和时间“交朋友”

交个朋友一直走在“交朋友”的路上。 5月31日晚&#xff0c;交个朋友正式入驻京东直播间&#xff0c;首播销售额超1.5亿元&#xff0c;直播热度榜达人榜第一名&#xff0c;累计访问人次超1700万。据了解&#xff0c;京东618期间&#xff0c;除了日常直播外&#xff0c;交个朋友…

java并发编程:可见性、原子性、有序性三大特性详解

文章目录 可见性导致可见性的原因线程交叉执行重排序结合线程交叉执行共享变量更新后没有及时更新 如何解决可见性问题 原子性出现原子性问题的原因如何解决原子性问题 有序性导致有序性的原因如何解决有序性问题 总结 可见性 内存可见性&#xff0c;指的是线程之间的可见性&am…

IPv6NAT-PT实验:IPv4和IPv6地址转换的配置和验证

IPv6NAT-PT实验&#xff1a;IPv4和IPv6地址转换的配置和验证 【实验目的】 熟悉IPv6NAT-PT的概念。 掌握静态IPv6NAT-PT的配置 掌握动态IPv6NAT-PT的配置。 验证配置。 【实验拓扑】 设备参数如下表所示。 设备 接口 IP地址 子网掩码 默认网关 R1 S0/0 192.168.12…

2023HW护网红队必备工具总结

一、信息收集 1、AppInfoScanner 一款适用于以HVV行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具&#xff0c;可以帮助渗透测试工程师、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如&#xff…

Java设计模式—模板方法模式

前言&#xff1a;模板方法模式是模板模式的一个具体实现&#xff0c;它定义了一个抽象类&#xff0c;其中包含一个模板方法和若干个基本方法。其中模板方法定义了算法骨架&#xff0c;而基本方法则由子类来实现。因此&#xff0c;模板方法在定义算法的结构方面提供了支持&#…

springMvc 解决 multipart/form-data 方式提交请求 不能获取非文件类型参数的问题和指定springmvc获取静态资源路径

问题&#xff1a; RequestMapping(value "/test",method RequestMethod.POST)ResponseBodypublic String test(String name,String id,MultipartFile file){System.out.println(name);System.out.println(id);System.out.println(file.getOriginalFilename());ret…

onnx模型的修改与调试demo

主要参考&#xff1a; 模型部署入门教程&#xff08;五&#xff09;&#xff1a;ONNX 模型的修改与调试 第五章&#xff1a;ONNX 模型的修改与调试 使用netron 可视化模型 读写onnx 构造onnx 创建一个描述线性函数 output axb 的onnx模型。 需要两个节点&#xff0c;第一个…

造轮子--自己封装一个 start

背景 都说不要造轮子&#xff0c;但是青柠认为&#xff0c;有的时候&#xff0c;造个轮子&#xff0c;更有助于清楚详细的业务逻辑&#xff0c;所以咱也自己写一个轮子&#xff0c;搞个系统开发。大体思路就是先搭建基础框架&#xff0c;然后细写业务逻辑&#xff0c;会涵盖主…

图解HTTP书籍学习2

确保Web安全的HTTPS HTTP的缺点 ●通信使用明文&#xff08;不加密&#xff09;&#xff0c;内容可能会被窃听 ●不验证通信方的身份&#xff0c;因此有可能遭遇伪装 ●无法证明报文的完整性&#xff0c;所以有可能已遭篡改 加密处理防止被窃听 通信的加密 一种方式就是…

【React】类组件,JSX语法,JSX原理,传递参数,条件渲染,列表渲染

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 React使用组件&#xff08;类组件&#xff09;JSX语法书写规范JSX插入的内容JSX属性绑定JSX类绑…

前端基础(CSS)——css介绍 常用样式 案例—进化到Bootstrap——进化到Element-UI(未完待续)

目录 引出CSS相关1.css写在哪里&#xff1f;2.css的选择器【重要】&#xff08;1&#xff09;标签选择器---div{}&#xff08;2&#xff09;id选择器----#div01{}&#xff08;3&#xff09;类选择器---class"div01"&#xff0c;.dav01{}&#xff08;4&#xff09;后代…

saas产品私有化(一) 缓存中间件适配

一.背景 名词解释:私有化一般指的是在对客交付过程中,客户由于自身数据敏感,成本控制等原因要求交付乙方将售卖的服务利用现有甲方的硬件设备或者云服务进行服务的部署. 面向场景:一般特制的是saas化的云服务软件提供商的对特殊客群的场景.其中saas行业中比较起步和规模比较大的…

流氓软件篡改微软EDGE浏览器主页面的那些伎俩

微软的EDGE浏览器很好用&#xff0c;但也很容易被绑架&#xff0c;在网上下载各类免费软件&#xff0c;只要你安装完&#xff0c;十有八九就给你把主页改成某某导航了。尽管打开EDGE直接进入360、毒霸、好123等链接对上网影响也不大&#xff0c;打开这些导航页面后&#xff0c;…

IMX6ULL裸机篇之I2C实验主控代码说明二

一. I2C实验 I2C实验内容&#xff1a; 学习如何使用 I.MX6U 的 I2C 接口来驱动 AP3216C&#xff0c;读取 AP3216C 的传感器数据。 I2C读写数据时序图&#xff1a; I2C写数据时序图如下&#xff1a; I2C读数据时序图如下&#xff1a; 二. I2C主控读写时序 1. 读数据与写数…

MMDetection学习记录(二)之配置文件

文件结构 config文件 在 config_base_ 文件夹下有 4 个基本组件类型&#xff0c;分别是&#xff1a;数据集(dataset)&#xff0c;模型(model)&#xff0c;训练策略(schedule)和运行时的默认设置(default runtime)。 命名风格 {model}_[model setting]_{backbone}_{neck}_[no…

微信小程序项目实例——密码管理器

今日推荐&#x1f481;‍♂️ 自疫情后武林广场的音乐喷泉再次开启⛲⛲⛲ 坐在最佳视角下观赏了一场久违的表演&#x1f386;&#x1f386;&#x1f386; &#x1f52e;&#x1f52e;&#x1f52e;&#x1f52e;&#x1f52e;往期优质项目实例&#x1f52e;&#x1f52e;&…