自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 表白墙前后端交互

首先我们需要了解ServletAPI是如何工作的,便于我们理解整个代码的逻辑。关键就是数据的存和取。【前端需要做的工作】存 - 前端将用户提交的信息传给后端,让后端存储到数据库(post,提交数据请求)取 - 前端从后端取出历史数据,显示到前端页面上(Get,获取数据请求)【后端需要做的工作】存 - 拿到前端传来的数据,存储到数据库中(post方法,处理请求)取 - 拿到数据库中的历史数据,传给前端(Get方法,处理请求)【请求】Post/message数据格式-json【响应】ok:1【请求】Get/

2023-03-28 20:59:50 206

原创 单例模式-懒汉、饿汉实现

两种实现:饿汉模式、懒汉模式。

2023-03-28 20:56:58 198

原创 个人博客项目-测试报告

我在学习了JavaWeb的相关知识后,想动手实践完成一个web项目来巩固已学知识,将知识运用起来。平时学习,我会通过csdn或者博客园等网站学习技术知识、发布自己的学习笔记。在这个过程中,对博客系统有了一定的了解,所以就想着自己利用所学知识做一个简单的博客系统。在实践中发现自己的不足并不断进步…

2023-03-28 20:53:50 330

原创 HTTP(上) - 认识HTTP报文的格式及内容

GET与POST的区别首先这两者可以互相替代,没有本质区别。不过使用习惯/内部结构还是有点区别的!GET一般用于请求数据,POST一般用于提交数据

2022-11-13 16:54:58 1234

原创 初步认识数据库:数据、数据库、数据库管理系统、数据库系统分别是什么?

在一般不引起混淆的情况下,人们常常将数据库系统简称为数据库。

2022-10-08 16:40:39 1522

原创 Java - jvm中线程的状态以及线程状态的转移

线程状态的主干道路其实就是新建->可运行->终止三态道路,由于某些原因线程被阻塞,从而出现枝干道路。再者由于线程被阻塞的原因和目的不同,形成了三条枝干道路。

2022-08-31 18:23:39 312

原创 Java - 主内存&工作内存?使用volatile解决内存可见性问题

jvm在读取这个变量的时候,由于内存屏障的存在,就知道每次都需要重新从主内存中读取数据而不是草率的进行优化。,当多次循环判断,操作系统/jvm编辑器发现每次写回主内存的数据并没有修改过的时候,就会进行优化......

2022-08-30 13:45:07 437

原创 Java - 出现线程安全问题的原因有哪些?

从内存与cpu的角度来看:一行count++代码其实对应三条指令:① 从内存中读取数据到cpu;② 在cpu的寄存器中完成加法运算;

2022-08-30 11:32:54 935 1

原创 Java - 使用synchronized关键字加锁

加锁实际上是保证原子性,一定程度上保证了线程安全注意:加锁过程本身是非常消耗资源的。如果加锁过程太频繁,虽然能够保证线程安全,但是效率就会大大降低 ~

2022-08-27 22:51:48 2479

原创 Java - 线程的属性和方法(sleep()、interrupt()中断线程、 join()控制线程顺序)

【 join 的行为】阻塞调用 '线程.join' 的线程1. 如果被等待的线程还没执行完,就阻塞等待2. 如果被等待的线程已经执行完了,直接就返回

2022-07-28 18:55:54 823

原创 JavaEE - 程序&进程的区别、进程&线程的区别,线程之间到底有没有父子关系?

程序是静态的可执行文件 (exe) 。它是计算机指令的集合,以文件的形式存储在磁盘上;而进程是动态运行的一个可执行文件。

2022-07-26 18:29:28 559

原创 JavaEE - 创建线程的几种方式(start()与run()有什么区别)、多线程的调度顺序、多线程的使用场合

为什么需要线程?并发编程虽然能够使得各个进程合理的占用到CPU的资源,提高运行速度。但是创建和销毁进程的过程(创建PCB -> 分配系统资源(耗时)-> 把PCB加入到内核的双向链表中....)实际上比较低效,当我们需要频繁创建/销毁进程的时候就不够满足需求了......

2022-07-24 22:43:49 286

原创 进程与程序的区别、操作系统中进程的状态以及状态的转换、进程的PCB管理、进程的虚拟地址

程序是静态的可执行文件 (exe) 。它是计算机指令的集合,以文件的形式存储在磁盘上;进程是动态运行的一个可执行文件。躺在我们电脑桌面上的程序就是一个个的exe,当我们双击某个程序执行它的时候,该程序就运行起来,运行起来的程序就叫做一个进程。............

2022-07-22 21:57:00 851 1

原创 MySQL之JDBC概述 - 是什么?干什么?JDBC连接数据库的详细步骤(IDEA)

JDBC是用来操作数据库的一套规范性的API接口。可能有小伙伴用的是命令行或者图形界面操纵数据库。不过实际开发时,在自己编写的代码中访问数据库的情况较多。要想在自己编写的代码中操纵数据库,就需要用到JDBC。...

2022-07-17 22:31:06 1129

原创 数据结构 - 时间复杂度与空间复杂度

