自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

only-code的博客

爱钻研的码农

  • 博客(27)
  • 收藏
  • 关注

原创 语雀·教育邮箱现在提供免费一年会员资格!

作为一位深度使用电子笔记的用户,我曾长期使用印象笔记,后来发现有道云笔记也非常适合我的需求。然而,我最近发现语雀和飞书等云笔记服务越来越出色。我们希望每个用户都能够快速、舒适地记录自己的思想和想法,因此,语雀的文档编辑器提供了强大的功能。特别是在PC端,左侧目录、中间编辑区和右侧文档大纲区的布局设计非常舒适,有助于快速定位和编辑文档。或者你可以先利用邀请码,然后在用教育邮箱申请认证,这样就能免费获取一年零一个月的专业会员。经过一段时间的使用,我认为语雀完全满足了我目前办公和学习的需求。

2024-02-07 22:32:45 639

原创 SpringIOC创建对象方式、IOC接口的核心以及ApplicationContext实现类

目录SpringIOCIOC容器底层实现原理创建对象的方式SpringIOC容器底层实现原理IOC核心的接口ApplicationContext主要实现类SpringIOCIOC容器底层实现原理IOC容器中非常核心的接口 BeanFactoryBeanFactory Bean对象 Factory工厂IOC容器基本的概念:控制反转把对象的创建过程与使用统一都交给我们的Spring来进行原理。不需要开发者自己去new对象IOC容器底层实现技术:反..

2022-05-02 19:08:19 920

原创 Spring框架快速入门以及框架的构建

spring的官网:Spring | HomeSpring官方下载依赖jar包地址:JFrog七大核心模块​Test对应spring-test.jar. Spring提供的测试工具, 可以整合JUnit测试, 简化测试环节.Core ContainerSpring的核心组件, 包含了Spring框架最基本的支撑.Beans, 对应spring-beans.jar. Spring进行对象管理时依赖的jar包. Core, 对应spring-core.jar,...

2022-04-25 19:04:45 600 1

原创 Spring IOC容器底层实现原理

IOC容器里核心的接口:BeanFactoryBean对象 Factory 工厂Inversion Of Control(控制反转):把对象的创建过程与使用统一都交给spring来进行管理。不需要开发者自己去new对象IOC容器底层实现技术反射技术 解析xml 工厂模式作用:降低代码的耦合度步骤:1.解析xml技术,解析spring.xml配置文件。2.获取<bean id="" class=""> </bean> 类完整路径地址。3

2022-04-25 18:46:28 932

原创 Spring5简介

目录一、概述二、组成三、Spring中常用术语四、拓展一、概述Spring:JavaEE轻量级源框架,类似于简历模板。 目的:解决企业应用开发的复杂性 理念:使现有的技术更加容易使用,本身是个大杂烩,整合了现有的技术框架 (以前)SSH:Struct2 + Spring + Hibernate (现在)SSM:SpringMVC + Spring + Mybatis 官网:Spring Framework GitHut:GitHub - spring-pr...

2022-04-24 19:02:06 514

原创 【JDBC-6】数据库连接池

类似于线程池,准备一些预先的资源,到使用的时候直接拿出。之前我们在对数据库进行连接操作时,每次连接都需要连接connection = JDBCUtils.getConnection();操作完毕后还需要释放JDBCUtils.release(connection,preparedStatement,resultSet);这些操作是非常消耗系统资源的,因此就推出了数据库连接池的概念。类似于线程池,在事先定义好连接次数后,不用每次操作都要进行数据库的连接和释放热门的开源数据源实..

2022-04-24 18:50:35 962

原创 【JDBC-5】浅析事务的ACID原则,真实代码测试事务提交原理

事务定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。要么都成功,要么都失败,这是事务最重要的性质。ACID原则(Atomicity):原子性:要么都发生,要么都不发生 (Consistency):一致性:总数不变 (Isolation):隔离性:多个线程互不干扰 (Durability):持久性:一旦提交不可逆,持久化到数据库原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性是指在事务开始

2022-04-13 11:12:10 153 1

原创 【JDBC-4】IDEA配置自动连接MySQL数据库(解放双手),IDEA连接数据库的时区问题(连接不上数据库)

目录前言IDEA连接MySQL1.连接数据库2.选择数据库3.修改数据4.创建表单前言之前我们讲了如何使用写JDBC代码进行数据库的连接,不过在IDEA中可以配置直接连接数据库,这样会简便许多。IDEA连接MySQL1.连接数据库打开Datebase设置:一般打开IDEA在右边侧边栏会有Datebase字样的按钮,没有的话就在左下角的小菱形中:然后选择MySQL数据库(其它数据库同理)注意:配置自动连接数据库...

2022-04-13 11:03:02 2606 2

原创 【JDBC-3】都2202年了不会还有人用Statement吧?(PreparedStatement对象理解和代码测试)

前言前面讲到了SQL注入问题的不安全,主要原因就是由于Statement对象不安全!要解决SQL注入问题就不能使用Statement对象。PreparedStatement对象作用: 防止SQL注入,效率更高 让我们来看看这个PreparedStatement对象的定义:可依法向PreparedStatement本质上是一个接口,继承了Statement父类(继承就是用来扩展和改变父类的一些东西!)代码实现核心代码:Connection connection.

