- 博客(29)
- 收藏
- 关注
原创 表白墙前后端交互
首先我们需要了解ServletAPI是如何工作的,便于我们理解整个代码的逻辑。关键就是数据的存和取。【前端需要做的工作】存 - 前端将用户提交的信息传给后端,让后端存储到数据库(post,提交数据请求)取 - 前端从后端取出历史数据,显示到前端页面上(Get,获取数据请求)【后端需要做的工作】存 - 拿到前端传来的数据,存储到数据库中(post方法,处理请求)取 - 拿到数据库中的历史数据,传给前端(Get方法,处理请求)【请求】Post/message数据格式-json【响应】ok:1【请求】Get/
2023-03-28 20:59:50
238
原创 个人博客项目-测试报告
我在学习了JavaWeb的相关知识后,想动手实践完成一个web项目来巩固已学知识,将知识运用起来。平时学习,我会通过csdn或者博客园等网站学习技术知识、发布自己的学习笔记。在这个过程中,对博客系统有了一定的了解,所以就想着自己利用所学知识做一个简单的博客系统。在实践中发现自己的不足并不断进步…
2023-03-28 20:53:50
368
原创 HTTP(上) - 认识HTTP报文的格式及内容
GET与POST的区别首先这两者可以互相替代,没有本质区别。不过使用习惯/内部结构还是有点区别的!GET一般用于请求数据,POST一般用于提交数据
2022-11-13 16:54:58
1585
原创 Java - jvm中线程的状态以及线程状态的转移
线程状态的主干道路其实就是新建->可运行->终止三态道路,由于某些原因线程被阻塞,从而出现枝干道路。再者由于线程被阻塞的原因和目的不同,形成了三条枝干道路。
2022-08-31 18:23:39
360
原创 Java - 主内存&工作内存?使用volatile解决内存可见性问题
jvm在读取这个变量的时候,由于内存屏障的存在,就知道每次都需要重新从主内存中读取数据而不是草率的进行优化。,当多次循环判断,操作系统/jvm编辑器发现每次写回主内存的数据并没有修改过的时候,就会进行优化......
2022-08-30 13:45:07
499
原创 Java - 出现线程安全问题的原因有哪些?
从内存与cpu的角度来看:一行count++代码其实对应三条指令:① 从内存中读取数据到cpu;② 在cpu的寄存器中完成加法运算;
2022-08-30 11:32:54
1041
1
原创 Java - 使用synchronized关键字加锁
加锁实际上是保证原子性,一定程度上保证了线程安全注意:加锁过程本身是非常消耗资源的。如果加锁过程太频繁,虽然能够保证线程安全,但是效率就会大大降低 ~
2022-08-27 22:51:48
2631
原创 Java - 线程的属性和方法(sleep()、interrupt()中断线程、 join()控制线程顺序)
【 join 的行为】阻塞调用 '线程.join' 的线程1. 如果被等待的线程还没执行完,就阻塞等待2. 如果被等待的线程已经执行完了,直接就返回
2022-07-28 18:55:54
909
原创 JavaEE - 程序&进程的区别、进程&线程的区别,线程之间到底有没有父子关系?
程序是静态的可执行文件 (exe) 。它是计算机指令的集合,以文件的形式存储在磁盘上;而进程是动态运行的一个可执行文件。
2022-07-26 18:29:28
618
原创 JavaEE - 创建线程的几种方式(start()与run()有什么区别)、多线程的调度顺序、多线程的使用场合
为什么需要线程?并发编程虽然能够使得各个进程合理的占用到CPU的资源,提高运行速度。但是创建和销毁进程的过程(创建PCB -> 分配系统资源(耗时)-> 把PCB加入到内核的双向链表中....)实际上比较低效,当我们需要频繁创建/销毁进程的时候就不够满足需求了......
2022-07-24 22:43:49
318
原创 进程与程序的区别、操作系统中进程的状态以及状态的转换、进程的PCB管理、进程的虚拟地址
程序是静态的可执行文件 (exe) 。它是计算机指令的集合,以文件的形式存储在磁盘上;进程是动态运行的一个可执行文件。躺在我们电脑桌面上的程序就是一个个的exe,当我们双击某个程序执行它的时候,该程序就运行起来,运行起来的程序就叫做一个进程。............
2022-07-22 21:57:00
976
1
原创 MySQL之JDBC概述 - 是什么?干什么?JDBC连接数据库的详细步骤(IDEA)
JDBC是用来操作数据库的一套规范性的API接口。可能有小伙伴用的是命令行或者图形界面操纵数据库。不过实际开发时,在自己编写的代码中访问数据库的情况较多。要想在自己编写的代码中操纵数据库,就需要用到JDBC。...
2022-07-17 22:31:06
1248
原创 数据结构 - 时间复杂度与空间复杂度
循环嵌套、函数调用、递归函数的时间复杂度怎么计算?有什么规律?通过这篇文章,让你完全掌握技巧,快速计算出时间复杂度!
2022-04-30 18:51:21
1409
原创 JavaSE(3) -- 运算符+逻辑控制continue与break
一、运算符其他疑问为什么说Java中没有有符号和无符号之说?原反补码会有区别吗?
2022-03-15 22:00:26
167
原创 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
492
原创 指针练习题 -- 涉及一维二维数组等价转换、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
592
翻译 数组之间的赋值(数组之间不能直接赋值arr1≠arr2) -- C语言
数值之间不能直接赋值,即arr1≠arr2。不能直接赋值,那有没有别的办法赋值呢?数组之间赋值的案例怎么分析?
2022-02-11 11:55:27
11864
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
1961
原创 数据的存储(2) -- 浮点数存储 & 浮点数比较大小
目录一、浮点数定义与特点二、浮点数的存储与读取三、浮点数存储带来的特性1. 比较大小2. 浮点数相减一、浮点数定义与特点 既有整数部分、又有小数部分的实数。浮点数在计算机中用以近似表示任意某个实数。浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。 常见的浮点数∶3.14159 ,1E10,浮点数家族包括:float、double、long double类型。二、浮点数的存储与读取整数是以补码(通过原码求出补码)的形式存储...
2022-02-03 19:58:59
2637
原创 表达式求值 -- 整型提升
表达式求值的顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。1. 什么是整型提升? C的整型算术运算总是以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。char类型的b,c先转换为int类型的b,c再进行相加 ---- 整型提升计算结果b+c为int型,存储到char类型的a中,发生截断 ----整形截断整型提升的意义: 表达式的整型运算要在CPU..
2022-01-31 09:59:29
607
翻译 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
272
原创 函数指针的使用精髓 -- 回调函数+qsort的内部实现
函数指针有什么用处?回调函数是什么?qsort函数是什么样子的?可以用qsort完成什么操作?qsort函数内部是怎么实现的?一篇博客带你找到这些问题的答案~
2022-01-20 15:53:36
740
1
原创 C语言 -- sizeof操作符与strlen库函数的用法与比较
sizeof返回变量或类型占用的内存量(以字节为单位),它与变量的值无关;strlen 求字符串长度 -- 单位是字节(如果不是字符串,可能会出现错误)注意事项:①strlen函数内部实现:计算从字符串起始地址开始,到末尾的结束标志'\0'结束。也就是说,strlen的计算依赖于末尾的结束标志'\0'。
2022-01-06 19:20:43
514
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人