知识小笔记

article/2025/8/30 4:48:56

1. 什么是JDK?

JDK有三个版本,分别是:
(1)J2SE: 标准版,主要用于开发桌面应用程序。

(2)J2EE: 企业版,主要用于开发企业及应用程序,如电子商务网站,ERP系统等。

(3)J2ME: 微缩版,主要用于开发移动设备、嵌入式设备上的Java应用程序。

BIN:开发工具,包含了开发、执行,调试Java程序所使用的工具和实用程序以及开发工具所需要的类库和支持文件。

JRE: 运行环境,实现了Java运行环境。是运行Java程序所必须的环境。JRE包含了Java虚拟机JavaTM Virtual Machine(JVM)、Java核心类库和支持文件。 如果只是运行Java程序,则只需要安装JRE。如果要开发Java程序,则需要安装JDK。 JDK中已经包含了JRE。

JVM: 运行所有Java程序的假想计算机,编写的java代码,都运行在JVM上, java虚拟机 跨平台性.

SRC: 构成Java核心API的所有类的源文件,包含了java.*、javax.*和某些org.*包中类的源文件,不包含com.sun.*包中类的源文件。

2. java基本数据类型

四型八类 : 整数型 :byte short int long
浮点型: float double
字符型: char
布尔型: boolean
在这里插入图片描述

3 引用类型

引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值

在这里插入图片描述

4 运算符

在这里插入图片描述

5. 循环有几种,区别是?

三种循环都可以互相代替
1、 for:知道循环次数
2、 while/do while:当循环次数不确定时
3、 while:先判断,不符合规则,不执行代码
4、 do while:代码最少被执行一次,再去判断,符合规则,再次执行代码

6 continue与 break的区别

break是结束循环。 continue是结束本次循环。 循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。

7. 数组

数组Array是用于储存多个相同类型数据的集合。想要获取数组中的元素值,可以通过元素的下标来获取,下标是从0开始的。
在这里插入图片描述

8 自定义方法

语法 : 访问修饰符 返回值类型 方法名(参数列表){ }
注意:

1)访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略;

2)方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void

如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return语句返回值 如果方法的返回类型为 void ,则方法中不能使用 return 返回值(可以使用return,但是只能是”return;”) 方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值 

3)方法名:定义的方法的名字,必须使用合法的标识符

4)传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。

9 . 字符串 String StringBuffer StringBuilder

字符串:字符串的定义:串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。
String :String类型是字符串的对象包装类型
StringBuilder:StringBulider是一个可变的字符串类,可以把它看作是一个容器.
在这里插入图片描述

10.equals与==的区别

这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。首先 == 操作符,可以比较的是,
1.两个变量的值是否相等,
2.两个引用变量是否相等

11 面向对象

谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者变成了指挥者,面向对象是基于面向过程而言的。
1、 封装性,把相关的数据封装成一个“类”组件
2、 继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
3、 多态,增强软件的灵活性和重用性1.2 类和对象

12 重载 重写

1、重载:是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或参数类型不能完全相同
2、重写:是存在子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型
3、重写是父类与子类之间多态性的一种表现
4、重载是一类中多态性的一种表现

13 类 抽象 接口

 类:1、 Java语言最基本单位就是类,类似于类型。2、 类是一类事物的抽象。3、 可以理解为模板或者设计图纸。

抽象:
1.抽象类的定义:抽象就是从多个事物中将共性的,本质的内容抽取出来。
2.抽象方法的由来:多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的
方法称为抽象方法。
2.1例子:例如:狼和狗都有吼叫的方法,可是吼叫内容是不一样的。所以抽象出来的犬科虽然有吼叫功能,但是并不明确吼叫的细节。
3.抽象类的特点:
3.1:抽象方法只能定义在抽象类中,抽象的方法和抽象的类必须由关键字abstract修饰。
3.1:抽象类值只定义方法声明,不定义功能主题(即方法的实现)。
3.2:抽象类不可以被创建对象。
3.3;抽象类只有子类继承了父类中的方法,并且对其中的所有抽象方法进行了重写。该子类才不是抽象类,只要不是重写当中的所有抽象方法,那么这个子类还是抽象类
4.注意点:
4.1:抽象类中是否有构造函数?有,用于给子类对象进行初始化。
4.2:抽象类中是否可以定义非抽象方法?可以
4.3:抽象关键字abstract和哪些不可以共存?final ,
private , static
4.4::抽象类中可不可以不定义抽象方法?可以。抽象方法目的仅仅为了不让该类创建对象。

