自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shengjk1的博客

自得其乐,乐此不疲,码字

  • 博客(380)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何成为团队的领导者

如果你想成为领导者,就开始喋喋不休。你说什么甚至都不一定重要。新的研究表明,如果有人开始大谈特谈,没有领导者的团体就能找到一个。

2024-08-20 19:09:17 830

原创 一种新颖的面试方式

能同时做到拥有工作基础和强大的学习能力以及充足的计算机基础能力这样的人,已经是一个相对优秀的候选人了。如果遇到了,不要放弃,即使他可能连 SQL的开窗函数都不会写!

2024-08-16 19:23:35 421

原创 改善生活的 50 个秘诀

你不必热爱你的工作。工作是赚钱的一种方式。许多人通过将赚到的钱花在自己关心的事情上,从事着不错的工作,过着美好的生活。

2024-08-16 14:24:03 796

原创 写给非机器学习人员的 embedding 入门

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:1. 了解大厂经验1. 拥有和大厂相匹配的技术等希望看什么,评论或者私信告诉我!@[TOC](文章目录)# 一、背景目前在实现 NL2SQL 就是将人的自然语言通过 LLMs 的一系列处理,在这个过程中,会把文本向量化后存储到向量数据库中,然后通过向量搜索,这个过程中发现文本 embedding 后,通过向量化搜索效果很是惊人,就跟程序能读懂人的语言一样。于是对 emb

2024-08-08 20:13:11 802 1

原创 解决maven java.rmi.ConnectException: Connection refused to host: 127.0.0.1 错误

本篇文章主要讲述了在使用Idea打开项目时,可能会遇到Maven加载失败的问题,造成这个问题可能是因为DNS配置错误或者防病毒软件或防火墙会阻止与本地主机的连接等原因。文章提供了详细的解决方法,即关闭防火墙或添加白名单。

2024-08-08 15:34:37 428

原创 简单了解一下 CPU 和 GPU 的区别

本文介绍了CPU和GPU的历史产生背景,以及它们之间的区别和应用。此外,文章还介绍了如何利用大模型的优势,其中推荐了一个多模型可供选择的工具葫芦AI。

2024-08-06 19:49:45 939

原创 解开基于大模型的Text2SQL的神秘面纱

本文介绍了NL2SQL的实现方式,包括目前比较火的开源项目Vanna、DAIL-SQL以及其他实现方式,同时总结了当前NL2SQL实现方式的优化点。此外,本文还介绍了Text-to-SQL测试集WikiSQL、Spider和BIRD,以及评估模型性能的指标Spider Exact Match和Spider Exact Execution。

2024-07-25 15:08:38 1102 2

原创 【java多线程】理解多线程必须要知道的 CPU 缓存

本文介绍了CPU Cache的基本原理和实现方式。CPU Cache利用时间局部性和空间局部性原理来优化数据访问性能,通过缓存命中和缓存未命中的方式来提高处理器的运行效率。CPU Cache是通过SRAM实现的,因为SRAM具有低延迟、高速度的特点,能够以接近CPU频率的速度来运行。相比之下,寄存器虽然速度更快,但容量有限且成本高昂,无法直接替代缓存。CPU Cache在处理器设计中起着重要作用,能够提供更大的数据集合供处理器访问,并支持多核处理器的设计。

2024-07-12 14:47:28 676

原创 【Java 多线程】12个原子操作类一次性搞定

本文介绍了Java中的原子类,包括原子更新基本类型、原子更新数组、原子更新字段和原子更新引用类型。针对每种类型,文章都给出了相应的类的介绍和常用方法,并提供了相应的例子进行演示

2024-07-09 10:12:52 379

原创 一文搞懂 java 线程池:ScheduledThreadPool 和 WorkStealingPool 原理

本文详细介绍了 ScheduledThreadPool 和 WorkStealingPool 两种 Java 线程池。ScheduledThreadPoolExecutor 用于定时任务,提供 scheduleAtFixedRate 和 scheduleWithFixedDelay 两种方法来执行任务。WorkStealingPool 是 ForkJoinPool 的一个特例,使用工作窃取算法和分治任务,适合并行计算和递归分解任务。ForkJoinPool 的核心是工作窃取算法,能够实现任务的动态负载均衡,

2024-07-04 11:35:28 948

原创 一文搞懂 java 线程池:SingleThreadExecutor 和 CachedThreadPool 原理

