自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx反向代理解决客户端ip获取问题

本博客域为(www.rocblog.cn) ,而请求的域为 (https://searchplugin.csdn.net/api/v1/ip/get) ,访问时理所应当的会造成跨域问题。然后nginx会自动将https://www.rocblog.cn/ipapi 替换为我们刚刚所配置https://searchplugin.csdn.net/api/这样子拼接下来其实就是和https://searchplugin.csdn.net/api/v1/ip/get/ 这个地址一样的。为了解决跨域问题,需要在。

2023-06-25 17:56:09 1010

原创 耗时一个月!手撸博客系统,主打美观实用!

其实是个我一边学vue一边写出来的东西,前期因为对vue的理解不足,边查边写,写起来有点痛苦🤮,但写了两三天基本就熟悉了vue的基本写法,后面就呼哧呼哧写,写到一半发现底层架构有点问题,又重新改底层🤮。写的过程中遇到的问题不计其数,头都大了,但最终还算是完成了,有价值的问题会陆续写博客发到网站里。起初是想搭建自己的博客,看了网上许多开源框架,感觉没啥意思,于是决定自己写一套。博客托管于腾讯云轻量云服务器🚀,水管小,有点慢别介意🤕。至此,本站用于记录以后值得记录的东西🌍。自从改了底层,后面写着就快多了。

2023-06-24 12:46:31 923 5

原创 记一次为学校流浪猫开发的小程序——航海之猫

某次刷朋友圈时,看到校园墙上有一个校园流浪猫救助组织在召集爱心人士加入工作小组。其中需要会做微信小程序的给学校里的猫猫做一个猫猫图鉴,于是就有了本次项目经历。

2023-06-06 01:01:39 543 1

原创 Docker使用方法记录

【代码】Docker使用方法记录。

2023-04-16 12:44:36 117 1

原创 全排列算法

【代码】全排列算法。

2023-03-23 11:06:34 79

原创 StringBuilder和StringBuffer的区别

那么因为StringBuffer涉及到等待锁的问题,所以运行速度是一定比StringBuilder慢的。上面说了StringBuilder是线程不安全的,StringBuffer是线程安全的。二者都继承于AbstractStringBuilder。

2023-02-05 22:21:05 101

原创 ajax发送请求导致response.sendRedirect页面跳转无效问题

它只会获取刚才请求返回的数据,其他的任何动作一概不去做,ajax是这么做的(ajax功能就是这么设定的,ajax框架源代码也是这么写的)。项目想要在后台进行页面跳转,用了response.sendRedirect,但是没反应,debug了一下,发现执行到重定向的时候没反应,当时就是一脸懵逼的,怎么重定向没有进行要页面跳转呢?也就是说,引入了ajax之后,ajax就插在浏览器和服务器之间了,服务器给浏览器的response被ajax拦截了,但是ajax本身却什么都不做,也不转达。

2023-01-08 11:39:31 1003

原创 SpringMVC常用注解

该注解用以注册接口的路由映射用法:该注解可以加在类上也可以加载方法上这样通过访问 http://localhost:8080/hi 在页面上看到一个hello world@Controller 是spring框架启动时会加载 注册到Bean中如果不加@ResponseBody会发现访问报错,因为他以为你返回了一个页面,结果并没有。为了简便写法,可以用 @RestController 注解@RestController的作用就相当于@Controller + @ResponseBody。

2022-11-28 16:37:09 682

原创 Bean生命周期

【代码】Bean生命周期。

2022-11-16 16:20:58 102

原创 Bean的作用域

Bean作用域为prototype时,IOC每次每次用到该Bean都会new一个新的实例,一个Bean有多个实例,每个引用都引用一个自己全新的实例。Bean的作用域为singleton时,IOC中只有一个实例,该Bean中只存在一个实例,每次注入都是注入的同一个实例。在一个http session中定义一个Bean实例,该用户该次会话都用这一个Bean实例。每次http请求都会创建一个新的实例,然后请求和响应都会共享这个Bean的实例。

2022-11-15 21:31:00 167

原创 Bean各种情况命名问题总结(使用扫描目录、Bean标签、@Bean注解等情况)

本文仅作总结性结论,不究其原因1.扫描目录、Bean标签存储Bean如类名前两个字母均为大写,则直接用类名直接作为Bean的id。如类名为:BDin,则Bean的id为BDin如非类名前两个字母都为大写,则将第一个字母转化为小写,其他不变,作为Bean的id。如类名为BeDin,则Bean的id为bean2.使用@Bean注解存储BeanBean的id为加了@Bean注解的方法名}如上,该Student类对象的Bean的id为saySB。