接口:
java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。Java接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP面向对象的编程,如果要提高程序的复用率,增加程序的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些太有用的抽象类型做为java结构层次上的顶层。
特点
1、 接口中都是抽象方法
2、 通过interface关键字创建接口
3、 通过implements让子类来实现
4、 可以理解成,接口是一个特殊的抽象类
5、 接口突破了java的单继承的局限性
6、 接口和类之间可以多实现,接口和接口之间可以多继承
7、 接口是对外暴露的规则,是一套开发规范
8、 接口提高了程序的功能扩展,降低了耦合性

14 访问控制权限4种

private,protected,public,default。
在这里插入图片描述

15多线程

在计算机编程中,一个基本的概念就是同时对多个任务加以控制,多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。

16集合

Java集合是使程序能够存储和操纵元素不固定的一组数据。 所有Java集合类都位于java.uti包中。
与Java数组不同,Java集合中不能存放基本数据类型,只能存放对象的引用。但是在JDK5.0以后的版本当中,JAVA增加了
“自动装箱”和“自动拆箱”的机制,比如如果要存入一个INT类型的数据,JVM会把数据包装成Integer然后再存入集合,
看起来集合能够存入基本数据类型,其实是不能的只是多了一个包装数据的过程。
  而且存入集合的数据都会被转换成OBject类型。

在这里插入图片描述

17 IO流

流的定义:流是指一连串流动的字符,是以先进先出方式发送信息的通道。
按流向分:输出流:OutputStream和Writer为基类
输入流:InputStream和Reader为基类
按处理数据单元划分:字节流:字节输入流:InputStream基类
字节输出流:OutputStream基类
字符流:字符输入流:Reader基类
字节输出流:Writer基类
(字节流是 8 位通用字节流,字符流是16位Unicode字符流)

18 什么是数据库

长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。特点:永久存储、有组织、可共享。

19 数据库类型

在这里插入图片描述

20 mysql数据类型有哪些

1.数值类型
分为严格数值类型和近似数值类型和浮点型,严格数值类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)
2.日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
3.字符串类型
  字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

21 mysql约束有哪些?

– 1)not null(非空约束)
– 2)unique(唯一约束)
– 3)primary key(主键约束=非空+唯一)
– 4)默认值(default)
– 6)自增长(auto_increment)
– 7)外键约束(foreign key)
– 8)级联约束(on update cascade/on update cascade)

22 什么是事务?事物的特点?作用

事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败

事务四个特性:ACID

原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。
一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏
隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏
持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中

23 什么是JDBC?

DBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现。

在这里插入图片描述

24如何防止SQL注入攻击?

SQL注入攻击:是早些年网络中非常常见的一种网络攻击方式
原因是因为:SQL语句中的参数(比如用户名或密码)是用户提交过来的,用户在提交参数时,参数中可能会掺杂一些SQL关键字或者特殊符号,这些关键字和特殊符号可能会导致SQL语句的语义发生变化,从而产生一些意外的操作!
3、可以使用PreparedStatement对象代替Statement对象解决SQL注入攻击问题!
PreparedStatement对象是先将SQL语句的骨架(包含问号的SQL语句)发送给服务器编译并确定下来,
而SQL语句一旦编译就不能再被篡改了,后面再将SQL语句中的参数发送给服务器,将占位符(问号)替换成参数
即使SQL参数中再包含SQL关键字或者特殊符号,也不会影响SQL语句的骨架,只能被当成普通的文本执行!

25 jdbc连接数据库

