- 博客(14)
- 收藏
- 关注
原创 写代码?交给 AI! - 用 AI Agent 自动生成完整项目的黑科技揭秘!
在软件开发的世界里,自动化一直是追求效率的主题。从代码片段的自动补全,到脚手架工具(scaffolding)一键生成项目骨架,开发者们已经习惯了用各种工具来节省重复劳动。但随着大模型(Large Language Models, LLMs)的崛起,代码生成的逻辑正在发生根本性的变化。AI 代码生成器,正是这个变革的产物,也是AI Agent概念的一种实现。AI Agent的概念不仅仅局限于代码生成,各种领域都会看到它的身影,其本质上是利用大模型实现软件从工具到助手的进化。简单来说,AI Agent。
2025-04-13 01:03:57
779
原创 什么是内网穿透?
内网穿透(NAT Traversal)是指在没有公网 IP 的情况下,让处于不同局域网的设备能够直接通信的技术。通常,家庭或企业网络的设备都在 NAT(网络地址转换)路由器之后,这样外部设备无法主动访问这些设备。为了让这些设备之间能够 P2P 通信,需要借助一些策略进行 NAT 穿透。使用UDP 实现NAT 打洞,本质上就是通过同时发送请求来欺骗NAT 服务器,让他误认为外部的请求是局域网内设备发送请求的响应。同时UDP 打洞只能支持UDP协议发送数据, 如果想是实现TCP打洞会更具备挑战。因为。
2025-04-09 16:09:53
895
原创 VM和Docker容器是如何上网的?
无论是docker容器还是虚拟机都是我们学计算机的同学无法绕过的知识点,这也曾是困扰我很久的问题,在这里写这篇文作为我的笔记备忘录,也作为一次学习、思考过程的分享。ending 撒花 🎉 🎉 🎉。
2024-01-29 21:17:55
882
原创 一个学习Java同学 的 JavaScript 笔记
JavaScript是一门流行的脚本语言return x;} //方式二 ,效果与方式一等效 类似于java中的匿名类 var hanshu = function(x) {return x;如果函数没有return,也会返回结果 :undefined参数问题js函数可以传多个参数 用 arguments 获取。不传参数不会报错,会显示结果 NaN。所以往往需要程序员手动规避不传参的问题。} return x;获取除已定义参数外的其他传入的参数ES6新特性。
2023-04-04 21:34:36
394
1
原创 最近翻了翻mybatis初始化部分的源码,和大家分享一下阅读源码的过程和乐趣
看XPathParser源码 ,可以看到它有两个重要的属性 Document 和 XPath 有js基础的同学应该知道这两个类对应的是什么,在前端的HTML中 ,我们把整个HTML文件抽象成一个文档树就是父标签包含子标签的那种,XPath则是一个在文档书中查找指定节点(标签)的方法。在XML文件中也是这么一个文档书。再看evalNode方法的返回值是XNode类型的,XNode就是mybatis对Node类的一个封装就类似于上文说的ClassLoaderWapper和ClassLoader的关系一样。
2023-04-04 20:56:54
234
原创 一起用Java写一个贪吃蛇小游戏
分析一个游戏应该有的需求,逻辑。贪吃蛇无非就是等待键盘操作,根据操作更改画面。其实不管是什么游戏都少不了这两个步骤,所以我们可以把这两个操作抽象出来定义一个规则,这就是经常听说的游戏引擎。一个java实现的简易游戏引擎文章用到该游戏引擎。来完成一个简单的贪吃蛇游戏。JavaSE GUI游戏中的元素:蛇,苹果,地图。接下来需要考虑怎么把这些元素画出来?毫无疑问需要用到java中的gui技术。问题一:我们可以把蛇看成一个有多个节点组成的链表。这样就可以通过的加和减少链表中的节点数来控制蛇的长度动态的变化。问题
2022-12-07 17:41:06
514
1
原创 【接口回调】关于接口回调的理解
同步调用异步调用同步调用:同步调用是一种阻塞式的,就比如A对象中的一个方法调用了B对象的方法,那么A方法必须等B的方法执行完才能继续执行。异步调用:异步调用是一种非阻塞式的调用方式,解决了同步调用的阻塞问题,例如A再调用B之后和B一起继续执行。类似于主线程中,创建了一个子线程,二者并行。回调:而在同步调用和异步调用中又分为同步回调和异步回调,其目的都是为了降低,模块之间的耦合度。
2022-11-26 20:55:51
1252
1
原创 【JVM】JVM体系结构及常用调优命令
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
2022-11-15 21:52:45
106
原创 【架构】Java实现游戏引擎
学过编程后,感觉所有的游戏都离不开两个方法,一个是画面更新,一个是指令输入。既然大多数的游戏都离不开这几步,那么为了便利游戏的开发,一些工程师就把这几个方法抽象出来,定义为一个规范,游戏开发者只需要根据这个规范实现游戏的业务逻辑就可以简单高效的开发出一个游戏。这个规范就是所谓的。这篇文章就用JAVA语言来实现一个简易的游戏引擎。
2022-11-03 22:34:43
2677
4
原创 【HTTP抓包】抓包工具charles的配置与使用
作为刚刚步入编程世界的新手,平时总会感觉到在学校学习的东西特别无聊,代码十分枯燥。那今天就说一说计算机网络学习中比较常见的应用——抓包 什么是抓包?在我们在浏览网页的过程中,为什么我们点进去一个页面就会出现一个丰富的页面?这是因为在我们输入网址点击后,浏览器会向对应的服务器发送获取资源的请求,服务器处理请求并响应资源。。对于浏览器而言,可以通过浏览器的控制台查看服务器的响应,但是对于APP就得用到抓包工具了。
2022-11-02 00:42:11
6657
1
转载 transient 关键字、序列化与反序列化
然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。总之,java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
2022-09-10 15:44:11
196
原创 初识计算机的底层原理
了解计算机的底层原理更有助于以后的学习,无论那种编程语言都是计算机执行的,这就意味着不同的编程语言虽然语法不同,但到最后的执行阶段都会变成计算机所能识别的信息,所以了解计算机的底层原理会让你的学习变得更加简单。提示:以下是本篇文章正文内容,下面案例可供参考。...
2022-08-14 23:00:50
1601
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人