2022-11-10 19:32:39 189

原创 对@Bean注解的学习理解(大白话解释)

是return了一个StudentController类对象,return到哪里去了呢?就是return了一个对象存储到Spring里,托管给Spring,id为。可见,我启动类并没有调用user的sayHi()方法,但运行后却发现,输出了Hi~,我并没有调用啊。那么了解了@Bean注解的一些用法之后又有个问题。(为什么叫这个名字可以参考我上一篇博客),

2022-11-09 23:46:04 795

原创 对Spring Bean的一些思考(对Bean的理解及命名问题)

Bean的理解,命名问题

2022-11-09 17:46:05 234

原创 Spring核心

IoC与DI

2022-11-05 19:17:46 95

原创 UDP报文结构

UDP报文

2022-08-08 23:31:47 796

原创 JAVA——网络编程中基本概念

端口号/协议/协议分层

2022-08-04 18:52:19 117

原创 JAVA——死锁详解

死锁

2022-08-01 19:20:10 3985

原创 多线程使用哈希表

多线程使用哈希表

2022-08-01 18:27:09 489

原创 synchronized原理

原理

2022-07-31 20:39:49 128

原创 Java多线程——常见锁策略/CAS机制

锁策略,CAS机制,版本号

2022-07-31 18:46:01 330

原创 voliate关键字

voliate关键字

2022-07-25 18:09:23 8614 1

原创 Java线程的几种状态

Java线程的几种状态

2022-07-24 23:46:20 121

原创 JavaEE——Thread类详解

Thread类详解

2022-07-23 22:27:32 330

原创 Linux下的进程PCB以及线程详解

PCB详解

2022-07-22 20:58:52 2331

原创 Thread类中run和start的区别

Thread类中run和start的区别

2022-07-21 18:43:02 237 1

原创 JavaEE 前导——操作系统简述及进程与线程

重点讲进程与线程

2022-07-20 22:51:12 284 1

原创 Statement和PreparedStatement的区别及占位符使用方法

Statement与PreparedStatement的区别及占位符使用

2022-07-19 21:33:55 1407 1

原创 JDBC MySQL基本操作

jdbc基本操作

2022-07-19 20:37:22 224

原创 MySql 事务及其带来的问题和隔离级别

MySql事务及其带来的问题和隔离级别

2022-07-15 18:20:02 551

原创 MySq 数据库约束

数据库约束总结

2022-07-14 14:42:41 313

原创 冒泡排序详解(基础加优化详解)

之前没注意到的冒泡排序优化写法

2022-03-23 17:58:41 344 4

原创 JAVA学习路线1——方法重载,方法签名,数组(初始化)

方法重载类似于自然语言的一词多义,当JAVA中出现多个方法名相同,但参数名不同的方法时,称为方法重载一个简单的例子:public static int add(int x, int y) {return x + y;}public static double add(double x, double y) {return x + y;}public static double add(double x, double y, double z) {return x + y + z;}

2022-03-20 12:47:32 403 4

原创 预编译详解

1.#undef这条指令用于移除一个宏定义。eg.#undef NAME实际用法:#define M 50//定义了M为50int main(){#undef M//再次undef M printf("%d", M);}编译器会报错,因为M被undef移除了,所以之前define的M无效2.条件编译这里的条件预编译类似于我们写代码时用的if else if之类的条件语句常见的条件编译指令有:1.#if 常量表达式 //...#endif//常量表达式由预处理器求值。

2022-02-27 00:04:25 517 3

