- 博客(19)
- 收藏
- 关注
原创 Java原生网络编程-BIO与NIO
摘要:本文对比了Java原生JDK中的BIO(阻塞I/O)和NIO(非阻塞I/O)网络编程模型。BIO采用"一连接一线程"模式,存在线程资源浪费和性能瓶颈问题,可通过线程池优化为伪异步I/O模型。NIO通过Selector、Channel和Buffer三大核心组件实现非阻塞通信,支持单线程管理多个通道。重点介绍了NIO的Reactor模式、事件类型(OP_READ/OP_WRITE等)及服务端/客户端的不同关注点,展示了NIO相比BIO在高并发场景下的优势。(149字)
2025-11-24 14:38:27
985
原创 理解网络通信
本文介绍了计算机网络的基本概念和发展历程,重点阐述了网络协议的分层结构。主要内容包括:1)计算机网络的定义和分类(局域网、城域网、广域网);2)OSI七层模型和TCP/IP四层模型的对比分析;3)TCP/IP协议族的核心协议(IP、TCP、UDP)及其特点;4)数据传输过程中各层的封装过程;5)TCP连接的三次握手和四次挥手过程,包括其原理和存在的安全问题(如SYN洪泛攻击)。文章通过类比日常生活场景,生动解释了TCP可靠传输和UDP不可靠传输的区别,以及为什么TCP需要三次握手和四次挥手。
2025-11-23 15:13:27
801
原创 系统中存在敏感信息加解密的设计方案
本文提出了一套完整的Java密钥管理方案,重点解决密钥轮换与灾备恢复问题。方案采用密钥版本控制系统实现自动轮换,通过分布式存储和门限密码技术保障密钥安全,支持每月自动更新密钥并保留12个历史版本。关键技术包括:基于HSM的硬件加密、3-5分片存储策略、细粒度访问控制,以及完善的监控审计机制。该方案可实现15分钟内密钥恢复,100%历史数据解密率,符合FIPS140-2三级安全标准,同时满足定期更换密钥和防丢失的业务需求。实施时建议结合硬件安全模块并定期演练恢复流程。
2025-11-23 15:11:58
508
原创 python中面向对象(封装、继承、继承、抽象)的实现
本文介绍了一个基于Python面向对象编程的支付接口适配系统。系统采用抽象类PaymentGateway定义统一支付接口,包含查询支付结果、创建支付单等核心方法。通过封装、继承和抽象三大OOP特性,实现了对易宝、微信、支付宝和连连等多个支付平台的适配。设计采用工厂模式支持支付渠道自动切换,并使用BaseResponse类确保返回数据格式统一。系统还特别处理了易宝主子商户号和支付宝appId映射等特定需求。该架构具有良好的扩展性,新增支付平台只需添加具体实现类即可。
2025-11-23 13:55:59
727
原创 java 实现归并排序
https://mp.youkuaiyun.com/console/editor/html/108763772这篇文章实现了插入排序插入排序相对比较简单也好理解,但是插入排序的时间复杂是很高的 O(n^2)所以需要对插入排序进行优化,这里我们使用归并排序来进行优化归并排序通过二分的思想将数组元素拆分到只剩一个为止,在对我们的元素进行合并处理,合并的时候需要比较数组中的元素大小时间复杂度:O(n log n) 稳定性:稳定图解/**以数组 int [] data = {6,5,3,7,...
2020-09-23 23:44:41
517
原创 java实现插入排序
打扑克就是插入排序的典型例子,特别经典将数据分为两部分,一部分是排好序的,另外一部分是无序,把无序的数据一个一个插入到排好序的序列中。时间复杂度:O(n^2) 稳定性:稳定实现步骤:将数组分成已排序段和未排序段,最开始时已排序段只有一个元素; 从未排序段取出元素插入到已排序段,并保证插入后仍然有序; 重复执行1、2步操作,知道未排序段元素全部排完。代码实现: public static void insertionSort(int [] arr){ ...
2020-09-23 23:08:02
598
转载 java 邮件发送 javax.mail.MessagingException
如果程序发送邮件发生异常javax.mail.MessagingException请检查:1邮件发送协议2端口3邮箱地址4密码微软的企业级邮箱是采用exchange的方式发送的具体代码请参考https://www.jianshu.com/p/7f26f2703176注意:发送邮件的时候需要将发信地址修改为对应的发信账号...
2019-06-03 12:38:12
4247
原创 异常com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version fo...
2019-04-18 12:01:59
496
转载 docker docker-compose 安装
docker 安装请参考 https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/docker-compose 安装请参考 https://docs.docker-cn.com/compose/install/ 如果有什么不懂的,欢迎交流...
2019-01-24 17:36:33
168
原创 docker compose 编排微服务 使用 docker swarm 解决docker 容器 跨主机通信问题
文笔不好,不喜勿喷;但是自认为是能够解决实际问题的微服务使用spring cloud实现,部署采用.jar包方式安静的研究了几天docker,最终解决了跨主机的通信的问题,虽然不知道其中的原理,但是还是需要记录下来!一、准备工作1,修改 eureka注册中心配置spring: profiles: active: @profileActive@ # 多环境使用...
2019-01-24 16:06:20
3491
原创 java ECC 加密 解密算法
公司最近需要使用非对称加密算法进行数据加密,本来打算采用RSA的,但是CTO强制使用ECC加密算法;没办法,硬着头皮整吧!网上的千篇一律,写法都差不多,但是有一个问题,公钥和私钥永远不会发生变法,这就比较尴尬了,而且数学学的又不是特比好,真的是很尴尬。不过后面还是搞出来了,这里直接上代码吧!ECC定义的常量,方便调用package com.ktnw.utils.ecc;pub...
2018-12-18 15:55:40
8705
13
原创 spring boot + mybatis + sharding jdbc 实现微服务分库分表
我这里采用的是mybatis的全注解实现,主要是没写过配置mapper.xmlspring boot 使用的 1.5.10 https://spring.io/projects/spring-boot 官网spring cloud 使用的 Edgware.SR2 构建 https://spring.io/projects/spring-cloud 官网,这里注意下,spring...
2018-11-06 21:28:09
1516
原创 Centos 7 gitlab 安装教程
1. 安装依赖软件yum -y install policycoreutils openssh-server openssh-clients postfix2.设置postfix开机自启,并启动,postfix支持gitlab发信功能systemctl enable postfix systemctl start postfix3.下载gitlab安装包,然后安装centos 6系统的...
2018-10-24 14:01:53
283
原创 Swagger2 生成 html 、pdf 离线文档
源码地址:https://github.com/tanzj520/SwaggerDocDemo首先,在项目pom中引入依赖 (我这里直接贴上完整的pom)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...
2018-09-21 20:18:16
1501
原创 Swagger 嵌套对象、嵌套json数据返回的写法
上篇文章我们介绍了如何使用Swagger 自动生成api文档 https://blog.youkuaiyun.com/qq_18206683/article/details/82805895但是生成的文档并不能满足我们日常项目中的需求,举个例子:我们在项目中需要返回这种数据{ "code": 200, "msg": "string", "result": { "curren...
2018-09-21 19:48:10
27884
12
原创 SpringBoot 集成Swagger 自动生成API文档
swagger用于定义API文档。源码地址:https://github.com/tanzj520/SwaggerApiDemo好处:前后端分离开发 API文档非常明确 测试的时候不需要再使用URL输入浏览器的方式来访问Controller 传统的输入URL的测试方式对于post请求的传参比较麻烦其实也可以选择第三方工具 https://www.eolinker.com/...
2018-09-21 19:33:37
1563
原创 spring boot mybatis 使用注解的方式访问 带返回结果集和输出参数的存储过程
需要使用到两个注解:org.apache.ibatis.annotations.Optionsorg.apache.ibatis.annotations.Selectmapper 写法:使用的注解和查询一样,但是要指定statementType为CALLABLE 这里一定得记得。service 解析:map 里面直接获取对应的返回列即可;如果想返回相应的对象,直接将List<Map<S...
2018-07-04 09:40:50
5203
原创 异常 java.lang.IllegalArgumentException: Mapped Statements collection already contains value for 解决
异常信息:org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:437) - Scanned package: 'com.***.entity' for aliasesorg.mybatis.spring.SqlSessionFactoryBean.buildSql...
2018-07-03 17:33:17
14925
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