Java基础知识巩固自测(上)
前言
该文章适用于已初步了解Java基础知识的入门学习者,便于快速回顾知识点,查漏补缺。
内容包括:Java面向对象相关知识、SQL基础语法
复习建议技巧
实用3W思维法(What、Why、How)
1. What(什么):明确问题或目标是什么。这是思考的第一步,需要清晰地定义问题或目标,以便后续的分析和解决方案能够有针对性地进行。
问:自行车是什么?
答:自行车是一种人力驱动的交通工具,通常由一个鞍座、两个车轮、车把、脚踏和能转动的链条组成。
2. Why(为什么):分析问题或目标的原因和背景。这一步需要深入挖掘问题或目标的本质,了解相关的背景信息和影响因素,以便更好地理解问题或目标,并为后续的解决方案提供有力的支持。
问:为什么会有自行车?
答:相比于徒步行走,节省时间;相比于汽车,节省费用
3. How(怎么用):提出解决方案并实施。在明确了问题或目标,并分析了相关的原因和背景之后,需要思考如何解决问题或实现目标。这一步需要创造性地提出解决方案,并制定出具体的实施计划,以便能够有效地解决问题或实现目标。
问:如何使用自行车?
答:买自行车,看理论视频跟练、他人知道并实践等
推荐用上述复习思维,去扫描知识点,切记: 学过了!= 知道 知道!=熟悉 熟悉!=掌握
注意:新手的下一步未必是入门,或许只是高级新手,戒骄戒躁
运用空杯心态,每个知识点,通过3W思维去问自己,一旦某个知识点卡住了,就是你提升认识的好时机!
1.面向对象三大特性
(1)封装
定义:封装是将对象的状态(属性)和行为(方法)打包在一起,隐藏对象的内部实现细节,仅提供公开的接口(getter/setterf方法)来与对象进行交互
例子:以汽车为例,由不同部件(属性)组成的机械合成物(汽车),提供了一系列方法(离合、手刹、油门、脚刹等),这些暴露在外的都是让我们作为用户(调用者)能够直接上手使用的(接口),但是踩油门为什么能让汽车加速是我们不需要关心,这些由专业的汽车制造商、专家考虑,并且某些出于专利隐私,需要作隐藏
关于封装需要掌握的是:
类的构成(定义类的属性、构造器、getter/setter、toString)
(2)继承
定义:子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性、相同的行为。
例子:有些事情前人已经做好了,我们只需拿来用
关于继承需要掌握的是:
如何继承某个类(extends)、子类重写父类构造方法和属性(super的使用)、对Object类中equals以及toString的重写、继承特点(支持多继承)
(3)多态
简单联想,即多种形态
定义:多态是同一个行为具有多个不同表现形式或形态的能力
例子:比如一个人,他可以作为一名老师,同时也是父母的孩子、爱人的伴侣、领导的下属,这就是同样作为一个人展现的多种形态
实现多态的三个前提条件:继承、方法重写、向上转型
关于多态需要掌握的是:
能识别多态的代码体现形式(如同个方法名不同执行内容【重载】、可以以父类或接口的名义new一个它的子类对象)
2.List、Map的基本使用
关于List需要掌握的是:
能正确创建List对象(ArrayList或LinikedList)、list.add、list.get以及list.get越界时返回的值、list的遍历(for循环、foreach)
关于Map需要掌握的是:
能正确创建Map对象(HashMap或TreeMap)、map.put、map.get以及map.get(无效的key)时返回的结果
思考集合中为什么需要指定泛型
3.相关零散知识点
什么是基本数据类型, 什么是引用数据类型?
熟练掌握 无参数有参数的构造方法(手写), 并且懂得调用无参 有参构造创建对象
熟练掌握 setter/getter (手写), 并会调用他们进行取值、设值
熟练掌握 重写 Object 父类的 equals 方法
Object 相关
Object 是一切类的父类
单继承
String 继承 重写 equlas
为什么字符串比较不能使用 == , 要用 equals
new 和 构造函数的作用是什么, 有参数构造方法, 无参数构造方法
类和对象关系是什么?
抽象类和接口的区别?
什么是向上转型, 代码如何写, 结合数组, 集合
什么是向下转型
面向对象三大特性是什么?
重写和重载的区别是什么?
Object s = "111" ; 这样写法是错误的? 请解释发生什么?
包装类: double x = null 对吗? Double x=null 对吗? 为什么?
this 的作用是什么?
super 和 super() 分别是什么意思?
static 修饰变量的作用是什么, static 修饰方法的作用是什么?修饰后调用的表现形式是什么?
静态方法和成员方法调用关系?
什么是多态, 形成多态的前提条件是什么? 请举一个例子
相关文章:
Java基础知识巩固自测(上)
前言 该文章适用于已初步了解Java基础知识的入门学习者,便于快速回顾知识点,查漏补缺。 内容包括:Java面向对象相关知识、SQL基础语法 复习建议技巧 实用3W思维法(What、Why、How) 1. What(什么&#x…...
通过 Python+Nacos实现微服务,细解微服务架构
shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 背景 一直以来的想法比较多,然后就用Python编写各种代码脚本。很多…...
如何使用new和delete操作符进行动态内存分配和释放?
在C中,new 和 delete 操作符用于在堆(heap)上动态地分配和释放内存。这是管理内存的一种重要方式,特别是在需要创建可变数量或生命周期与程序执行流程不一致的对象时。 使用 new 进行动态内存分配 当你使用 new 操作符时&#x…...
【SCAU数据挖掘】数据挖掘期末总复习题库选择题及解析
1.将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?( C ) A.频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 解析:数据预处理是数据分析和数据挖掘的重要步骤之一,包括数据清洗、集成、变换、规约(如维度规约、数值规约)等。这…...
顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH)
顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH) 一、最大通话时间 1、配置拨号方案 1、点击拨号方案 ->2、在框中输入通话最大时长->3、点击添加->4、根据图中配置->5、勾选continue。修改拨号方案需要等待一分钟即可生效 action"sched…...
深度学习:使用argparse 模块
在深度学习中,结合 Bash 脚本和 argparse 模块,可以实现高效的任务自动化和参数管理。Bash 脚本可以用来调度任务和管理环境,而 argparse 模块可以用来解析命令行参数,控制深度学习模型的训练和评估过程。 1.argparse 模块 argp…...
unity text根据文本内容自动设置高度
我们经常会遇到需要根据文字数量动态修改文本框高度的需求,我们可以使用文本的行数*每行的高度来计算文本框的高度,伪代码如下: int oneLineHight 50;// 每行的像素高度 private void ResetTextHight(string str) {//设置文字内容ShowText.…...
ARM 汇编 C语言 for循环
在使用 Keil 编译基于 STM32F103 的 C 语言程序时,生成的汇编代码会有一些不同。STM32F103 是基于 ARM Cortex-M3 内核的微控制器,因为汇编语言是 ARM 汇编,而不是 x86 汇编。 示例 C 代码 假设我们有如下的简单 C 语言 for 循环代码&#x…...
java:【@ComponentScan】和【@SpringBootApplication】扫包范围的冲突
# 代码结构如下: 注意【com.chz.myBean.branch】和【com.chz.myBean.main】这两个包是没有生重叠的。 主程序【MyBeanTest1、MyBeanTest2、MyBeanTest3】这两个类是在包【com.chz.myBean.main】下 # 示例代码 【pom.xml】 <dependency><groupId>org.…...
本学期嵌入式期末考试的综合项目,我是这么出题的
时间过得真快,临近期末,又到了老师出卷的时候。作为《嵌入式开发及应用》这门课的主讲教师,今年给学生出的题目有一点点难度,最后的综合项目要求如下所示,各位学生朋友和教师同行可以评论一下难度如何,单片…...
CSS概述
CSS是一种样式表语言,用于为HTML文档控制外观,定义布局。例如, CSS涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面 。 ● 可将页面的内容与表现形式分离,页面内容存放在HTML文档中,而用 于定义表现形式…...
Tensorflow-GPU工具包了解和详细安装方法
目录 基础知识信息了解 显卡算力 CUDA兼容 Tensorflow gpu安装 CUDA/cuDNN匹配和下载 查看Conda driver的版本 下载CUDA工具包 查看对应cuDNN版本 下载cuDNN加速库 CUDA/cuDNN安装 CUDA安装方法 cuDNN加速库安装 配置CUDA/cuDNN环境变量 配置环境变量 核验是否安…...
【python】OpenCV GUI——Trackbar(14.2)
学习来自 OpenCV基础(12)OpenCV GUI中的鼠标和滑动条 文章目录 GUI 滑条介绍cv2.createTrackbar 介绍牛刀小试 GUI 滑条介绍 GUI滑动条是一种直观且快速的调节控件,主要用于改变一个数值或相对值。以下是关于GUI滑动条的详细介绍:…...
Qt自定义日志输出
Qt自定义日志输出 简略版: #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…...
[C++] vector list 等容器的迭代器失效问题
标题:[C] 容器的迭代器失效问题 水墨不写bug 正文开始: 什么是迭代器? 迭代器是STL提供的六大组件之一,它允许我们访问容器(如vector、list、set等)中的元素,同时提供一个遍历容器的方法。然而…...
Java——变量作用域和生命周期
一、作用域 1、作用域简介 在Java中,作用域(Scope)指的是变量、方法和类在代码中的可见性和生命周期。理解作用域有助于编写更清晰、更高效的代码。 2、作用域 块作用域(Block Scope): 块作用域是指在…...
WPF界面设计
1、使用C#-WPF实现抽屉效果-炫酷漂亮的侧边栏导航菜单-SplitViewMD主题重绘原生控件的美观效果-提供源码Demo下载 码源地址:https://download.csdn.net/download/Prince999999/89424685 2、使用C#-WPF实现抽屉效果-菜单导航功能实现,常规的管理系统应该…...
【C#】使用JavaScriptSerializer序列化对象
在C#开发语言编程中,通常使用系统内置的JavaScriptSerializer类来序列化对象,以便将其转换为JSON格式的文本存储与后台服务通信, 在这里将为大家详细介绍一下这个过程。 文章目录 反序列化序列化忽略属性 假设处理的数据中有一个对象类, 如下 public cl…...
HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…...
EasyRecovery2024数据恢复神器#电脑必备良品
EasyRecovery数据恢复软件,让你的数据重见天日! 大家好!今天我要给大家种草一个非常实用的软件——EasyRecovery数据恢复软件!你是不是也曾经遇到过不小心删除了重要的文件,或者电脑突然崩溃导致数据丢失的尴尬情况呢&…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
