Java中的一些名词概念

devtools/2024/10/19 17:28:16/

**函数式接口:**

概念:一个接口中的抽象方法只有一个,那么这个接口就是一个函数式接口。

形参:

形参变量是**功能函数里的变量**,只有<u>在被调用的时候才分配内存单元</u>,<u>调用结束后立即释放</u>。所以形参只在函数内部有效。

实参:

实参可以是**常量,变量,表达式,函数**等等,但无论是何类型,在进行函数调用是,他们必须有确定的值,以便把这些值拷贝给形参。

抽象方法,类

有abstract修饰

SQL常量字段值:

权限的值:

screen-capture

内存图:

screen-capture

**java基本数据类型 : **

Java中主要有八种基本数据类型:byte、short、int、long、float、double、boolean、char。      

screen-capture

注意:

1->Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析。

2->char a = 'h'char :单引号,String a = "hello" :双引号。

3->这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean 。

class文件:

就是字节码文件

**包装类 : **

![screen-capture](attachment:54b3799fcb441b020c6a32de3c8a813c)

一、int 是基本类型,直接存数值;而integer引用数据类型。 二、Int的声明不需要实例化,且变量声明后的初始值为0;Integer的是一个类,初始值为null,需要进行实例化,才能对变量数据进行处理。 三、Integer类是int的包装类,实际开发中Integer被看成一个对象,可以进行数据转换等操作。

**装箱:**将基本类型用它们对应的引用类型包装起来; **拆箱:**将包装类型转换为基本数据类型;

实例化 :

实质是 : 为对象开辟空间

**ArrayList的""是泛型 : **

    中间写要存储的数据类型

javabean类 , 测试类 , 工具类 :

screen-capture

深克隆和浅克隆的比较 :

screen-capture

全类名是某个文件在项目中的位置,格式为包名.类名 路径分为相对路径和绝对路径。 绝对路径是指这个文件在操作系统中的位置, 相对路径通过这个文件的上一级 ./ 或下一级/ 来指定文件内容

1 DAO层

DAO:Data Access Object(数据访问层),负责数据持久化工作。DAO层负责与数据库进行交互,封装对数据库的访问,涉及数据的增删改查处理(不涉及业务逻辑)。

2 Service层

Service:业务层,负责业务模块的逻辑应用设计。在项目的开发过程中一般先设计所需的业务接口类,之后再通过类来实现该接口(Java中接口可以多继承,而类不能),然后在Config文件中进行配置其实现的关联。之后就可以在Service层调用接口进行业务逻辑应用的处理。封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

3 Controller层

Controller:控制层,负责控制业务逻辑(例如登陆控制等具体的业务模块逻辑控制)。通常扮演负责控制处理Web前端发送的数据。Controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也需要在配置文件中进行。

[—注意—] Conroller层和Service层的区别是:Controlle层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计;

4 Entity层

Entity:实体层,数据库在项目中的类。放置一个个实体,及其相应的set、get方法。

Entity层中的类大多数是数据方面的,例如数据库中有负责登陆的User表(ID、UserName,Password),在Entity层就需要用private关键字定义与数据库中一样的字段(ID、UserName,Password)以及这些字段的get、set方法(方法可以Override)。

5 View层

View:通常指展示层,View层与控制层结合比较紧密,需要二者结合起来协同开发。View层主要负责前端页面的显示。

6 Utils层

Util是utiliy的缩写,是一个多功能、基于工具的包。如字符串处理、日期处理等,(建立数据库之间的连接),是通用的、与业务无关的,可以独立出来,可供其他项目使用。

namespace(命名空间) :

在大型项目中,可能存在大量的SQL语句,这时候为每个SQL语句起一个唯一
的标识(ID)就变得并不容易了。为了解决这个问题,在MyBatis中,可以为每
个映射文件起一个唯一的命名空间,这样定义在这个映射文件中的每个SQL语
句就成了定义在这个命名空间中的一个ID。只要我们能够保证每个命名空间中
这个ID是唯一的,即使在不同映射文件中的语句ID相同,也不会再产生冲突
了

java权限修饰 :

screen-capture

全类名 :

包名 + 类名

API :

把别人的方法封装成一个函数 , 用于开发者调用

SDK :

助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK

API 和 SDK 的区别 :

把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。

SDK=放着你想要的软件功能的软件包

API=SDK上唯一的接口

JVM(java虚拟机) :

目的是使用相同的字节码,它们都会给出相同的结果

JDK(Java Development Kit) :

它是功能齐全的 Java SDK,是提供给开发者使用的,能够创建和编译 Java 程序。他包含了 JRE,同时还包含了编译 java 源码的编译器 javac 以及一些其他工具比如 javadoc(文档注释工具)、jdb(调试器)、jconsole(基于 JMX 的可视化监控⼯具)、javap(反编译工具)等等

JRE (Java Runtime Environment):

Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,主要包括 Java 虚拟机(JVM)、Java 基础类库(Class Library)。

什么是字节码?采用字节码的好处? :

JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。

screen-capture

JIT(just-in-time compilation) 编译器 :

JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。

screen-capture

**编译型 :编译型语言 **