原创 位段及其内存分配详解

位段一、位段是什么?位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int 。2.位段的成员名后边有一个冒号和一个数字。例如struct A{ int _a:2; int _b:5; int _c:10; int _d:30;};A就是个位段类型,冒号后的数字代表他占几个比特位,例如_a就占2个比特位,_b就占一个比特位二、位段大小如何计算我们知道位段的成员只能是整型家族成员(char也属于整型家族)以上面的

2022-02-05 19:22:45 724

原创 计算结构体大小(对齐问题)

计算结构体大小我们定义一个结构体struct S1{ char c1; int i; char c2;};计算结构体S1的大小:为了计算结构体大小,首先我们要明白结构体的对齐规则:第一个成员在与结构体变量偏移量为0的地址处。其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。现在这么说会很抽象,所以我们以计算S1结构体大小的例子解释:首先对

2022-01-22 12:05:23 375 3

原创 C语言一维/二维数组解引用难理解点以及一道难题

C语言指针相关的坑爹题先来一点简单的求下面各代码打印结果(32位环境):int a[3][4] = {0};printf("%d\n",sizeof(a));printf("%d\n",sizeof(a[0][0]));printf("%d\n",sizeof(a[0]));printf("%d\n",sizeof(a[0]+1));printf("%d\n",sizeof(*(a[0]+1)));printf("%d\n",sizeof(a+1));printf("%d\n",siz

2022-01-18 19:57:03 1515 1

原创 超精细指针难点详解(指针数组,数组指针,函数指针数组)

指针难点(指针数组,数组指针,函数指针,函数指针数组)文章目录指针难点(指针数组,数组指针,函数指针,函数指针数组)前言一、指针数组二、数组指针数组名与&数组名的区别三.函数指针四.函数指针数组前言关于简单的整型/字符指针就不过多赘述,在这详解一下我个人认为指针的难点问题提示:以下是本篇文章正文内容,下面案例可供参考一、指针数组首先,我们要知道数组指针,它是个数组,因为它和后面要介绍的数组指针名字相似,所以在这做一个强调。代码例子:int* arr1[10]; /整形指针的数组

2022-01-16 20:31:53 758

原创 C语言简单的代码让你的期末设计系统界面更加亮眼(中国人不骗中国人)

C语言简单代码让你的毕设系统界面更加亮眼(中国人不骗中国人)我在做大一期末设计(订餐管理信息系统)时,看到主菜单输入a\b\c再按回车进入各个功能界面感觉太拉了,于是想出了以下效果:就是简单的按a左移选中框,按d右移选中框,按空格进入的效果,但比之前输入字母选择更加美观。具体实现思路如下:先附上完整代码 int n = 0; int i = 1; printf("\033[32m按任意键进入系统..."); while (1) { if (kbhit()) { i = ge

2021-12-10 09:55:56 4998 6

原创 数据的存储(大小端问题以及整型截断提升,我爷爷都会)

数据的存储文章目录数据的存储一、整型在内存中的存储二、大小端问题总结整型在内存中的储存一、整型在内存中的存储整型在内存中表示为三种形式:原码、反码、补码原码是整型的二进制表达,反码是原码按位取反,补码是反码加一。计算机内存储的是整型的补码一个例子就懂了以 1 为例 原码为:00000000 00000000 00000000 00000001 反码为:11111111 11111111 11111111 11111110 //原码按位取反 补码为:11

2021-12-07 21:28:31 730 9

原创 C语言实现三子棋(简单到我奶奶都会)

C语言实现三子棋首先我们应该构思:游戏流程每个流程如何代码实现游戏流程我们先构造总体框架,在这里先自定一个menu菜单函数,和一个game游戏函数至于函数主体我们后面再写int main(){ menu();//打印菜单 game();//进入游戏}开始界面在这里我们就写menu函数的主题(一个简陋的界面,你也可以做任何你想的样式)void menu()//打印开始界面{ printf("**********************************\n");

2021-11-08 00:11:53 4286 4

空空如也

空空如也

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

TA关注的人

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