本文详细介绍了 Java 中的 SingleThreadExecutor 和 CachedThreadPool 两种线程池。SingleThreadExecutor 是一个只有单一工作线程的线程池,适合顺序执行任务,能够有效处理需要顺序执行的一系列任务,并保持任务之间的顺序性。它提供了线程生命周期管理、顺序执行、线程鲁棒性、易于调试和任务队列管理等功能。而 CachedThreadPool 是一个会根据需要创建新线程的线程池,适合处理短生命周期的异步任务,能够动态调整线程数量以应对任务量的变化。它使用 Sy

2024-07-03 14:22:47 948

原创 一文搞懂 java 线程池:ThreadPoolExecutor 和 FixedThreadPool 原理

本文详细介绍了线程池的原理,包括ThreadPoolExecutor的处理流程、execute方法原理,以及FixedThreadPool的原理、优缺点及应用场景。

2024-07-02 20:20:10 1037

原创 一文搞懂 java 线程池:基础知识

本文详细介绍了Java线程池的概念、优势、分类、使用方法、配置原则和监控手段。首先解释了线程池是管理和复用线程的容器,能够有效提高多线程程序的性能和稳定性。接着,文章列举了线程池的多种类型,如固定大小线程池、缓存线程池、单线程池等,并详细介绍了ThreadPoolExecutor的创建方法和参数含义。文章还讨论了如何合理配置线程池以适应不同的任务类型,如CPU密集型、IO密集型等。最后,文章提供了线程池监控的方法和扩展线程池的建议。

2024-07-02 19:17:43 758

原创 Java 中使用标签(label)来控制循环的执行流程

本文介绍了在Java编程中的标签(label)的使用方式及其优势。标签可以用于多层嵌套循环中直接控制外部循环的执行流程,提升代码的灵活性和可读性。尽管在大多数情况下可以通过其他方式避免使用标签,但在特定场景下它仍然是一种有用的工具。

2024-06-27 17:35:09 906 1

原创 java线程间的通信 - join 和 ThreadLocal

本文探讨了Java中多线程通信的两个重要概念:join和ThreadLocal。join方法允许一个线程等待另一个线程的结束,适用于需要线程间协作和顺序执行的场景。ThreadLocal则提供了线程级别的数据隔离,每个线程都可以拥有自己独立的变量副本,适合保存线程相关的上下文信息和性能优化需求。

2024-06-24 20:16:57 960

原创 java线程间的通信- notify和 wait

在软件开发中,线程是实现并发执行的重要手段,然而,线程之间的协作与通信却是开发者必须重点考虑的挑战之一。Java作为一种广泛应用于多线程编程的语言,提供了一套强大而灵活的机制,让不同线程之间能够优雅地交替执行、传递信息,以实现协调合作。前面我们已经完成了多线程一些基础知识准备以及 volatile 和 synchronized,本文将深入探讨Java中通过notify和wait实现线程间通信的机制。通过源码我们可以知道 wait 是 object 对象方法,用于实现线程间的等待和通知机制。当一个线程调用。

2024-06-23 18:10:14 870

原创 java 线程之间通信-volatile 和 synchronized

本文介绍了在多线程编程中,线程之间通信的基本概念和现代处理器结构。在现代处理器中,使用缓存来提高数据访问速度,而线程之间的通信则主要涉及数据可见性和数据一致性的问题。为了解决这些问题,可以使用volatile关键字和synchronized关键字。volatile关键字可以保证可见性和禁止指令重排序优化,而synchronized关键字可以确保对共享资源的同步访问,保证原子性和可见性。

2024-06-19 17:00:10 1247

原创 打假-代码都让AI写,CS还有前途吗?加州大学伯克利分校:CDSS申请人数飙升48%!

官网上也明确告诉我们了,人家叫 加州大学伯克利分校计算机、数据科学和社会学院 (CDSS),成立于 2023 年 5 月 18 日,该学院将开发、实施和分享高质量、以道德为导向且易于理解的课程,为数据科学、计算和统计学领域的多元化学生提供教育。它还将通过开创性的多学科研究创造新的领域、应用和社会问题解决方案,这些研究充分利用了伯克利校园的卓越成就。该学院包括数据科学本科研究项目、统计系、伯克利数据科学研究所、计算生物学中心和巴卡尔地球数字材料研究所。

2024-06-17 19:24:31 398

原创 关于 java 多线程,你需要知道的一些基础知识

本文介绍了多线程编程中的一些基础概念和技巧,包括CPU时间片的概念和作用、减少上下文切换的方法、死锁的原因和避免方法,以及资源限制对多线程编程的影响。

2024-06-05 17:38:48 1005

