avatar
文章
35
标签
29
分类
3

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
WHAT AM I ?
搜索
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

WHAT AM I ?

ThreadLocal
发表于2025-09-14|学习笔记
ThreadLocal 深度解析1. 核心概念 作用:为每个线程提供独立的变量副本,解决多线程并发访问共享变量的冲突问题。 本质:线程级别的全局变量(线程隔离的全局存储)。 2. 底层原理12345678public class ThreadLocal<T> { // 关键:每个Thread对象内部维护一个ThreadLocalMap public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = t.threadLocals; // 获取线程专属的Map map.set(this, value); // 以ThreadLocal实例为key存储值 }} 存储结构: 每个 Thread 对象内部有一个 ThreadLocalMap(类似HashMap但更简单)。 Key:ThreadLocal 实例(弱引用),Value:线程的变量副本。 3. 使用场景 场 ...
SpringBoot原理
发表于2025-09-14|学习笔记
配置优先级五种配置方式 application.properties application.yml application.yaml Java系统属性配置 -Dkey=value 命令行参数: –key=value 优先级:命令行参数 > 系统属性参数 > properties参数 > yml参数 > yaml参数 启动jar包时指定Java系统属性配置和命令行参数: 1java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010 Bean的管理1. Bean的作用域配置 作用域 说明 singleton 容器内同名称的bean只有一个实例(单例)(默认) prototype 每次使用该bean时会创建新的实例(非单例) request 每个请求范围内会创建新的实例(web环境中,了解) session 每个会话范围内会创建新的实例(web环境中,了解) application 每个应用范围内会创建新的实例(web环境中,了解) IOC容器中的 ...
Java中的会话,过滤与拦截
发表于2025-09-13|学习笔记
会话技术CookieCookie技术有三个自动: 服务器会 自动 的将 cookie 响应给浏览器。 浏览器接收到响应回来的数据之后,会 自动 的将 cookie 存储在浏览器本地。 在后续的请求当中,浏览器会 自动 的将 cookie 携带到服务器端。 Cookie的使用: 设置Cookie 服务端 ——> 浏览器 关键: 形参包含 HttpServletResponse 123456789101112131415161718192021@RestControllerpublic class CookieController { // 1. 设置 Cookie @GetMapping("/setCookie") public String setCookie(HttpServletResponse response) { // 创建一个 Cookie 对象 Cookie cookie = new Cookie("user_token", "abc123&qu ...
Go反射和Java反射异同点
发表于2025-09-11|学习笔记
Java反射:万物皆对象,无论是类,方法,还是属性都有自己的对象类 12345678910111213141516171819202122232425262728293031323334353637383940414243//==========获取class对象============----------------------------//通过全限定名/类名Class<?> clazz = Class.forName("com.dhrjava.refelctTestClass");Class<?> clazz = String.class;//通过已初始化对象String str = "test";Class<?> clazz = str.getClass();//=========现在已经有了clazz对象=======-----------------------------//===========创建实例=================----------------------------// ...
Go和Java多线程
发表于2025-09-07|学习笔记
Java 与 Go 并发编程对比1 并发模型核心理念Java 和 Go 在并发编程上采用了截然不同的哲学和实现模型。 Java 采用共享内存模型。其并发基于操作系统线程(内核线程),你编写的每个 Thread 都直接对应一个操作系统线程。多个线程共享进程内存空间,这使得数据共享直接,但也带来了复杂的同步问题。线程间通信主要通过读写共享变量,并使用锁(如 synchronized)或其他同步机制(如 wait()/notify())来协调访问、避免数据竞争,Java 的线程是抢占式的,由操作系统内核进行调度,这可能导致调度开销较大,尤其是在线程数量很多时。 Go 则推崇 “通过通信来共享内存” 而非“通过共享内存来通信”。其核心是 goroutine,这是一种由 Go 运行时管理的轻量级线程(协程)。大量 goroutine 可以在少量操作系统线程上高效复用。Go 运行时调度器采用 GPM 模型(Goroutine, Processor, Machine),在用户态进行协作式调度,调度开销极低。goroutine 间的通信首选**通道 (channel)**,它是一种类型安全的队列,用于 ...
JAVA基础
发表于2025-05-30|笔记
class 和 数组 在内存上的相似性类和数组的 名 ,均保存的是地址值 即 123456789101112131415public static class myclass(){ int num; string str; public void change(int a ,string s) { a = a+1; }}...mian...(){ myclass class01 = new myclass(); myclass class02 = class01;//这一步把class01的地址值赋值给了class02,他们两个现在指向同一片内存空间} 成员变量和局部变量的区别 初始化值不同: 成员变量有初始值,局部变量没有 内存位置不同: 成员变量在堆中(本质是跟着对象走),局部变量在栈中(本质是跟着方法走) 生命周期不同: 成员变量跟着对象走,随着对象的产生而产生,随着对象的消亡而消亡 局部变量跟着方法走,随着方法的调用而产生,随着方法结束而消亡 this关键字——>区分成员变量和 ...
学生信息管理系统
发表于2025-04-10|笔记
功能概述: 每个Student 对象存储一个学生的信息 查询功能: 通过姓名查询(考虑重名情况) 通过学号查询 修改功能: 修改姓名 修改学号 修改年龄 修改班级信息 增删信息: 增加/删除条目 展示全部: 展示当前全部信息 项目结构:123456789101112131415161718src └─com └─stu_info_manage ├─controller │ main.java │ UserInput.java │ ├─data │ Add_rm.java │ Change_info.java │ Info_Stroage.java │ Search.java │ Student.java │ └ ...
基础语法
发表于2025-01-07|学习笔记
CMakeLists.txt编写 文件名必须严格写为CMakeLists 基础的三句话:12345678cmake_minmum_required (VERSION 2.8) //这句话指的是支持的cmake最低版本project (test) //这句话是项目名称add_executable(test_executable_file main.c) //这句话有两类参数,第一个参数是预计生成的可执行文件,后面的参数是Cpp语言源文件,如果说有多个源文件,则在第二类参数里面添加,比如:add_executable(test2 main.cpp test.cpp) 清除命令:123make clean //清除test_executable_file可执行文件rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile test_executable_file //删干净 将所有文件包含进去的命令:123456aux_source_directionary(dir var)#这句话有两个参数,前面一个dir指的 ...
静态库/动态库
发表于2025-01-07|学习笔记
形式一般来说,Windows的静态库文件扩展名是 .lib,动态库文件扩展名是 .dll (Dynamic-Link Libraries);Linux的静态库扩展名是 .a,动态库扩展名是 .so (Shared Object) Linux系统存储的库的位置一般在:/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。Linux库有两种,一种是静态库,其命令规则为 libxxx.a;一种是共享库,其命令规则为 libxxx.so 生成静态库生成step1 编译生成.o文件1gcc -c hello.c 此时将会生成一个hello.o文件 -c 和含义:只编译,不链接 step2 使用.o文件生成 .a静态库1ar -crv libhello.a hello.o -crv是ar命令的选项:c,r,v分别代表crate,replace,verbose -c (create): 表示创建一个新的静态库文 ...
基础语法
发表于2024-12-04|学习笔记
1. 基础语法1.1 引用运算 & 和 const 关键字引用运算 &引用是已有变量的别名,创建引用时不会分配新内存,而是直接操作原变量。引用的特性: 必须在定义时初始化。 一旦初始化,就和原变量绑定,不能重新绑定。 代码示例: 12345678910111213#include <iostream>using namespace std;int main() { int a = 10; int &ref = a; // ref 是 a 的引用 cout << "a = " << a << ", ref = " << ref << endl; ref = 20; // 修改 ref,相当于修改 a cout << "After modifying ref: a = " << a << ", ref = " << ref & ...
1234
avatar
Edward Nygma
The RiddlerShow
文章
35
标签
29
分类
3
Follow Me
公告
This is my Blog
最新文章
LeetCode 146 LRU实现2025-11-05
Spring事务失效的情况,场景和解决办法 以及引出的Spring底层注入原理彻底分析2025-11-03
网关路由、统一鉴权与动态配置管理2025-10-30
SpringCloud 微服务——Nacos 与 OpenFeign 详解2025-10-30
JDK新特性2025-10-29
分类
  • 刷题笔记1
  • 学习笔记30
  • 笔记3
标签
CMake mySql 苍穹外卖 GORM 细节辨析 Lambda表达式 Java 方法引用 C++ 反射 LeetCode 微服务 MybatisPlus Spring事务 Docker Stream流 Golang 注解 JAVA 近世代数 SpringBoot STM32学习 数据结构与算法 golang AOP 悲观锁 OpenFeign Nacos 多线程
归档
  • 十一月 20252
  • 十月 20255
  • 九月 20258
  • 五月 20251
  • 四月 20251
  • 一月 20252
  • 十二月 20241
  • 十一月 20243
网站资讯
文章数目 :
35
本站总字数 :
86.4k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Edward Nygma
框架 Hexo|主题 Butterfly
搜索
数据库加载中