自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 五分钟带你了解“简化版”的CPU(核心参数,寄存器,执行,进程调度)

就是让CPU的集成程度高(包含更多的运算单元,才能算的快,所以每个运算单元就要很小),但是后来CPU运算单元已经很小了,已经达到4nm,7nm什么什么的,太小就要量子力学来解决了,这条路也就走不通了。假设C感觉到自己被冷漠了,就不开心了,也不怎么哄我了,这时候我们需要给C一点甜头,让它继续舔我(比如给它我不要的发圈,或者主动约他,主动找他聊两句话等等....),等他舔我了之后,然后继续冷落他。但是寄存器的内存太小了,只有几kb,如果要读取内存的数据,要反复的读取,那就比较麻烦且耗时间。

2024-07-29 00:11:29 767

原创 “手撕”全网最细的JDBC教程(安装导入使用)

JDBC由Java提供给数据库的一组通用的API。在平常的业务中,是比较少使用像cmd命令行来操作数据库的,更多的是操作代码(Python,Java,C++,Go等等),但是还是会使用到sql语句。通过代码操作数据库的时候,数据库要提供一份API,供其他程序来调用。什么是API?答: API全名是Application Programming Interface(应用程序编程接口)。我们在写代码的时候并不是从0开始写的,可以。

2024-07-29 00:10:56 648

原创 “手撕”MySQL的事务

事务就是把多个sql语句包装成一个”整体“,执行的话就一起执行!比如说:A账户转给B账户500块。这时候就需要2个sql语句,我们包装成一个整体,一起执行。问题:之间分为2条语句依次进行不就好了吗?答:不合适。假设我这时候突然”程序卡死“,”电脑掉电“.....等等,A都-500执行完了,已经扣钱了,但是我B却没有收到钱,这就是一个巨大的事故!!!要么一起执行,要么都不执行!一起执行很好理解,就是多条sql语句一起执行,但是”都不执行“却有些不一样。这里的”都不执行“ 指的是。

2024-07-29 00:09:40 570

原创 “手撕”MySQL的索引

索引(index),在其他语言中,我们管索引叫下标,但是在MySQL中有点不一样,我们可以理解为目录!这些索引保存着我们的数据地址。就像我们新华字典一样,如果我们想找一个字,我们可以通过拼音目录,部首目录等等,非常的快!1)索引是啥,解决啥问题索引相当于书的目录,能够提高查询的速度2)索引付出了什么代价a)需要更多的存储空间b)肯会影响增删改的效率(不一定会影响)整体来说,索引的利大于弊3)如何使用sql操作索引,是否有注意事项a)show index from 表名;

2024-07-29 00:09:24 999

原创 十分钟“手撕”七大排序

可以通过目录来找你需要的排序的源代码。先是解释底层原理,后附带代码。

2024-07-16 02:13:27 1167

原创 五分钟“手撕“(优先级队列)堆和OJ习题

概念:前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话;初中那会班主任排座位时可能会让成绩好的同学先挑座位。在这种情况下,数据结构应该提供两个最基本的操作,一个是返回最高优先级对象一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue)。大根堆、小根堆。

2024-06-16 22:13:16 1042 29

原创 五分钟“手撕”二叉树

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。那些算树?哪些不算树?树形结构中,子树之间不能有交集,否则就不是树形结构子树是不相交的除了根节点外,其他节点有且仅有一个父节点一颗有N个节点的树,它一共有N-1条边三、树的重要概念这些概念就跟我们家庭一样,孩子为子树,父亲为父树,兄弟为同辈的树。。。结点的度:度就是有多少个孩子;如上图:A的度为3树的度:最大的度;

2024-06-11 23:19:51 794 10

原创 “手撕”二叉树的OJ习题

故事的开头,我们先来三道不是oj的开胃菜,练练手感,后面9道都是OJ题。

2024-06-11 23:19:36 870 7

原创 三分钟“手撕”队列与习题

简单来讲:先进先出的队伍!假设第一个入队(push)的是1,第二个2 第三个3,那么先进先出的队伍,出来(pop)的是1,然后pop是2,pop是3。

2024-06-04 00:45:23 921 5

原创 五分钟“手撕”栈和习题

简单来说,先进后出的队伍!堆叠这些元素的底部,我们叫栈底,顶部我们叫栈顶。元素进入栈,叫入栈。元素离开栈,叫出栈。

2024-06-01 22:04:44 995 15

原创 “手撕”链表的九道OJ习题

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 NULL。删除链表中等于给定值 val 的所有节点。输入两个链表,找出它们的第一个公共结点。给定一个链表,判断链表中是否有环。

2024-06-01 20:41:09 1171 11