原创 你需要知道关于 Java 线程一些最基本的事情

主要介绍了多线程在计算机编程中的重要性、线程的状态、如何创建线程以及如何停止线程。作者强调了多线程在提高程序响应性、性能、实现并发处理、资源共享、复杂逻辑实现和异步编程中的关键作用,并给出了详细的Java线程操作示例。

2024-06-03 19:57:10 885 1

原创 Flink 通过 paimon 关联维表,内存降为原来的1/4

本文介绍了如何通过替换维表实现FlinkSQL任务内存占用的优化。作者通过分析Iceberg lookup部分源码,发现其cache的数据会存在内存中,导致内存占用过大。作者将维表替换为paimon,通过分析paimon维表的原理,发现其cache的数据存储在rocksdb中,从而实现了内存占用的降低。

2024-05-28 19:59:27 1138

原创 利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%

本文介绍了 Flink 中使用 avatorscript 脚本语言的问题,以及如何通过 CompletableFuture 优化代码来提高 Flink QPS。同时,还介绍了 avatorscript 的使用方法,包括自定义函数、从 Map 中取值、使用 Java 工具类和 AviatorScript 函数。

2024-05-24 16:39:02 534

原创 JVM1.8分代的理论基础和简单测试

本文介绍了JVM的分代机制,即将内存分为年轻代和老年代,利用内存池保存不同年龄的对象,每当某一代充满时,会触发垃圾收集操作。大多数对象被分配到年轻代,其中绝大多数对象最终在这一代消亡。当年轻代达到容量时,会触发垃圾收集,只针对年轻代进行垃圾回收;而其他代中的垃圾暂不处理。在每次次要收集时,一部分幸存对象会被移至永久代。永久代最终也会填满,需要对整个堆进行回收,持续的时间通常年轻代长,因为牵扯的对象数量更多。

2024-05-21 20:23:54 820

原创 计算机寄存器是如何实现的

本文介绍了计算机寄存器的实现原理,包括通用寄存器、特殊寄存器、控制寄存器等,以及基于SRAM和DRAM构建的寄存器。重点介绍了DFF寄存器的实现原理,以及如何通过DFF构建1-Bit寄存器和16位寄存器。

2024-05-15 20:30:35 426

原创 计算机的内存是如何实现的

本文介绍了内存的实现原理,从冯诺依曼体系、时钟周期、DFF芯片等方面进行了讲解。同时,还介绍了内存的组成方式和内存的读写操作。总的来说,本文通俗易懂,适合初学者了解内存的基本原理。

2024-05-15 20:20:38 313

原创 一文搞懂CPU是如何进行计算的?

本文介绍了CPU的组成和计算原理,重点介绍了ALU的门电路组成和控制指令的输入输出,以及如何通过ALU计算两个数的差或和,并最终在屏幕或显示器上显示结果。

2024-05-15 19:56:31 1250

原创 曲线救国:window 安装 docker

本文介绍了Docker的基本概念和在Windows系统上的安装方法,包括下载Docker Desktop、启用Hyper-V、安装Docker Desktop、验证是否安装成功等步骤

2024-05-14 20:06:35 973

原创 sparksql 如何计算上一个自然周和自然月

本文介绍了如何使用SparkSQL内置函数计算上一个自然周和自然月的UV和VV,以及如何在计算时只计算指定时间段内的分区。作者分享了自己的思考过程和解决方案,并提供了详细的代码示例。

2024-05-13 19:55:38 460

原创 一文搞懂计算机是如何启动的

本文总结了计算机启动的原理,包括打开电源、加电自检、启动固件、BIOS初始化、启动设备选择、引导程序加载、操作系统引导加载程序执行、启动管理器启动、用户选择操作系统、操作系统加载和操作系统初始化等步骤。

2024-05-12 18:45:43 765

原创 计算机字符集产生的历史与乱码

本文通过比较计算机字符的发展史和人类语言的发展史,阐述了计算机字符的发展历程,从语言侏罗纪时代到语言百花齐放,再到语言统一,最后介绍了计算机字符的统一方式UTF。同时,也提到了各种字符转换工具的出现。

2024-05-11 19:55:16 726

原创 java1.8 的 client runtime compiler和server runtime compiler

本文介绍了Java Runtime Compiler的两种模式:Client Runtime Compiler和Server Runtime Compiler,以及如何在Java中使用它们。此外,还介绍了Java垃圾回收、堆以及runtime compiler的默认值。

2024-05-11 10:24:00 318

原创 进一步分析并彻底解决 Flink container exit 143 问题