//注册数据库驱动
//获取数据库连接
//获取传输器
//发送sql到服务器执行,返回执行结果
//处理结果
//释放资源

26 连接池

连接池: 就是存放连接资源的容器, 把连接对象存放在一个容器中, 供整个程序共享, 可以实现连接的复用, 减少连接创建和关闭的次数, 提高程序执行的效率。

2、为什么要使用连接池
在传统方式中(不使用连接池),每次用户需要连接,都是创建一个连接并使用,用完之后再关闭连接,而每次创建连接和关闭连接都是非常耗资源而且耗时间的操作,因此会导致程序的效率低下.
使用连接池: 可以在程序一启动时,就创建一个连接池(对象),并往连接池中放入一批连接。当用户需要连接时,可以直接从连接池中获取一个连接对象,进行使用,用完之后,不要关闭连接,而是将连接还回到连接池中。这样一来所有用户在访问时都可以使用连接池中的连接资源,可以实现连接的复用, 减少连接创建和关闭的次数, 提高程序执行的效率。

27 html

TML指的是超文本标记语言(Hyper Text Markup Language),是用来描述网页的一种语言.

28 html的结构

在这里插入图片描述

29 html标签和属性

在这里插入图片描述

在这里插入图片描述

30 超链接

在这里插入图片描述

31css

层叠样式表,用于修饰、渲染网页的一门技术使用css样式修饰网页,可以实现将设置样式的css代码和展示数据的html代码进行分离,增强了网页的展示能力!

32引入css方式

方式1:通过style属性引入css(不推荐)
方式2:通过style标签引入css
方式3:通过link链接引入外部的css文件

33css选择器

标签名选择器
class选择器
id选择器
后代选择器
属性选择器

34css元素有哪些?

(1)块级元素(block)
默认情况下,块级元素独占一行可以设置宽和高,如果设置了就是设置的宽和高如果不设置宽和高,其中宽是默认填满父元素,而高是由内容决定(由内容支撑)比如: div/p/h1~h6/form/table 等元素都是块级元素
(2)行内元素(inline)
默认情况下,多个行内元素可以处在同一行不能设置宽和高比如: span/input/img/i/b 等元素都是行内元素
(3)行内块元素(inline-block)
既具备行内元素的特征(可以同行显示),还具备块级元素的特征(可以设置宽和高)

35 javaScript

全称叫做JavaScript,简称叫做JS由NetScape(网景)公司提供,是一门专门嵌入在浏览器中执行的脚本语言JS运行在浏览器中,负责实现网页中的动画效果或者是实现表单校验等功能

特点:
(1)JS是一门直译式的语言(边解释边执行,没有编译的过程)
(2)JS是一门基于对象的语言(JS中没有类的概念,也没有编译的过程)JS中是有对象的(内置对象、自定义对象
)(3)JS是一门弱类型的语言(Java:强类型)

优势:
(1)JS具有良好的交互性
(2)JS具有一定的安全性(只能在浏览器内部运行,不能访问浏览器以外的资源)
(3)JS具有跨平台性(JS 浏览器)( JS语言是跨平台的,是因为有浏览器,但浏览器不跨平台Java语言是跨平台的,是因为有虚拟机,但虚拟主机不跨平台 )

36 引入JS

1、在script标签内部可以书写JS代码
在这里插入图片描述

2、通过script标签引入外部的JS文件
在这里插入图片描述

3.也可以直接在元素上书写JS代码
在这里插入图片描述

37 jQuery

jQuery: JavaScript Query JS查询jQuery是一门轻量的、免费开源的JS函数库(就是JS的简单框架)jQuery可以极大的简化JS代码jQuery的核心思想:“写的更少,但做的更多”

优势
(1) 可以极大的简化JS代码
(2) 可以像CSS选择器一样获取html元素css中获取所有的div,给div添加样式:
(3) 可以通过修改css属性控制页面的效果
(4) 可以兼容常用的浏览器

38 引入jQuery

jQuery的函数库文件就是一个普通的JS文件,引入jQuery和引入JS文件的方式一样。

39 jquery选择器

