- 博客(64)
- 资源 (18)
- 收藏
- 关注
原创 用Java NIO模拟HTTPS
R1:随机数1 R2:随机数2 R3:随机数3 publicKey:公钥 privateKey:私钥。服务端 server hello + R2 + publicKey(验证证书,证书包含公钥)客户端 R3 + R1 + R2 -> 生成会话密钥。服务端 R3 + R1 + R2 -> 生成会话密钥。客户端与服务端使用相同的对称密钥算法生成会话密钥。客户端 client hello + R1。正式通信 对称密钥(会话密钥)加密数据。客户端 R3 publicKey加密。服务端 privateKey解密。
2025-04-12 23:29:23
296
原创 用Java写一个MVCC例子
4:如果被访问数据的DB_TRX_ID在readview的min_trx_id和max_trx_id之间,说明当前事务在访问其他事务修改过的记录,版本不可见,3:如果被访问数据的DB_TRX_ID大于readview的max_trx_id,说明当前事务在访问将来要执行的事务修改过的记录,版本不可见。2:如果被访问数据的DB_TRX_ID小于readview的min_trx_id,说明当前事务在访问已经提交的事务修改过的记录,版本可见。min_trx_id:当前活跃事务中最小的事务id。
2025-04-10 18:41:26
645
原创 系统调用、IO模型与Java线程状态
用户进程发起IO请求后,会注册一个或多个文件描述符的IO事件,然后等待这些事件的发生,当有事件发生时,内核会通知用户进程,用户进程可以继续进行IO操作。用户进程发起IO请求后,会向操作系统注册一个信号处理函数,当数据准备好时,内核会发送一个信号给用户进程,用户进程可以继续进行IO操作。用户进程发起IO请求后,如果数据未准备好,进程不会阻塞,而是立即返回,并设置一个标志位,表示数据未准备好。用户进程发起IO请求后,会立即返回,内核会在数据准备好后,自动完成IO操作,并通知用户进程。
2025-04-01 14:06:29
753
原创 三招叫你秒懂JavaScript中得this
/ 箭头函数内的this并不是根据setTimeout调用时的执行环境决定的,而是在函数定义时确定,继承自定义时所在的外层作用域的this。而在静态作用域的语言(如JS)中,这段代码将打印出`"global"`,因为`x`的解析是基于其在源代码中的位置,而`g()`函数从全局范围内解析`x`。如果这段代码运行在一个动态作用域的语言环境中,`g()`函数中的`x`将会引用`f()`函数内的`x`,即打印出`"local"`。作用域链是一个链表结构,每个作用域指向其外部作用域,直到全局作用域。
2025-03-24 16:05:20
335
原创 软件设计原则之迪米特法则
实现功能,从而降低系统的耦合度。它强调“最少知识”,让每个对象专注于自己的职责,是构建模块化、易维护系统的关键原则。在实践中,需结合场景灵活运用,避免过度设计,找到解耦与简洁的平衡点。(如自身的成员变量、方法参数、方法内部创建的对象),避免通过复杂的调用链访问间接对象。迪米特法则通过限制对象间的直接交互,强制开发者通过。一个对象应当尽可能少地了解其他对象,,提高系统的灵活性和可维护性。假设有一个学校管理系统,包含。
2025-03-23 10:52:21
915
原创 软件设计原则之里氏替换原则
里氏替换原则(Liskov Substitution Principle, LSP)是 SOLID 原则之一,它指出:子类型必须能够替换它们的基类型。换句话说,在使用基类的地方应当可以透明地使用派生类的对象而不会影响程序的正确性。违反里氏替换原则的一个典型反例是正方形(Square)和矩形(Rectangle)的关系。在几何学中,正方形是一种特殊的矩形,其中所有边等长。然而,如果我们在面向对象编程中直接继承关系来实现这一点,可能会违反 LSP。
2025-03-21 19:39:41
652
原创 Java遍历魔法
i = null;// 查看结果数组中值并未改变,由此可以推断test1()结论正确即:// 增强for(for-each)的局部变量是数组或集合中数据的副本System.out.printf("增强for(for-each) 自定义数据类型:%s\n", Arrays.toString(ps));
2025-03-20 19:09:51
203
原创 JSR269注解处理器
在resource文件夹下创建目录META-INF\services,在其中创建文件javax.annotation.processing.Processor。其中的内容注解处理类的全限定名:org.pp.lombok.BuilderProcessor。
2025-03-17 10:51:29
192
原创 垃圾收集算法
Java 最新垃圾回收算法以 低延迟(ZGC/Shenandoah)和 自适应分代管理(分代式 ZGC)为核心,结合硬件特性实现 TB 级堆内存的高效回收。G1 持续优化混合回收策略,而 Epsilon 为特殊场景提供零开销方案。开发者可根据应用需求(延迟、吞吐量、堆大小)选择合适的回收器。
2025-03-15 17:26:00
349
原创 Web 开发的“三件套”
跨平台开发:Electron(桌面应用)、React Native(移动端)等。前端开发:操作 DOM、处理用户事件、实现动画等。后端开发:通过 Node.js 构建服务器端应用。JavaScript:实现动态行为和复杂逻辑。JavaScript应用场景。HTML:定义内容结构。CSS:控制样式布局。
2025-03-13 22:48:06
78
原创 DevOps工具链
参考:https://cloud.tencent.com/developer/article/2322080。2、提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.1、对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制。自动化构建工具 Jenkins、GitLab CI/CD、Travis CI。Docker:容器(虚拟化、进程隔离)、镜像(软件)、仓库。Jenkins:持续集成、持续交付、自动部署。K8S:容器编排工具。
2025-03-13 17:11:32
366
原创 人工智能概念
算法:线性回归、逻辑回归、支持向量机、决策树、随机森林、K近邻算法。人工智能应用:自然语言处理、图像识别与生成、语音识别、政务与企业服务...算法:多层感知器、卷积神经网络、循环神经网络、长短期记忆网络。深度学习是实现这一目标的工具,模仿人脑,使用多层神经网络进行学习。机器学习提供框架,使得系统可以从数据中学习。大模型指参数量巨大的深度学习模型。
2025-03-13 17:05:06
73
原创 Java实现二叉树
Java实现一颗二叉树 实现了插入、删除、是否包含、将二叉树转化为主链、将二叉树平衡化、将二叉树写入文件、从文件读取一颗二叉树
2022-12-18 18:53:04
291
原创 概览
基础篇面向对象设计 设计模式 异常体系、断言、日志和调试反射、泛型、注解和动态代理字符串、数值、日期时间api 数据结构 函数式编程IO/NIO 、序列化和RMI高级应用篇图形编程java与xml、数据库编程网络编程并发编程位运算、类加载和Java安全JNIjava/jvm性能优化规范篇JCP JSR Java语言规范 JVM虚拟机规范JNDIJDBC J...
2020-02-16 20:45:53
136
转载 treegrid级联勾选或深度级联勾选扩展:两种扩展
treegrid没有级联勾选,要用怎么办?自己扩展呗~ 先明确两个概念:1、级联勾选:不包括未加载的子节点2、深度级联勾选:包括未加载的子节点 两种思路:1、扩展个新方法cascadeCheck,当需要进行级联勾选时,调用该方法进行级联勾选或不勾选。2、扩展onLoadSuccess方法,添加一个自定义属性:cascadeCheck(级联)或deepCas
2012-04-09 17:22:52
3260
原创 Servlet简介
开发中常用MVC模式,MVC对应的各个组件如下:M:model,模型,对应JavaBean(处理用户请求)。V:view,视图,对应Jsp(显示页面,如显示表格、菜单树等)。C:controller,控制器,对应Servlet(只负责请求转发)。此前,Servlet也是同时充当视图层、业务逻辑层以及持久层的动态网页编程技术。Jsp是Servlet的一种简化,使用Jsp只需要完成程序
2012-04-04 19:19:29
599
原创 Cookie与session
Cookie常用于网站记录客户的某些信息。一旦用户下次登录,网站可以获取到客户的相关信息,根据这些信息,网站可以对客户提供更友好的服务。Cookie会一直存放在客户端机器上,直至超出Cookie的生命期限。JSP使用response内置对象增加Cookie,它提供如如下方法:增加Cookie的步骤:(1).创建Cookie实例(2).设置Cookie的最大保存期限(3).向
2012-04-04 19:18:51
450
转载 struts2核心工作流程与原理
1. Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构。 2. Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。 ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java S
2012-03-20 20:38:49
783
转载 jRebel
想必大家对项目开发中,调试类文件修改时,容器自动重新加载漫长的过程早已厌倦,我今天闲来无事,于是,想试试javaRebel (jRebel)这个东西,javaRebel(jRebel)现在是收费软件,不过在网上可以下载到确解版的。在网上查了一下相关资料,可以实现修改类文件后,不用容器重新加载的功能,高兴之余顺手一试高下,先是下载了MyEclipse7.0(包括了eclipse)安装之,想在一个全
2012-03-20 18:25:57
10587
转载 oracle生成树
下面我们以PF_MENU这张表当作我们的数据表。 1、首先,我们查得整个表的数据: //CDID:菜单ID; FCDID:父菜单ID;CDM:菜单名称。 FCDID=0是最高级菜单;CDM=- 是 分割线SELECT CDID,FCDID,CDM FROM PF_MENU 得到的数据,如下(以下列举部分数据,不是完整的):CDID FCDID CDM30
2012-03-20 13:23:49
1313
转载 文件锁
读写相关的问题是永远存在的,文件锁就是为了解决这个问题而做的,其实它就是个简单的信号量。读写相关性指由于同时读写文件造成文件数据的随机性冲突。为了明确知道在何时通过何种操作对更改或是读取了文件中的那些数据,有必要对操作进行序列化,原子化,同步化,使用户能确知在何时文件中有什么数据。文件锁就是其中一个工具。文件系统一般有两种锁,共享锁及排它锁,也可被称为读锁和写锁。文件系统锁的特点:
2012-03-19 09:52:19
560
转载 农夫养牛
package excise;import java.util.ArrayList;import java.util.List;/** * 问题描述: * * 一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%, * 在牛12岁的时候就送入屠宰场买了。现在有一个农夫有1头1岁大的母牛, * 在母牛3岁的时候就送到附近的农场去配种,请问40年后这
2012-03-17 12:27:59
651
原创 关于NetBeans的界面风格转换详细操作
http://wiki.netbeans.org/Main_Pagehttp://www.blogjava.net/daisheng/articles/245909.htmlhttp://be-evil.org/netbeans-color-theme-collection.html
2012-03-15 13:55:46
1610
转载 历届奥斯卡获奖影片(1927—2009)
2009(81届) 获奖 《贫民窟的百万富翁》(Slumdog Millionaire),福克斯 提名 《贫民窟的百万富翁》(Slumdog Millionaire),福克斯 《本杰明·巴顿奇事》(The Curious Case of Benjamin Button),派拉蒙 2008(80届) 获奖 《老无所依》No Country fo
2012-03-14 19:20:21
2301
转载 各种字符编码详解(ascii,utf-8,unicode,gbk,gb2312,iso8859-1等)
1. ASCII 我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文本。 由于字节有
2012-03-10 22:41:40
859
原创 一些网址导航
版本控制Github https://github.com/progit/progit/tree/master/zh数据库MySql http://doc.mysql.cn/Java图形 http://www.cnblogs.com/cocowool/archive/2010/08/16/1800954.html骑士的卓越誓言blog http://xokni
2012-03-07 22:29:04
1429
转载 疯人院之大家别去美国,一个愚蠢而落后的国度
原文地址:大家别去美国,一个愚蠢而落后的国度【转载】作者:金鑫大家别去美国,一个愚蠢而落后的国度 来美国已多时了。我后悔当初的选择。一直都被西方媒体所蒙蔽欺骗,让我错误地以为美国是一个现代化国家。怀着学习美国先进科技报效祖国的豪情,我翻山越岭来到了这个“强大”的国度。可是结果让我大失所望! (1) 美国真的是个还未经开发的大农村.在中学时,老师们就教过
2012-03-05 13:17:12
6354
原创 树1
树节点类:package org.zp.datastruct;public class TreeNode { public Object data; public TreeNode leftChild; public TreeNode rightSib; public TreeNode () {} public TreeNode (Object obj) {}
2012-03-03 23:30:44
395
原创 疯人院之语言、编码、计算机
在数据结构总结1那篇文章中我已经提到了数据是信息的载体,语言是信息交流的工具,人类是个独立又相互联系的矛盾体。现在就来简单说说人类是如何进行相互联系的。毫无疑问至今为止人类交流的方式是丰富多彩、千奇百怪的。比如最基本的交流方式就是口语即说话,也就是规定一系列的符号,然后发送者通过声波(声带振动)的形式发送出去,接受者通过耳膜(共振)将接受到的声波信息转换为电信号通过神经传导至大脑,大脑经过分析
2012-03-03 11:25:47
1094
CPU结构_8086指令系统_汇编.pdf
2020-02-12
java ssh框架
2015-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人