2022-04-12 17:52:01 416

原创 【JDBC】工具类对JDBC的写法以及SQL注入问题

目录前言工具类对jdbc的写法1.写配置文件2.新建工具类读取配置文件、加载驱动、加载连接、释放资源(同样的操作放在同一个工具类里面)3.测试连接4.运行​SQL注入问题前言在JDBC快速上手的那篇文章中我们通过IDEA连接到了MySQL,但是那种方法是最基础的方法,日常开发中根本就不会使用,而且安全性极差。这篇文章将讲解一种新的方法(配置文件法)来改进这种问题。工具类对jdbc的写法1.写配置文件在src目录下新建一个文件,命名为d...

2022-04-11 16:07:18 1085

原创 【JDBC-2】JDBC入门:Statement对象详解

前言在上一期中我们讲到要想使用JDBC从数据库中提取出数据,主要有六步:加载驱动 用户信息和URL 得到数据库对象 得到SQL对象 执行SQL对象 释放连接其中最重要的就是3、4、5步,那么这篇文章就来细细探讨下JDBC连接的第四步:得到SQL对象(Statement)Statement对象详解jdbc中的Statement对象用于向数据库发送SQL语句,数据库的增删改查通过这个对象来完成(向数据库中发送指令)。该对象主要有两个方法:statemen...

2022-04-11 15:46:44 1321

原创 【JDBC-1】快速上手JDBC并使用IDEA连接MySql数据库

一、JDBC五问1.本质:一堆接口(java.sql.*),在Java中写sql语句。2.作用:通过接口来实现Java与各大数据库之间的连接,降低了代码间的耦合度;3.JDBC整个程序的结构中有三拨人?sun公司,负责制定JDBC接口。即:java.sql.*; JDBC接口下的实现类,由数据库厂商编写。例如MySQL数据库的实现类:这些jar包的专业术语:mysql的驱动 Java程序员,面向JDBC接口写代码。4.JDBC开发前的准备工作?mysql的驱动jar包,需要配置到c

2022-04-08 19:38:04 1065 3

原创 【GC垃圾回收】补充

GC回收区域:新生代 老年代 永久代GC两种类:轻GC(Minor GC)、重GC(Full GC)GC题目:1.JVM的内存模型和分区?(详细到每个分区放什么)2.堆里面的分区有哪些?说说他们的特点?3.GC的算法有哪些?4.轻GC 和 重GC分别在什么时候发生?1.类加载器、运行时数据区、执行引擎2.Eden、Survivor(From,To)、Old Memory3.标记-清除算法、标记-复制算法、标记-整理算法、可达性算法4.Mi..

2022-04-07 19:03:55 147

原创 浅析Java虚拟机的垃圾回收机制(GC)