循环嵌套、函数调用、递归函数的时间复杂度怎么计算?有什么规律?通过这篇文章,让你完全掌握技巧,快速计算出时间复杂度!

2022-04-30 18:51:21 1270

原创 JavaSE(5) -- 类和对象上

什么是类?什么是对象?怎么创建对象?类包括属性和方法,方法又包括构造方法和普通方法...

2022-03-26 21:48:34 114

原创 JavaSE(3) -- 运算符+逻辑控制continue与break

一、运算符其他疑问为什么说Java中没有有符号和无符号之说?原反补码会有区别吗?

2022-03-15 22:00:26 140

原创 JavaSE(2) -- 常量变量和数据类型

一、数据类型1. 数据类型的分类2.数据类型的大小 整 型 byte -- 1个字节 short -- 2个字节 int -- 4个字节 long -- 4个字节 浮点型 floa t -- 4个字节 double -- 8个字节 字符型 char -- 1个字节 布尔型...

2022-03-13 20:18:55 460

原创 指针练习题 -- 涉及一维二维数组等价转换、sizeof与strlen的计算

二维数组中的等价转换*(*(arr + i) + j) ==*(arr[i] + j) == (*(arr + i) )[j] == arr[i][j] 以及一维数组中的等价转换 *(arr + i) == arr[i] == *(i+arr) == i[arr]

2022-02-16 10:49:20 496

原创 数组名到底是不是指针? --- 数组名与指针的区别

数组名是指针吗?数组名的本质是什么,为什么会和指针产生联系?

2022-02-11 15:03:45 4884 7

翻译 数组之间的赋值(数组之间不能直接赋值arr1≠arr2) -- C语言

数值之间不能直接赋值,即arr1≠arr2。不能直接赋值,那有没有别的办法赋值呢?数组之间赋值的案例怎么分析?

2022-02-11 11:55:27 9623 1

原创 int* const p指针常量与const int* p常量指针的区别 & 数组名是不可修改的左值

一、指针常量与常量指针的定义注意区别指针指向的值&指针本身(指针的指向)...1. 指针变量:int a = 1;int *p = &a --> p指针变量,指针指向的值是变量。2. 常量指针:const int* p ,指针指向的值时是常量,不能被修改。但是可以修改指针本身。不能 修改*p,但是可以修改p。3. 指针常量:int* const p,以上资料是在写博客搜索资料时,找到的概括较好的定义,源自于区别...

2022-02-11 11:54:14 1802

原创 数据的存储(2) -- 浮点数存储 & 浮点数比较大小

目录一、浮点数定义与特点二、浮点数的存储与读取三、浮点数存储带来的特性1. 比较大小2. 浮点数相减一、浮点数定义与特点 既有整数部分、又有小数部分的实数。浮点数在计算机中用以近似表示任意某个实数。浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。 常见的浮点数∶3.14159 ,1E10,浮点数家族包括:float、double、long double类型。二、浮点数的存储与读取整数是以补码(通过原码求出补码)的形式存储...

2022-02-03 19:58:59 2338

原创 数据的存储(1) -- 整形的存储

本篇主要讨论:整型数据在内存中的存储方式。探讨总结原反补码概念以及相互转换,大小端字节序等内容...

2022-01-31 10:50:32 1061

原创 表达式求值 -- 整型提升

表达式求值的顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。1. 什么是整型提升? C的整型算术运算总是以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。char类型的b,c先转换为int类型的b,c再进行相加 ---- 整型提升计算结果b+c为int型,存储到char类型的a中,发生截断 ----整形截断整型提升的意义: 表达式的整型运算要在CPU..

2022-01-31 09:59:29 533

翻译 typedef与define宏定义的区别

一、两者的区别typedef常用来定义一个标识符(增加可读性而为标识符另起的别名)#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),#define宏定义只是简单的字符串替换。而typedef定义的标识符具有一定的封装性。????来通过例题理解这句话的含义:????题目中 a,b,c,d 一样吗?????????‍♂️#define修饰:int* a,b -> int*a ,int b-> a是指针常量,b是普通变量typedef修饰: int_ptr

2022-01-29 22:21:53 240

原创 函数指针的使用精髓 -- 回调函数+qsort的内部实现

函数指针有什么用处?回调函数是什么?qsort函数是什么样子的?可以用qsort完成什么操作?qsort函数内部是怎么实现的?一篇博客带你找到这些问题的答案~

2022-01-20 15:53:36 557 1

原创 数组名、数组首元素地址、整个数组地址之间的关系 -- C语言

主要讲解--arr数组名是首元素地址的两个例外情况...

2022-01-06 22:56:18 1828

原创 C语言 -- sizeof操作符与strlen库函数的用法与比较

sizeof返回变量或类型占用的内存量(以字节为单位),它与变量的值无关;strlen 求字符串长度 -- 单位是字节(如果不是字符串,可能会出现错误)注意事项:①strlen函数内部实现:计算从字符串起始地址开始,到末尾的结束标志'\0'结束。也就是说,strlen的计算依赖于末尾的结束标志'\0'。

2022-01-06 19:20:43 479

空空如也

空空如也

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

TA关注的人

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