会通过编译器将源代码一次性翻译成可被该平台执行的机器码。一般情况下,编译语言的执行速度比较快,开发效率比较低。常见的编译性语言有 C、C++、Go、Rust 等等。 解释型 :解释型语言通过解释器一句一句的将代码解释(interpret)为机器代码后再执行。解释型语言开发效率比较快,执行速度比较慢。常见的解释性语言有 Python、JavaScript、PHP 等等。

java语言"编译与解释并存" :

这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过<u>先编译,后解释</u>两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。

移位运算符 :

移位操作中,被操作的数据被视为二进制数,移位就是将其向左或向右移动若干位的运算。

Java 移位运算符总结

screen-capture

成员变量和局部变量的区别 :

语法形式 :从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。

静态变量有什么用呢 ?

静态变量也就是被 static 关键字修饰的变量。它可以被类的所有实例共享,无论一个类创建了多少个对象,它们都共享同一份静态变量。也就是说,静态变量只会被分配一次内存,即使创建多个对象,这样可以节省内存。

静态方法为什么不能调用非静态成员

静态方法是属于类的,在类加载的时候就会分配内存,可以通过类名直接访问。而非静态成员属于实例对象,只有在对象实例化之后才存在,需要通过类的实例对象去访问。在类的非静态成员不存在的时候静态方法就已经存在了,此时调用在内存中还不存在的非静态成员,属于非法操作。

面向对象和面向过程的区别 :

1->面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。 2->面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。

default :

可以灵活地在不同的实现类中选择性地重写接口中的方法,而不用强制要求它们去实现所有的方法

深拷贝和浅拷贝 :

浅拷贝: 浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。

深拷贝 : 深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。

" == " 和 equals()的区别 :

**== **对于基本类型和引用类型的作用效果是不同的:

对于基本数据类型来说,== 比较的是值。

对于引用数据类型来说,== 比较的是对象的内存地址。

因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。

equals() 不能用于判断基本数据类型的变量,只能用来判断==两个对象是否相等==。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,因此所有的类都有equals()方法。


http://www.ppmy.cn/devtools/127065.html

相关文章

9-单引号和双引号的区别在PHP

单引号和双引号的区别 在PHP中&#xff0c;单引号&#xff08;&#xff09;和双引号&#xff08;"&#xff09;的主要区别在于它们对字符串内容的解析和处理方式。 1. 字符串解析 单引号&#xff1a;在单引号内&#xff0c;字符串的内容不会被解析&#xff0c;所有字符都…

Golang笔记_day05

一.Golang 垃圾回收 回收算法&#xff1a;三色标记混合写屏障 1.回收算法演变 Golang中的垃圾回收主要应用三色标记法&#xff0c;GC过程和其他用户goroutine可并发运行&#xff0c;但需要一定时间的**STW(stop the world)**&#xff0c;STW的过程中&#xff0c;CPU不执行用户…

【CSS in Depth 2 精译_048】7.2 CSS 响应式设计中的媒体查询原则(中):页面断点(breakpoint)样式的添加

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第七章 响应式设计】&#xff08;概述&#xff09; 7.1 移动端优先设计原则&#xff08;上篇&#xff09; 7.1.1 创建移动端菜单&#xff08;下篇&#xff09;7.1.2 给视口添加 meta 标签&#xf…

LeetCode_2413. 最小偶倍数_java

1、问题 2413. 最小偶倍数https://leetcode.cn/problems/smallest-even-multiple/给你一个正整数 n &#xff0c;返回 2 和 n 的最小公倍数&#xff08;正整数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;10 解释&#xff1a;5 和 2 的最小公倍…

pyechart绘制特征平台均值与方差图

pyechart绘制特征平台均值与方差图 1、导入库 pip install pyecharts==2.0.62、说明 查看特征平台均值与方差图的可以比较不同类型数据的某种特征范围,对比各类型数据此特征是否具有大的差异性,如果差异较大,则可以分多些权重,差异较小则可以不参与训练的过程。 3、效果…

攻防世界web引导模式 框架梳理

view_source 根据提示&#xff0c;没法右键&#xff0c;想办法右键查看源代码f12&#xff0c;找到flag robots 这个协议&#xff1a;表示网络爬虫可以访问哪些路径和不能访问哪些路径 之后查看路径得到flag backup 根据提示知道要找备份文件&#xff0c;搜索备份文件后缀…

什么是堡垒机?安全为什么需要堡垒机?

一、引言 随着信息技术的不断发展&#xff0c;企业的信息系统愈发复杂&#xff0c;伴随而来的安全威胁也日益严重。网络攻击、内部滥用、数据泄露等问题层出不穷&#xff0c;信息安全的重要性不言而喻。为了更好地管理和保护关键系统与数据&#xff0c;堡垒机成为了一种非常重…

图论day61:最小生成树|最小生成树理论基础:prim算法、kruskal算法(思维导图版)、53.寻宝(卡码网 第七期模拟笔试)

图论day61&#xff1a;最小生成树|最小生成树理论基础&#xff1a;prim算法、kruskal算法&#xff08;思维导图版&#xff09;、53.寻宝&#xff08;卡码网 第七期模拟笔试&#xff09; 最小生成树理论基础&#xff08;思维导图版&#xff09;53.寻宝&#xff08;卡码网 第七期…