目录一、垃圾回收机制(Garbage Collection)二、对象回收的时机引用计数法可达性分析算法三、垃圾回收算法标记-清除算法标记-复制算法标记-整理算法新生代、老年代、永久代看这篇:四、垃圾收集器java技术体系中自动内存管理分为两个问题:给对象分配内存 回收给对象分配的内存内存的分配涉及到的内存区域是:堆区(堆+方法区)一、垃圾回收机制(Garbage Collection)垃圾回收(Garbage C...

2022-04-06 18:51:19 6213

原创 Java虚拟机中的年轻代、老年代、永久代图解版

常见名词:年轻代、老年代、永久代、Minor GC、Full GC(也称Major GC)Java堆内存图:堆内存分配:年轻代 Eden区 Survivor区 From(S0) To(S1) 老年代年轻代java新生成的对象几乎都会存放在新生代的Eden区中(如果对象的占用内存较大则直接分配至老年代中),当Eden区内存不够的时候就会触发MinorGC(Survivor满不会引发MinorGC,而是将对象移动到老年代中)。...

2022-04-06 18:18:54 2150

原创 JVM内部线程之间的调用问题

线程线程指的是一个线程实体。JVM允许一个程序并发执行多个线程。首先创建的是操作系统原生线程,Java线程结束后,原生线程随之被回收。操作系统负责调度所有线程,并把它们分配到任何可用的cpu上。执行过程:原生线程(初始化完毕) Java线程(调用run()方法) 确认是否终止JVM进程(由原生线程决定,run()返回且未捕获异常;线程是最后一个非守护线程)——> 释放原生线程和Java线程的所有资源JVM系统线程很多线程在后台运行。这些线程与main函数的主线程

2022-04-02 18:58:46 654

原创 JVM工作原理

流程:java源文件经过前端编译器(javac或ECJ)将.java文件编译为.class字节码文件,然后JRE加载.class文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转换为机器码。目录类加载运行时数据区类加载 将类的字节码文件(.class)中的二进制数据读入内存,将其放在运行时数据区的方法区内,然后在堆上创建java.lang.Class对象,封装类在方法区内的数据结构。类加载的最终产品是位于堆...

2022-03-31 19:29:38 269

原创 JVM方法的在虚拟机栈执行过程以及java反汇编

目录反汇编1.什么是slot?2.Java字节码指令格式3.iconst_局部变量表的第一个变量栈中可能出现的异常栈运行原理前面我们讲到栈桢的主要结构为:局部变量表、操作数栈、动态链接和方法返回地址。如下图:这篇我们将要通过反汇编来仔细了解代码在JVM内部的执行过程以及相关的存储原理。反汇编也可以叫做反编译,简单来说就是将编译生成的class文件翻译成程序员看得懂的文件之前说到过:局部变量表中的变量不可以直接使用,必须通过相关指令...

2022-03-30 19:05:01 1336

原创 JVM虚拟机栈结构

在说到虚拟机栈时首先要提出一个重要的观点:JVM是基于栈的!虚拟机栈每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的 Java 方法调用。虚拟机栈的栈元素是栈帧,当有一个方法被调用时就代表这个方法的栈帧入栈;当这个方法返回时就代表栈帧出栈。生命周期和线程一致,也就是线程结束了,该虚拟机栈也销毁了。对于栈来说不存在垃圾回收问题(栈存在溢出的情况)。栈帧:理解为方法的运行空间,包括:局部变量表 方法中定义的局部变量以及方法的...

2022-03-29 19:10:41 524

原创 JVM对象的创建过程(通俗易懂)

对象的创建虚拟机中对象的创建过程: 对象检查:当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 对象创建:类加载检查通过后,虚拟机为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。(Java堆的内存分配:由于Java堆内存并不规则,已使用的、未使用的内存交杂在一起,没有办法简单进行“指针碰撞”,虚拟机必须维护一

2022-03-29 18:42:07 1957 1

原创 JVM运行时数据区

运行时数据区概述:Java虚拟机在运行时会将他所管理的内存分为不同的数据区域。有的区域随着虚拟机的启动而存在;有的区域随着用户进程的进行和结束而开创和销毁。程序计数器:较小的内存区域它可以看作是当前线程所执行的 字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器 的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处 理、线程恢复等基础功能都需要依赖这个计数器来完成。每个线程都有一个独立的程序计...

2022-03-27 18:50:25 1403

原创 JVM虚拟机内存区域划分(快速理解)

JVM内部体系结构分为三部分1.类加载器(ClassLoader)子系统。2.执行引擎。3.运行时数据区。首先我们要知道当我们写完代码之后所保存的.java文件是如何经过虚拟机的处理再生成最后的01001010这样的字节码文件的,如下图:.java文件经过编译器编译得到.class文件(编译阶段不涉及JVM) 编译成功后运行程序,此时实际上就是把.class文件送入JVM 经过JVM的处理最后生成计算机能”看得懂“的文件那么我们现在的主题就是研究研究JVM的内存区域(...

2022-03-27 17:20:01 150

原创 BST树、AVL树和红黑树

一、引入1.1什么是BST树(二叉搜索树)若左子树不为空,左子树所有节点值小于根节点。若右子树不为空,右子树所有节点值大于根节点。左右子树也是BST树作用:可以快速查找到需要的值,常用在数据的查找上。效率:最好O(logn),数据本来有序的时候O(n)缺点:当插入的数据本来的就是有序的时候就退化成了链表。例如:为了解决这个问题出现了二叉平衡树(AVL树)二、AVL树具有BST树的所有特性。每个节点的左子树和右子树的高度差最多为1。图一是AVL树。图二由于高度差大于1

2021-08-18 15:47:38 285

原创 数据结构中数据、数据对象、数据元素、数据项之间的关系

数据、数据对象、数据元素、数据项我们在学习数据结构时首先熟悉的一定是这四个名词,那么在数据家族里这四位成员都是什么关系呢?严蔚敏的数据结构c语言版一书中解释是这样的:数据:是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。数据对象:是性质相同的数据元素的集合。这些概念可能有点生硬,在此给出一张图来方便大家理解四种关系:数据:是描述

2020-08-17 11:33:12 15507 1

原创 python中关于pygame的下载导入讲解(附带不成功的解决方法)

pygame是python 中与游戏相关的库。一、下载pygame所需的wheel包首先我们可以去官网下载(只针对Windows用户):https://pypi.org/project/pygame/#files这里我们可以看到有很多个版本的,那该怎样选择呢?pygame后面的是1.9是其版本,与python的版本号相对应,cp27就是python2.7版本,win就是windows。这里...

2020-05-07 21:57:39 1990 1

原创 c primer plus第六版第七章编程练习

#include<stdio.h>#include<stdlib.h>#define first_tax 0.15#define second_tax 0.2#define last_tax 0.25#define A 8.75#define B 9.33#define C 10.00#define D 11.20#define E "quit"voi...

2020-04-21 21:09:11 137

原创 c语言中关于scanf输入与%c和%s的使用问题(附带缓冲区讲解)

scanf的输入问题 //这里是举例代码。#include <stdio.h>int main(void){ char ch; scanf("%c", &ch); while(ch != 'g') { printf("%c",ch); scanf("%c",&ch); } return 0:}此题摘抄于C Primer plus 第...

2020-04-15 10:56:03 10603 1

空空如也

空空如也

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

TA关注的人

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