基本选择器:
(1)元素名选择器
(2)class/类选择器
(3)id选择器
(4)多元素选择器
层级选择器
在这里插入图片描述
基本过滤选择器
在这里插入图片描述

40 什么是服务器?Web服务器

务器:分为服务器硬件 和 服务器软件。在硬件服务器(计算机)上安装了服务器软件,才可以对外提供服务。比如:让其他的计算机来访问当前服务器,为其他的计算机提供服务。(1) 服务器硬件:是指在互联网上具有独立IP地址的计算机,比如我们自己用的计算机也可以作为服务器使用。(2) 服务器软件:就是一个计算机程序,比如MySQL服务器软件,tomcat服务器软件。服务器软件分为很多类型,比如:ftp服务器,数据库服务器,web服务器软件,邮件服务器等。

什么是Web服务器?(1) web服务器是指驻留在互联网上的某种类型的计算机程序。当浏览器访问服务器,请求服务器上的文件时,服务器将会处理该请求,并将请求的文件响应给浏览器,并会附带一些信息告诉浏览器如何查看该文件(即文件的类型)(2) web服务器是可以向 “发出请求的浏览器提供文档” 的程序,比如在访问百度时,其实就是在访问百度的服务器。

在这里插入图片描述

41 tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/cqrX4DUt.shtml

相关文章

