Java基础知识总结(超详细整理)

一:概述

        1.1Java类及类的成员

                属性、方法、构造器、代码块、内部类

          (1)数组

                        java虚拟机内存划分

                                

                        各区域作用

                                

                        内存解析

                                

                        基本使用

                                  

                                两个变量指向一个一维数组

                                        没有new就不会在堆里新开辟空间

                                                      

 

                (2)对象数组

                                

                (3)方法

                        形参:方法声明时,一对小括号声明的一个或多个形式参数,简称形参

                        实参:方法被调用时,实际传递给形参的变量或常量,就称为实际参数,简称实参

                                

                        值传递机制场景

                                方法内声明的局部变量     

                                基本数据类型传递的是数据值           

                                        

                                引用类型传递的是地址值

                                           

                               形参与实参

                                             

二:面向对象基础

        2.1面向对象的特征

                封装、继承、多态(抽象)

        2.2其它关键字的使用

                This、super、package、import、static、final、interface、abstract

        2.3面向对象和面向过程

                (1)面向过程

                                

                (2)面向对象

                        先找实现事情涉及到的主体(类)、后看类完成任务需要具备什么功能(方法)

                                

        2.4类和对象

                        

                (1)类的声明和使用

                        类的设计:设计类的成员,类的设计是为了实例化对象,调用类的属性和方法

                                        

                (2)类的实例化

                        创建对象,是为了调用属性的类和方法。对象的实例化是对获取到类的属性和方法赋值

                         

                (3)对象在内存中分配涉及到的内存结构

                        刚创建对象时存在默认值

                        创建对象即开辟了空间,而变量是获取到了空间的首地址

                        两个变量指向的是同一个对象

                                 

                (4)通过方法调用对象

                        每调用一个方法,相当于一个新的栈针

                        引用类型变量其实都是地址

                        返回值返回给调用者,返回给对象没有用,因为对象是栈针

                        main函数结束后,对应指针出栈,p1没了,堆内p1对应空间无指针指向,后期垃圾回收器将堆回收

                                

三:面向对象三大特征

        3.1 封装

                (1)权限修饰符

                                

                (2)构造器

                        每个类都有构造器,包括抽象类(不能造对象)

                        声明

                                权限修饰符 类名(新参列表){}

                                        

                        作用

                                

                        使用说明

                                

                (3)实例变量赋值过程

                        分类

                                

                        执行顺序判断:根据打印值是否覆盖判断

                                   

                       执行先后顺序 执行次数

                                  

                 (4)JavaBean

                                JavaBean是一种Java语言写成的可重用组件

                                  

                                ideal技巧

                                Alt+inset:创建get、set方法

                   (5)关键字this

                                使用场景

                                        

                                概述

                                        

                                调用属性和方法

                                        针对于方法内的使用情况(准确的说是非static1修饰的方法)

                                                

                                        构造器内使用情况

                                                  

                                                

                                        this调用构造器

                                                

                                        This()调用当前空参构造器

                                                

        3.2 继承

                        

                (1)场景

                                继承不能打破封装性(虽然继承了但不能用)

                                

                (2)使用说明

                                

                (3)默认父类

                                

                (4)多层继承

                                

                (5)方法重写

                                定义

                                        子类对父类继承过来的方法进行的覆盖、覆写的操作,就称为方法的重写

                                        

                                遵循规则

                                        子类不能重写父类中声明为private权限修饰的方法

                                        

                (6)super调用构造器

                        使用场景

                                

                        属性不覆盖

                                若子类中声明了与父类同名属性,子类中包含两个同名属性

                                        

                        super调用属性、方法

                                        

                        super调用构造器

                                子类继承父类时,不会继承父类的构造器

                                在子类构造器首行  

                                        

                        子类继承父类时不继承父类构造器,构造器只在同名类中有

                        子类构造器首行默认调用父类空参构造器

                (7)子类对象实例化

                        从结果来看,体现为类的继承性

                                

                        从过程来看

                                

                        创建对象是new,构造器是用于初始化的

                                

        3.3 多态

                (1)定义

                        新建的对象必须为定义的变量类型的子类

                                  

                 (2)使用前提

                                

                (3)适用性

                                

                         使用场景

                                

                (4)好处

                                避免多次重载

                                新增子类时不用修改方法,对拓展进行开放,对修改进行关闭

                                    

                (5)向下转型

                                父类变量接受了子类对象后,不能调用子类拥有的特定方法

                                                

                (6)static

                                定义

                                实例变量是指每个对象都有自己的变量,被一个类所有实例所共享的成员变量叫类变量,不用创建对象也有

                                

                                使用

                                        一个更改,其它人用的时候也是改变了的(在内存空间中只有一份)

                                static修饰方法

                                        

                (7)单例设计模式

                                定义

                                        

                                实现思路

                                        

                (8)代码块

                                随着类的加载而执行

                                    

                                案例使用

                                        

                (9)Final

                                fina修饰类表示类不能被继承,final修饰表示方法不能被重写

                                final修饰的变量其实就变成了常量,意味着一旦赋值,就不可更改

                                        

     

              

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

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