原创 五分钟“手撕”链表

简单来说,像链子一样的数据结构。像火车一节一节车厢一样,每个元素是独立的个体(内部类)。并且他们在空间里是分散的。为什么分散的还可以找到下一个呢?答:一个节点里面装着两种东西,一个是值,一个的下一个的地址,这样根据下一个的地址就可以找到下一个了。

2024-05-29 23:20:36 791 12

原创 三分钟“手撕”顺序表与习题

实现顺序表的代码放开头,供大家更好的查阅,每个方法都有代码的实现。

2024-05-27 21:47:25 667 3

原创 五分钟”手撕“异常

顾名思义:就是不正常。当一个正在运作的机器突然卡了,或者不动了,我们称为异常;当一个健康的人突然生病了,身体开始不舒服,我们称为异常。所以:在Java中,将程序执行过程中发生的不正常行为称为异常。Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构。具体方法如下:1. 自定义异常类,然后继承自Exception 或者 RunTimeException2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因。

2024-05-26 23:16:46 902 20

原创 五分钟”手撕“图书管理系统

代码放开头,供大家查询。

2024-05-24 23:20:42 1012 13

原创 “手撕”String类+练习题

题目解释:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

2024-05-23 18:53:27 949 15

原创 八分钟“手撕”包装类与泛型

泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。class 泛型类名称<类型形参列表> {// 这里可以使用类型参数class 泛型类名称<类型形参列表> extends 继承类/* 这里可以使用类型参数 */ {// 这里可以使用类型参数// 可以只使用部分类型参数//<T>代表的这是一个泛型类(有<>都是泛型)//1//除了上面这一条代码,把下列所有Object替换成T。

2024-05-16 13:48:13 1027 20

原创 五分钟“手撕”时间复杂度与空间复杂度

算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

2024-05-15 00:37:45 645 14

原创 十分钟“手撕”内部类+static在内部类的使用

内部类 就是写在外部类内的类。比如:下列代码中,OutClass是外部类,InnerClass是内部类。// 成员位置定义:未被static修饰 --->实例内部类// 成员位置定义:被static修饰 ---> 静态内部类// 方法中也可以定义内部类 ---> 局部内部类:几乎不用1. 成员内部类(普通内部类:未被static修饰的成员内部类 和 静态内部类:被static修饰的成员内部类)2. 局部内部类(不谈修饰符)、匿名内部类。

2024-05-11 23:41:02 473 20

原创 两分钟“手撕”Object类

Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。Object类是所有类的父类。//执行结果既然可以向上转型,那就说明Person和Student继承于Object这个类。

2024-05-02 12:54:05 475 17

原创 三分钟“手撕”Java中的接口(下)

Comparable接口的出现使得比较可以更加灵活,并且不需要在原来的Student类进行修改,而是直接创造一个AgeComparable或NameComparable的类,需要的时候直接new对象就行了!通过studen2这个引用修改了m的值后,studen1这个引用访问m的时候,值也发生了改变。小提示:下列代码这个只有一份,跟拷贝不一样,student2没有生成空间放值,是直接指向student1。如上代码,我们可以看到,通过clone,我们只是拷贝了Student对象。那有没有比较灵活一点的比较呢?

2024-05-01 22:04:03 27 15

原创 五分钟“手撕”Java中的接口(上)

接口其实算一种特殊的抽象类,比抽象类还要抽象的东西。在日常生活中,随处可见都有接口:笔记本上的USB口,电源接口等....耳机接口,只要你是符合耳机规范(市面上的耳机一样规格的)就能接入;电源接口,只要你符合电源接口的规范,就能接入。接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

2024-04-30 20:49:44 711 11

原创 二分钟“手撕”抽象类

修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,

2024-04-24 18:56:36 336 11

原创 七分钟“手撕”三大特性<多态>

书写方法时返回值和形参都不能改变。即外壳不变,核心重写!简单来讲:增加多点业务。例如:若干年前的手机,只能打电话,发短信,来电显示只能显示号码,而今天的手机在来电显示的时候,不仅仅可以显示号码,还可以显示头像,地区等。在这个过程当中,我们不应该在原来老的类上进行修改(因为可能还有老用户在使用)正确做法是:新建一个新手机的类,对来电显示这个方法重写就好了,这样就达到了我们当今的需求了。实际就是创建一个子类对象,将其当成父类对象来使用。

2024-04-24 16:00:54 859 10

原创 五分钟手撕“三大特性”<继承>(下)

目录一、protected 关键字二、继承方式三、final 关键字四、子类的构造方法五、this和super (一)相同点:(二)不同点:六、代码块的执行先后 在类与对象中提到过,为了实现封装特性,Java中引入了访问限定符,主要限定:类或者类中成员能否在类外或者其他包中被访问。protected它是一种比较温和的权限,它既不会像private一样私密,也不会像public一样开放,它是介于中间的。在同一个包中可以使用,在不同包也能用(不过是子类)。 注意:父类中private成员变量虽然在子类中

2024-04-21 15:08:20 864 13

原创 三分钟“手撕“三大特性之一的<继承>(上)

把公共的东西抽取出来,让对象去获得公共的东西(名字年龄吃饭等等)就叫做继承。对于抽取出来的东西做成一个类,我们叫做父类,对于自己额外有的东西(比如:狗狗的汪汪汪,猫猫的喵喵喵)做成一个类,我们叫做子类。有什么好处呢?就是可以实现代码的复用,提高工作效率。

2024-04-20 21:14:06 719 10

原创 “手撕“数组一些简单的习题

Java 中提供了 java.util.Arrays 包, 其中包含了一些操作数组的常用方法.Arrays.toString其实是一个方法,它可以直接帮我打印数组里面的值转成字符串。交换两个位置的元素. 然后让前一个下标自增, 后一个下标自减, 循环继续即可。给定一个数组, 再给定一个元素, 找出该元素在数组中的位置.思路:设定两个下标, 分别指向第一个元素和最后一个元素,5,4,3,2,1就是降序,也为有序数组。1,2,3,4,5就是升序,为有序数组。给定一个数组, 将里面的元素逆序排列。

2024-04-16 16:50:33 738 13

原创 三分钟带你“手撕”数组

那么我们会发现有很多重复的地方,而且很麻烦,每一个都要书写一遍,还不好管理。那有没有一种东西,可以把它们都给装到一个东西里面去,更好的书写并管理它们呢?答:有,那就是数组!数组就是把相同类型的变量储存在一个地方里面。它可以大大减少书写的次数,还方便管理。它就像一个车库,都有着自己的代号(也就是下标)可以方便我们管理。在Java中,如果有六个相同类型的元素,就相当于上图的六个车位。可以看出:1.数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号,

2024-04-15 12:47:32 751 14

原创 三分钟“手撕”三大特性中的<封装>

面向对象有三大特性:封装、继承、多态。那什么是封装呢?简单来说,就是套个壳子隐藏里面的细节。但是请注意,这三大特性是面向对象的,不能说是Java的三大特性。比如:一个电脑来说,电脑内部是很复杂的,但是它提供了就是开关机、通过键盘输入,显示器,USB插孔等,让用户来和计算机进行交互,完成日常事务。但实际上,电脑真正工作的却是CPU、显卡、内存等一些硬件元件。导入包就是软件给你提供了一些现成可以使用的类,一起形成了一个包,就叫做导入包。

2024-04-13 11:44:21 965 10

原创 五分钟“手撕”This引用、构造方法

int a;是创建一个变量,而int a=0;就是初始化变量,在创建它的时候顺便给它赋了个值,着就是初始化。int a;// Error:(26, 28) java: 可能尚未初始化变量a看上面这个代码,如果不初始化,在后续去输出它肯定会报错,为什么?因为它只管分配空间不包括给值,里面本来就没值,你还去打印它,所以会报错!构造方法是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。简单来讲:它是给对象的变量初始化的方法。

2024-04-11 19:41:40 866 7

原创 三分钟带你“手撕”Java中的类与对象

Java是一门面向对象的编程,那什么是面向对象呢?比如:你要把大象放进冰箱,你只需要三个对象,人和大象和冰箱。你只需要打开冰箱门,往里面放大象就行了,之后关上冰箱门。你不需要知道怎么放,横着放还是竖着放,也不需要考虑要怎么把他塞进去。像这种不考虑较少过程,多考虑对象的,就叫面向对象。如果要考虑过程,就是面向过程。面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景。类是用来描述一个实体(对象)的,主要是描述它是怎么样的,能干什么?比如:洗衣机。它是什么牌子的。

2024-04-11 13:26:41 510 11

原创 C语言数据类型和变量(八千五字大白话)

字符型,整型,浮点型,布尔类型,数据类型长度,unsigned,局部变量与全局变量,算术操作符,赋值操作符,前置++和--,后置++和--,强制类型转换,scanf和printf,以及scanf的返回值被忽视情况

2024-02-08 14:28:54 743 10

原创 C语言常见的概念(简单易懂版)

C语言是什么,该使用什么软件,该怎么书写,该注意什么,以及C语言的第一个程序

2024-02-05 17:54:00 1097 15

空空如也

空空如也

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

TA关注的人

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