自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 Bean注入和生命周期

一、Bean注入1.存储 Bean 对象1.1 前置工作:配置扫描路径注意:想要将对象成功的存储到 Spring 中,我们需要配置一下存储对象的扫描包路径,只有被配置的包下的所有类,添加了注解才能被正确的识别并保存到 Spring 中。//ApplicationContext就是Spring容器的顶级接口//AnnotationConfigApplicationContext是其中的一个实现类,它的作用是://(1)扫描指定的包路径下,使用Spring框架注解的类//(2)注册这些类...

2022-07-25 09:37:10 630 1

原创 [JavaEE]Spring的创建和使用

1.为什么要学框架?随着技术发展,第三方框架使用的越来越多,几乎所有的java项目都会使用的基础框架,叫做javaee框架;我们学习的基础框架SSM => 几大框架的简称:SpringFramework+SpringMVC+MyBatesSpringFramework:基础框架,包含很多组件SpringMVC:web开发MyBates:操作数据库的框架基于这些框架,对比之前的servlet、jdbc,灵活性,易用性,扩展性有很大提升。2.框架优点展示(SpringBoot VS S..

2022-07-22 11:38:08 233 1

原创 JVM类加载和垃圾回收

​1.JVM 类加载过程加载:加载class字节码到java进程的内存中,在堆中创建类对象。验证:验证java字节码是否符合规范(是否符合JVM规范)。准备:准备阶段是正式为类中定义的变量(即静态变量,被static修饰的变量)分配内存并设置类变量初始值的阶段。解析:将常量池内的符号引用替换为直接引用的过程,也就是初始化常量的过程。初始化:(类的初始化)Java虚拟机真正开始执行类中编写的Java程序代码,将主导权移交给应用程序。2.双亲委派模型2.1 概念JVM通过双亲委派机制对...

2022-07-21 12:14:39 481

原创 JVM的运行原理

1.概念JVM(Java Vritual Machine)是运行于Java字节码的虚拟机,包括一套字节码指令集、一组程序寄存器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。JVM运行在操作系统之上,不与硬件设备直接交互。2.JVM运行机制Java源文件在通过编译器后被编译成相应的 .Class 文件(字节码文件),.Class 文件又被JVM中的解释器编译成机器码在不同的操作系统(Windows、Linux、Mac)上运行。每种操作系统的解释器是不同的,但基于解释器实现的虚拟机是相同的,

2022-07-21 09:30:52 5257

原创 [MySQL]索引事务

1. 索引 1.1 概念索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。1.2 作用数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。 索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引对于提高数据库的性能有很大的帮助。1.3 使用场景要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:数据量较大,且经常对这些列进行条件查询。该数据库表的插入操作,及

2022-07-20 08:11:45 118

原创 [MdSQL]表的增删查改(进阶)

1. 数据库约束1.1 约束类型not null --指示某列不能存储 NULL 值。unique -- 保证某列的每行必须有唯一的值。default -- 规定没有给列赋值时的默认值。primary key -- not null 和 unique的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。foreign key -- 保证一个表中的数据匹配另一个表中的值的参照完整性。check -- 保证列中的值符合指定的条件。对于MySQL数据库,.

2022-07-20 00:00:00 124

原创 [MySQL]表的增删查改(基础)

​1.CURD注释:在SQL中可以使用“--空格+描述”来表示注释说明CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写2.新增(Create)insert [into] table_name [(column [ , column] ...)] value (value_list) [ , (value_list)] ...value_list: value, [ , value] ......

2022-07-19 13:52:29 64

原创 [MySQL]数据库基础操作

​1.数据库的操作1.1 显示当前的数据库show databases;1.2 创建数据库create database [if not exists] db_name [create_specification]...create_specification: [default] character set charset_name [default] collate collation_name说明:[]是可选项character set:指定数据库采用的字符集..

2022-07-19 09:53:12 102

原创 Linux搭建Java部署环境

一、yum1.认识 yumyum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上.yum 起到的功能和 Maven 的依赖管理功能类似. 使用 Maven 能帮我们方便的安装一些第三方 jar 包, 而yum 方便我们方便的安装第三方程序.......

2022-07-15 15:09:36 696

原创 Linux搭建 Java 部署环境

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上.yum 起到的功能和 Maven 的依赖管理功能类似. 使用 Maven 能帮我们方便的安装一些第三方 jar 包, 而yum 方便我们方便的安装第三方程序.......

2022-06-26 10:35:19 421

原创 Linux常用命令

ls:列出目录下的子目录/文件语法:ls [选项] [目录或文件]s 参数 = ls 参数./. 表示当前目录.. 表示上级目录功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。......

2022-06-23 19:04:58 118

原创 【mkdir】

​链接:mkdir__牛客网工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。现在给你一些需要创建的文件夹目录,请你帮忙生成相应的“mkdir -p”命令。...

2022-06-13 15:31:25 124

原创 HTTP请求和响应

1.URL平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符).互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它.