本文介绍了Java中的Metaspace,以及如何设置Metaspace的大小和增长速度等参数。同时,通过分析GC日志,发现了使用Aviator表达式引擎时可能导致Metaspace内存泄漏的问题,并提供了解决方案。

2024-05-09 19:43:10 452 2

原创 Flink container exit 143 问题排查

文章主要介绍了作者在开发一个基于状态计算各种汇总数据的Flink作业时遇到的问题排查过程。作者一开始遇到报错后尝试调大Flink参数解决问题,但仍出现FullGC严重的情况。经过查看数据量、增大内存和排查后发现是由于Metadata内存分配失败导致的FullGC,最终调大JVM metadata阈值解决了问题。

2024-05-08 14:13:56 668

原创 计算机是如何执行指令的

现在所说的计算机基本上都是冯诺依曼体系的计算机。其核心原理: 冯·诺依曼计算的核心思想是将程序指令和数据以二进制形式存储存储在同一存储器中,并使用相同的数据格式和处理方式来处理它们。这种存储程序的设计理念使得计算机能够以可编程的方式执行不同的任务,而不需要对硬件进行物理修改。在冯·诺依曼计算中,计算机由以下几个主要组件组成:控制器、运算器、存储器、输入设备、输出设备。

2024-05-06 21:44:35 486

原创 window 安装大模型 chatglm.cpp

文章介绍了在工作中使用的电脑配置、安装组件及模型,并详细说明了安装步骤和运行方法。同时提及了模型量化的重要性和优缺点

2024-04-28 15:01:29 828

原创 window 安装大模型 chatglm-6b

有大模型以来一直想尝试通过本地安装大模型,主要的原因是GPT众所众知的原因没有办法通过 API 访问,而国内的所谓的开发平台一方面要么不兼容 openai 的 api 要么就是价格不够友好,要么两者兼有,另外的话,开发平台也有所谓的隐私问题。另外公司内部虽然有已经部署好的开源大模型,但相应的服务中的 Temperautre 或者 Top 都已经被固定了,用起来特别没意思。所以想自己搞一套,喜欢自己说了算。

2024-04-27 10:06:49 1258

原创 IP地址 0.0.0.0 和 127.0.0.1之间的区别

文章讲解了0.0.0.0和127.0.0.1的含义及区别,以及在服务器上下文中的应用。通过实例说明了在python django代码中绑定IP时的差异,对于理解网络协议和服务器配置有启发意义。

2024-04-25 16:55:22 1144

原创 是时候分清楚python 包:PyCrypto 和 PyCryptodome

今天遇到了一个 python 项目用到了 pycrypto 这个库,但这个库的依赖死活装不上去,有些懵逼,随去 GOOGLE 了一番python 密码学工具包,用来做加解密的,不幸的是最新版本 released: Oct 18, 2013,可今年是 2024年呀,一个正常的 python 包,不可能这么长时间不更新。

2024-04-25 10:47:01 605

转载 抬头看世界系列-短剧是什么玩意?

我一直坚信在中国目前的大环境下,对于大多数程序员来说,如果一直专注于技术,那么大概率只有一条路:那就是死,并且是沦为干尸的那种行尸走肉般的死。这里的死指的是被压榨干后失业。也可能是我说的太过于绝对化了,但不管怎么样抬头看世界,是为了更好活下去的基础。所以才有了这一些列,这一些列可能只有一期也可能会有很多期,主要还是得看流量,哈哈哈!

2024-04-24 19:02:22 32

原创 研究发现:90%的Java服务容易第三方漏洞的影响

报告指出,90%的Java服务存在一个或多个严重或高危漏洞,这些漏洞大多来自第三方库的引入。相比之下,JavaScript的受影响比例约为75%,Python为64%,.NET为50%,而平均数为47%。报告发现,根据CISA公布的已知漏洞利用目录,Java服务受到威胁比例高达55%,而使用其他编程语言构建的服务仅有7%。”报告显示,Java服务在受Datadog最新发布的“2024年DevSecOps状况”报告显示,Java服务在受到第三方漏洞影响方面最为严重。Datadog最新发布的“

2024-04-23 20:22:25 331 1

sql2003标准 sql2003标准

sql2003标准 sql2003标准sql2003标准sql2003标准sql2003标准sql2003标准

2018-05-23

Java数据结构和算法

Java数据结构和算法,包括源码,以及演示程序,Java数据结构和算法,包括源码,以及演示程序,Java数据结构和算法,包括源码,以及演示程序

2017-09-10

空空如也

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

TA关注的人

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