JDK的版本

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 SE(JavaSE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。 EE(JavaEE),enterprise edition&#xff0c…

jdk的版本号解惑

做Java开发的时候,经常看到这些所谓的“同义词”,Java8、JDK8、JDK1.8、J2SE8、J2SE1.8,他们之间的区别和关系如下所示, (1) Java与JDK的区别与关系 这个应该是看问题的角度不同,在用户眼中,Java是Java应…

C++静态库和动态库用法

1、前言 从事软件工作也有两年了,C静态库和动态库也用了不少,但都是依葫芦画瓢,一直没具体去研究一下二者的区别,加载方式等,今天花时间看了几篇博客,重新学习了一下,做出如下笔记。 2、定义 静态库和动态库从字面意思来看,区别就是静态和动态。而这里的静态和动…

Linux下的动态库和静态库详解

动态库和静态库 文章目录 动态库和静态库静态库与动态库的概念理解动静态库如何打包动静态库与如何使用动静态库如何制作打包动态库 为什么我们要使用别人(一般是顶尖的工程师写的)的代码? 为了开发效率和鲁棒性(健壮性) 如何使用别人的功能? 1、库 2、开…

静态链接库和动态链接库

一、前言 1、代码复用是提高软件开发效率的重要途径。 2、一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。小到一个函数、一种数据类型、一个类,大到一种类、一个模块、库。 3、复用从方式上…

linux之静态库与动态库

我们在写c语言的时候&#xff0c;经常会去包含一个.h的头文件&#xff0c;这个头文件就是库文件&#xff0c;比如<stdio.h>,<stdlib.h>这些都是标准的头文件&#xff0c;一般放在/usr/include,也就是说&#xff0c;从这个目录中我们可以找到这个头文件&#xff0c;…

理解和创建Windows和Linux下的动态和静态库区别

一、引言 在计算机编程的世界中&#xff0c;库是一个非常重要的改变。它的出现提供了一种共享和重用代码的可能性&#xff0c;复杂的程序因为动态库的出现而变得简洁和方便。然而&#xff0c;库并不是单一的&#xff1a;它们可以是动态的&#xff0c;也可以是静态的&#xff0…

静态库与动态库的区别和使用

动静态库所用到的一些库文件&#xff1a; .o 是目标对象文件,相当于windows中的.obj文件。可由一个或多个.c /.cpp来生成 .a 为静态库&#xff0c;可以是一个或多个.o合在一起,用于静态连接&#xff1b;多个.o文件可以链接生成一个.exe的可执行文件。静态库在程序编译时会被连…

静态库和动态库的使用与区别

引文 库文件是计算机上的一类文件&#xff0c;可以理解为一种代码仓库&#xff0c;提供给使用者一些可以直接使用的变量、函数或类。 库文件分为两类&#xff1a; 静态库&#xff1a;在链接阶段&#xff0c;会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中…

【Linux静态库和动态库】

Linux静态库和动态库 1. 编译与ELF格式2. 库的基本概念3.静态库的制作&#xff1a;&#xff08;假设要将a.c、b.c制作成静态库&#xff09;4.静态库的常见操作5.静态库的使用6. 多个库的相互依赖举例1.(库文件制作、错误处理) 7.静态库和动态库的关系和区别8.动态库的制作软链接…

如何理解静态库与动态库

究竟什么是库&#xff1a; 日常生活中有很多所谓的库&#xff0c;比如车库啊&#xff0c;优衣库啊&#xff0c;甚至还有一库&#xff08;日语&#xff09;咳咳。然后对程序员来说&#xff0c;所谓的库&#xff0c;即是程序库&#xff0c;当一段代码十分耐用&#xff0c;又经过…

C++静态库与动态库的区别

文章目录 什么是库静态库Linux下创建与使用静态库Windows下创建与使用静态库 动态库Linux下创建与使用动态库Windows下创建与使用动态库 动态库的显式调用在Linux下显式调用动态库在Windows下显式调用动态库显式调用C动态库注意点 附件&#xff1a;Linux下库相关命令g(gcc)编译…

动态库静态库的区别

1、动态库以及静态库区别 静态库是函数和数据编译进一个二进制文件里面&#xff08;.lib文件&#xff09;&#xff0c;在使用静态库链接成可执行程序的时候&#xff0c;链接器会复制静态库内的函数和数据进可执行程序里面(.EXE文件)&#xff0c;所以在加载库的时候不需要加载相…

详谈静态库和动态库的区别

一、什么是库&#xff1a; 库是写好的&#xff0c;现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说&#xff0c;库是一种可执行代…

【C语言】详解#define,#ifdef,#ifndef,#elif,#undef,以及相关运算符

1.明示常量 #define 预处理指令结尾不带&#xff1b;&#xff08;分号&#xff09;&#xff0c;在预编译的过程中使用宏的地方会进行展开&#xff0c;是用多少次就展开多少次&#xff0c;但是只替换 不计算&#xff0c;预处理器在发现程序中的宏后&#xff0c;会用宏等价的替换…

Vue 项目报错:‘$‘ is not defined ( no-undef )

错误描述 报错如上图所示&#xff0c;错误原因是不认识 $ 符&#xff0c;他是 JQuery 中得符号&#xff0c;我也确实引入了 JQuery&#xff1a; 解决办法 在 vue 项目的根目录下创建一个 .eslinttrc.js 文件&#xff0c;文件内容如下&#xff1a; module.exports {root: true…

undefined和is not defined区别

undefined定义&#xff1a; undefined是javascript的一种基本数据类型&#xff0c;变量未赋值或者函数没有返回值时返回。 xxx is not defined是一种错误类型&#xff0c;其完整形式是&#xff1a;Uncaught ReferenceError: xxx is not defined&#xff08;未捕获的引用错误&a…

#define #undef等基本知识

1、预处理符号 例子&#xff1a; #include <stdio.h> #define DEBUG_PRINT printf("FILE %s line %d:" \"x%d, y%d, z%d," \__FILE__,__LINE__,x,y,z) //或者如下: //#define DEBUG_PRINT printf( "File %s line %d:…

undefined和is not defined一样吗?

https://blog.csdn.net/sheldon178/article/details/48298151/ undefined和is not defined&#xff0c;字面意思看来没什么两样&#xff0c;不都是未定义吗&#xff1f; 在JavaScript中&#xff0c;可并非如此。 undefined定义如下&#xff1a; undefined是javascript的一种…

C++中 #define 与 #undef

define 宏指令 #define 与 # include类似,它的好处呢就是速度快,使用define定义函数可以减少函数调用的额外开销 define 主要体现在2个地方 1 定义一个值 2 定义一个函数或者说功能 #include <iostream> using namespace std; // 定义一个值 #define HELLO_WORLD "…