2022-06-09 13:41:34 974

原创 HTTPS 的加密流程

1.什么是HTTPSHTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况。由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改. HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全~...

2022-06-09 09:34:40 628

原创 HTTP协议的基本格式和Fiddler的用法

什么是HTTPHTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议.

2022-06-08 17:34:14 367

原创 综合案例: 展示简历信息

综合案例: 展示简历信息

2022-05-27 18:55:33 65

原创 HTML

1.HTML 结构1.认识HTML标签HTML 代码是由 "标签" 构成的.形如:<body>hello</body>标签名 (body) 放到 < > 中大部分标签成对出现. <body> 为开始标签, </body> 为结束标签.少数标签只有开始标签, 称为 "单标签".开始标签和结束标签之间, 写的是标签的内容. (hello)开始标签中可能会带有 "属性". id 属性相当于给这个标签设置了一个唯一的标识符(身份证号码).

2022-05-27 17:39:17 146

原创 [JAVA]排序

题目描述:定一个长度为 n 的数组,请你编写一个函数,返回该数组按升序排序后的结果。1.冒泡排序首先拿第一个元素和后面的所有一个个比较,如果比后面的大就交换,所以始终会保证第一个元素是最小的,然后再从第二个第三个,以此类推,swap方法表示交换两个数字的值。

2022-05-25 15:13:52 633

原创 UDP 的报文结构和注意事项

16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度;如果校验和出错,就会直接丢弃;UDP报文主体分为两个部分:UDP报头(占8个字节)+UDP数据/UDP载荷UPD报头:源端口号+目的端口号+包长度+校验和

2022-05-23 17:09:37 9737

原创 从输入URL到展示出页面

从输入URL到展示出页面的步骤,总体来说分为以下几个过程:DNS解析:将域名解析成IP地址TCP连接:TCP三次握手发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面断开连接:TCP四次挥手

2022-05-23 11:21:29 349

原创 TCP 协议

ACK:应答;确认号是否有效PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走 RST:对方要求重新建立连接;我们把携带RST标识的称为复位报文段 SYN:请求建立连接;我们把携带SYN标识的称为同步报文段 FIN:申请断开连接;通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段

2022-05-22 16:33:18 2865

原创 TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主

2022-05-22 13:31:23 4400

原创 网络原理初识

1.IP地址2.端口号3.协议4.协议分层5.封装和分用

2022-05-22 13:13:38 182

原创 File类

一、File1.基础知识1.文件(file)(1)包含数据内容本身和文件的头信息(文件名、修改时间、文件大小等)(2)文件系统结构:多子树2.路径分类绝对路径:从根节点到叶子节点的整个路径(Windows是从各个磁盘开始的)相对路径:从任意一个节点出发,到目的节点经过的路径(没有带盘符号的路径,默认在根目录下)3.文件划分文本类型:本质上也是基于二进制来保存数据,是使用了一种编码格式保存的文本(保存和打开是要使用相同的编码格式,否则就是乱码)二进制类型:图片、音乐、视频文件等

2022-05-16 14:48:36 2865

原创 锁策略(多线程)

1.乐观锁 vs 悲观锁 悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。 乐观锁: 假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。以乐观的心态看待线程冲突(总是觉得没有线程会同时操作共享变量),所以每次都不加锁(程序层面),就直接操作共享变量。

2022-05-11 19:59:42 72

原创 线程安全问题的原因和解决方案

造成线程不安全的原因抢占式执行,调度过程随机多个线程同时修改一个变量针对变量的操作没有保证原子性内存可见性,一个线程频繁读,一个线程频繁写代码指令重排序

2022-05-11 16:49:56 242

原创 wait()和sleep()方法

其实理论上 wait 和 sleep 完全是没有可比性的,因为一个是用于线程之间的通信的,一个是让线程阻塞一段时间, 唯一的相同点就是都可以让线程放弃执行一段时间。

2022-05-11 15:05:20 549

原创 Thread 类的基本用法