相关文章

StarRocks Community Monthly Newsletter (Apr)

版本动态 3.4.3 版本更新 核心功能升级 Routine Load和Stream Load新增Lambda表达式支持,支持复杂的列数据提取 增强JSON数据处理能力,支持将JSON Array/Object转为ARRAY/MAP类型 优化information_schema.task_runs视图查询,新增LIMIT支持…

探索AI新领域:生成式人工智能认证(GAI认证)助力职场发展

在数字化时代的大潮中,人工智能(AI)技术以其强大的影响力和广泛的应用前景,正逐步重塑我们的生活与工作方式。随着生成式AI技术的崛起,掌握这一前沿技能已成为职场竞争中的关键优势。那么,如何通过系统的学…

数据库触发器Trigger

在数据库管理系统中,触发器(Trigger)是一种特殊的存储过程,它在特定的事件发生时自动执行。触发器通常用于维护数据的完整性和一致性。通过事件触发而被执行,不能直接调用。 触发器的三要素 触发事件 before/after&a…

如何利用 Java 爬虫获得某书笔记详情:实战指南

在知识分享和学习的领域,许多平台提供了丰富的书籍笔记和学习资源。通过 Java 爬虫技术,我们可以高效地获取这些笔记的详细信息,以便进行进一步的分析和整理。本文将详细介绍如何利用 Java 爬虫获取某书笔记详情,并提供完整的代码…

主成分分析的应用之sklearn.decomposition模块的PCA函数

主成分分析的应用之sklearn.decomposition模块的PCA函数 一、模型建立整体步骤 二、数据 2297.86 589.62 474.74 164.19 290.91 626.21 295.20 199.03 2262.19 571.69 461.25 185.90 337.83 604.78 354.66 198.96 2303.29 589.99 516.21 236.55 403.92 730.05 438.41 225.80 …

【Redis】List 列表

文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型,用于存储多个字符串。在操作和实现上,类似 C 的双端队列,支持随机访问(O(N)…

Android framework 中间件开发(三)

前两篇我们讲了中间件的开发和打包应用, Android framework 中间件开发(一) Android framework 中间件开发(二) 这边我们来讲一下在中间件中编写JNI 1.新建C文件 找到frameworks\base\services\core\jni\路径,新建一个cpp文件,文件名为com_android_server_DarkControlService.c…

深入了解linux系统—— 基础IO(上)

文件 在之前学习C语言文件操作时,我们了解过什么是文件,这里简单回顾一下: 文件存在磁盘中,文件有分为程序文件、数据文件;二进制文件和文本文件等。 详细描述见文章:文件操作——C语言 文件在磁盘里&a…

Flink CDC—实时数据集成框架

Flink CDC 是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API),它基于数据库日志的 CDC(变更数据捕获)技术实现了统一的增量和全量数据读取。 该工具使得用户能够以 YAML 配置文件…

ES(ES2023/ES14)最新更新内容,及如何减少内耗

