Java
【cursor】大数据量操作
cursor 是什么 数据库 Cursor(游标)是一种可编程的数据库对象,用于在查询结果集中遍历和操作数据。通过使用 Cursor,我们可以在数据库中执行 SQL 查询、检索数据和对数据进行更新、插入或删除等操作。在使用 Cursor 时,首先要创建一个 Cursor 对象,并将其与一个查询关联。随后,可以使用游标方法来检索数据,该方法可以使用循环结构反复调用,以遍历整个结果集。 使用 Cu
Golang环境——GOPATH vs go.mod
GOPATH在本文中,我们将探讨 Go 编程的传统环境与基础环境之间的差异go.mod。 这种区别对 Go 开发人员如何构建和管理他们的项目工作区和依赖项具有重要意义。 我们将从了解GOPATH环境、它的组织和结构开始。然后,我们将探讨go.mod采用这种方法来提供模块化和灵活的方式来组织 Go 项目。 GOPATH了解这两种环境以及从到 的过渡go.mod为 Go 不断发展的生态系统提供了宝贵的
阅读《java并发编程实战》第十章
例1: 简单的加锁顺序导致的死锁: 例2: 动态加锁顺序,导致的死锁: 运行之后发生死锁,使用jps查看进程号,然后jstack + 进程号打印线程堆栈信息,能看到检测到死锁。原因是:如果账户A 和 B 相互给对方转账,那么就会造成死锁。transfer方法的参数,它传入的参数顺序,影响了加锁的顺序。 例3:通过指定加锁顺序避免死锁 例4:两个对象之间协作,互相持有对方的锁,造成死锁。比较隐
1111111111111111222222222
第2章 100W请求秒杀架构体系-冷热数据收集 和隔离 目标1:垂直日志收集实现 目标2:Apache Druid 海量日志实时分析 目标2:热点数据隔离实现 目标4:Lua解析JWT令牌高效校验身份 1 日志收集 日志在我们项目中是非常重要的,日志的作用也有差异,例如根据日志查找问题、根据日志做数据分 析。在我们秒杀系统中,活跃的热点商品其实并不多,我们往往需要对热点商品进行额外处理。用户每 次
1111111111111111
第2章 100W请求秒杀架构体系-冷热数据收集 和隔离 目标1:垂直日志收集实现 目标2:Apache Druid 海量日志实时分析 目标2:热点数据隔离实现 目标4:Lua解析JWT令牌高效校验身份 1 日志收集 日志在我们项目中是非常重要的,日志的作用也有差异,例如根据日志查找问题、根据日志做数据分 析。在我们秒杀系统中,活跃的热点商品其实并不多,我们往往需要对热点商品进行额外处理。用户每 次
Lombok注解及其作用
Lombok是一个Java库,通过使用注解简化Java类的开发,减少冗余的样板代码。以下是一些常用的Lombok注解及其作用: 1. `@Data`:生成所有属性的getter、setter、`toString()`、`equals()`和`hashCode()`方法。2. `@Getter`:生成属性的getter方法。3. `@Setter`:生成属性的setter方法。4. `@ToStri
关于自己找工作的一点感悟
tip:我是从2月21日~5月1日,本文是个人看法,主观意识较强,请大家酌情参考。 面试岗位:Java开发 一般每天11:00~11:30和18:00~18:30分回复率最高。 Boos直聘上啥都有,建议直接海投;拉钩上放出的岗位少,但是已读回复率高,都是真招聘,建议认真投;51job国企多,比较看学历和证书之类。 想进大厂,多刷算法,背面试题;进小厂,多准备项目。 心态最重要!不能慌,有可
Spring6 探析之@Lazy 注解
Spring6 探析之@Lazy 注解 介绍 在实际项目中,如果我们加载了过多的实例或配置,会导致 Spring 的启动速度非常慢,@Lazy 注解就是为了解决这种问题。 @Lazy 注解采用懒汉模式的单例模式,Spring 容器启动时,被标记的实例不会创建,只有在第一次使用时才会创建实例,这样就解决了 Spring 启动慢的问题 我们先看一下 @Lazy 的源码: @Lazy 可以作用在 类、
Spring6 探析之@Conditional 注解
Spring6 探析之@Conditional 注解 介绍 我们写业务逻辑时,会用到 if-else 条件,@Conditional 注解可以通过条件判断是否要将 Bean 注入到 IOC 容器中,它可以标记在类和方法上,我们先看一下源码吧 value 参数:是一个字节码数组,我们在自定义的类中编写条件,然后传入进value参数 演示 @Conditional 可以作用在类和方法上,也可以同时作
我的十年程序员生涯--无锡之旅,开启岗前培训
2012年的那个春天,考研初试结果出来了,很不理想。面临着二战及工作两种选择,最终选择了工作。当时的理由是“研究生之后,仍旧要工作,不如现在去工作,而且还可以积累三年的工作经验”。现在来看这个理由很不成立,工作的头两年感觉不到学历的重要,越是随着工作年限的增长,越感觉到学历的重要性,感受最深的是很多单位,很多岗位要求的最低学历就是研究生,而对于我这样一个普通的不能再普通的二本来说完全没有机会。在有
更换主题后的一篇测试文章
SSM 零、Maven 1:构建项目 clean:清除上一次构建生成的内容 compile:编译 compile: 编译主程序 test-compile: 编译单元测试程序 test:执行测试(单元测试用例) package:打包 install:安装 2:依赖的范围 compile:默认范围【编译前后都能用】,表示main、test里面都能使用,并且该依赖会打到最终部署的包里面去 tes
wait,notify,notifyAll,sleep,join等线程方法的全方位演练
一、概念解释 1. 进入阻塞: 有时我们想让一个线程或多个线程暂时去休息一下,可以使用 wait(),使线程进入到阻塞状态,等到后面用到它时,再使用notify()、notifyAll() 唤醒它,线程被唤醒后,会等待CPU调度。不过需要注意的是:在执行 wait() 方法前必须先拿到这个对象的monitor锁。 2. 线程阻塞后,通常有以下四种方式唤醒 另一个线程调用这个对象的notif
线程的 6 个状态(生命周期)
线程的 6 个状态(生命周期) 1. 线程的一生中有哪几个状态 有6种状态,分别如下: New Runnable Blocked Waiting Timed_Waiting Terminated 2. 每个状态的含义是什么 New:是在 new Thread() 之后,执行 start() 方法之前的一个状态; Runnable:是在线程调用 start() 方法之后的状态(其实包括两个阶段
SpringBoot+vue使用bcrypt对注册密码加密及登录校验
一、注册 1.后端 在pom.xml文件中加入 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-crypto</artifactId> </dependency> lombok依赖
本地spark通过spark集群连接hive
最近在学习spark,上周将spark集群搭建起来了,今天在idea中创建了一个测试程序读取hive库中的数据,程序很简单,但是踩到一些坑,卡了四五个小时,做个记录。 搭建Spark集群比较简单: 1、安装scala,scala版本要和spark使用的scala版本一致(因为这个问题卡了五六个小时) 2、下载、解压,配置环境变量 2、配置 conf/spark-env.xml 3、进入 sbin