线程创建线程中断线程等待线程休眠获取线程实例

2022-05-07 20:04:23 644

原创 Java 线程的几种状态

目录Java线程的状态线程状态:Java线程的状态1.new创建态:当用new关键字创建一个线程时,还没调用start时2.runnable可运行态:程序无法判新某个时间到底是就绪还是运行态,所以这2个状态对程序就没有意义3.waiting等待态:处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒,否则会处于无限期等待的状态4.timed_waiting超时等待态:处于这种状态的线程不会被分配CPU执行时间,不过无需无期限等待被其他线程显式地唤醒,在达到一定时

2022-05-07 16:27:53 1165

原创 进程和线程

进程和线程的关系? ——面试题多个进程的内存是隔离开的,一个进程中的多个线程,可以共享内存(进程包含线程,线程属于进程)根本区别:进程是系统分配资源的最小单位;线程是系统调度cpu执行的最小单位线程的创建,销毁代价比进程小(状态转换进程的开销大于线程)线程(有bug)可能会造成整个进程挂掉;进程间是独立运行(可能存在进程通信)进程的CPU利用率低,因为上下文切换开销大,而线程的CPU利用率较高,上下文切换速度快进程的操作者一般是操作系统,而线程的操作者一般是编程人员

2022-05-07 15:22:35 256

原创 多线程[基础]

1.什么是线程?一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码.1.线程的实现方式有多种:(1)内核线程 => Java中的线程,是基于内核进程的轻量化实现(简单来说:轻量化进程) 线程相比于进程,创建、调度、销毁效率要高很多(2)用户线程:有程序自己来实现线程,包括线程的调度等进程和线程的关系? ——面试题多个进程的内存是隔离开的,一个进程中的多个线程,可以共享内存(进程包含线程) ...

2022-04-27 15:52:20 57

原创 计算机是如何工作的

现代的计算机, 大多遵守冯诺依曼体系结构,所以在了解计算机是如何工作的之前,必须知道冯诺依曼体系结构,也就是输入,输出,CPU,存储器所构成的关系,他们的关系可以用图表示为:

2022-04-25 20:02:06 821

原创 [MYSQL]事务

一、事务是什么?简单来说,事务是数据库中执行事件的最小单位,要保证一组数据库操作,要么全部成功,要么全部失败。二、事物操作数据库的四大特性(ACID)

2022-04-25 11:37:12 72

原创 [Java]Iterable、Collection、List的常见方法签名以及含义

1.IterableIterable是一个泛型接口 。<T>中的T表示被迭代(遍历)的元素类型。public interface Iterable<T> { Iterator<T> iterator();//抽象类中的抽象方法 /** *为Iterable的每个元素执行给定的操作,直到处理完所有元素或者操作抛出异常。 */ default void forEach(Consumer<? super T&.

2022-03-22 15:46:31 159

原创 [Java]图书管理系统

系统需求1.登录2.身份选择:管理员和用户3.管理员功能:查找图书、新增图书、删除图书、显示图书、退出系统。4.用户功能:查找图书、借阅图书、归还图书、退出系统。设计:分别设计三个包:book包、operation包和user包。book包用来存储原始书籍,operation包用来实现各种功能,user包来区别管理员和用户的功能。最后用Main的class来连接实现。

2022-03-20 19:41:56 3874 1

原创 [Java]链表练习2

6. 链表的回文结构。7. 输入两个链表,找出它们的第一个公共结点。8. 给定一个链表,判断链表中是否有环。9.给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 NULL。

2022-03-15 22:17:13 819

原创 [Java]链表练习1

1.反转一个单链表。2.给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。3.输入一个链表,输出该链表中倒数第k个结点。4.将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。5.编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。

2022-03-15 22:10:34 66

原创 [Java]数组练习

1.题目名称:数组转字符串题目内容:实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.2.题目名称:数组的拷贝题目内容:实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.3.题目名称:二分查找题目内容:给定一个有序整型数组, 实现二分查找4.题目名称:数组是否有序题目内容:给定一个整型数组, 判定数组是否有序(递增)5.题目名称:冒泡排序题目内容:给定

2022-03-08 21:29:42 525

原创 [Java]数组的创建和使用(练习)

1.题目名称:求数组的平均值题目内容:实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).

2022-03-08 21:21:10 337

原创 [Java]方法的创建和调用(练习)

1.题目名称:找出出现一次的数字题目内容:有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。程序代码:

2022-03-08 21:14:47 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除