截至2023年10月,JavaScript(ECMAScript)的最新版本是 ES2023(ES14)。 ES2023 引入了许多新特性,如findLast、toSorted等,同时优化了性能。通过减少全局变量、避免内存泄漏、优化循环、减少DOM操作、使用Web Workers、懒加载、缓存、高效数据结构和代码压缩,可以显著降低…

常见的 Python 环境配置问题及解决方案

1. Python 环境配置的常见问题 初学者在配置 Python 环境时,可能会遇到以下几类问题: 1.1 不同版本的兼容性 Python 目前有两个主要版本系列:Python 2.x 和 Python 3.x。Python 2.x 已于 2020 年 1 月 1 日停止维护,因此强烈建…

day20-线性表(链表II)

一、调试器 1.1 gdb(调试器) 在程序指定位置停顿 1.1.1 一般调试 gcc直接编译生成的是发布版(Release) gcc -g //-g调式版本,(体积大,内部有源码)(DeBug&#…

基于Spring Boot+Layui构建企业级电子招投标系统实战指南

一、引言:重塑招投标管理新范式 在数字经济浪潮下,传统招投标模式面临效率低、透明度不足、流程冗长等痛点。本文将以Spring Boot技术生态为核心,融合Mybatis持久层框架、Redis高性能缓存及Layui前端解决方案,构建一个覆盖招标代理…

uniapp -- uCharts 仪表盘刻度显示 0.9999999 这样的值问题处理。

文章目录 🍉问题🍉解决方案🍉问题 在仪表盘上,23.8变成了 23.799999999999997 🍉解决方案 formatter格式化问题 1:在 config-ucharts.js 或 config-echarts.js 配置对应的 formatter 方法 formatter: {yAxisDemo1: function (

git 对于已经追踪,但没有git add 的文件,撤回修改的方法

要撤销对已追踪文件的修改&#xff08;但尚未使用git add添加到暂存区&#xff09;&#xff0c;你可以使用以下几种方法&#xff1a; 1. 使用 git restore (Git 2.23.0及更高版本) 这是较新版本Git中推荐的方式&#xff1a; # 撤销单个文件的修改git restore <file># …

脚本语言Lua

本文来源 &#xff1a;腾讯元宝 Lua是一种轻量级、可嵌入的脚本语言&#xff0c;由巴西里约热内卢天主教大学的Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开发。其设计目标是嵌入应用程序中&#xff0c;提供灵活的扩展和定制功能。 主要特性…

ThingsBoard使用Cassandra部署时性能优化

1、概述 当遇到ThingsBoard设备数量特别多的时候,并且传输数据遥测点量特别大的时候,我们需要调整一下参数来进行优化,使其性能达到最佳的进行快速写入。 注意:以下这些参数再系统部署的时候就需要规划好配置,不能安装好了再二次来进行配置。 2、Cassandra配置参数优化 …

Git Worktree 使用

新入职了一家公司&#xff0c;发现不同项目用的使用一个 git 仓库管理。不久之后我看到这篇文章。 Git 的设计部​​分是为了支持实验。一旦你确定你的工作被安全地跟踪&#xff0c;并且存在安全的状态&#xff0c;以便在出现严重错误时可以恢复&#xff0c;你就不会害怕尝试新…

维智定位 Android 定位 SDK

概述 维智 Android 定位 SDK是为 Android 移动端应用提供的一套简单易用的定位服务接口&#xff0c;为广大开发者提供融合定位服务。通过使用维智定位SDK&#xff0c;开发者可以轻松为应用程序实现极速、智能、精准、高效的定位功能。 重要&#xff1a;为了进一步加强对最终用…

【CSS】使用 CSS 绘制三角形

一、Border 边框法&#xff08;最常用&#xff09; 原理&#xff1a;通过设置元素的宽高为 0&#xff0c;利用透明边框相交形成三角形。 .triangle {width: 0;height: 0;border-left: 50px solid transparent; /* 左侧边框透明 */border-right: 50px solid transparent; /* …