自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农杰森

公众号『码农杰森』 专注于原理与实践 将知识点安排的明明白白

  • 博客(65)
  • 资源 (15)
  • 问答 (1)
  • 收藏
  • 关注

原创 SSH 免密登录配置与Permission denied (publickey,gssapi-with-mic,password)问题

为了SSH的登录安全,将SSH配置为使用公私钥的方式进行登录配置SSH使用公私钥登录来实现免密的方法,减少了每次登录都需要输入复杂密码与登录的安全问题,配置过程如下通过上面的配置基本就完成了SSH使用公私钥登录的配置。客户端登录提示: Permission denied (publickey,gssapi-with-mic)当我们关闭了gssapi认证,password认证登录方式,只开启pubkeyAuthentication时会提示:Permission denied (publickey)...

2022-06-28 09:27:10 6275 1

原创 Netty源码分析-概述

大家好,我是小森。前段时间我们学习了Netty框架,并完成了Netty框架主要组件的入门介绍(没有学习的小伙伴可以看这Netty框架入门);在这个系列中围绕服务端与客户端通信的示例展开学习,对Netty的Bytebuf、ChannelHandler、ChannelPipeline、Bootstrap和EventLoop等模块进行了学习,因为是入门级别所以讲的也不是很深入。但我相信通过这个入门系列的学习你已经学会了Netty框架的使用并且会产生一些思考与问题,例如下面这些:Netty的Bootstrap

2021-09-08 10:20:25 394

原创 Netty框架入门-目录整理(已完结)

前言用一个月的时间完成了Netty框架入门文章,文章总共8篇;这次的入门使用一个使用Netty框架完成的一个包含服务端与客户端通信功能的小例子。再围绕这个例子介绍Netty的Bytebuf、ChannelHandler、ChannelPipeline、Bootstrap等组件的使用及相关原理,并没有细讲实现的原理有些可能会过一下,文章中大多会使用服务端与客户端的例子重复的进行说明、拆解等。通过这一系列文章你可以掌握这些知识与技能:如何使用Netty框架Netty框架有那些主要组件Bytebuf中常

2021-08-03 14:20:44 173

原创 Netty入门-ChannelHandler组件详解

前言接着上篇的ByteBuf,这一篇讲讲ChannelHandler;ChannelHandler在Netty中作为处理Channel中的事件以及数据的一种方式存在,以Channel中还有ChannelPipeline,它负责编排ChannelHandler以使ChannelHandler能有效的协同作业。ChannelChannel是NIO中的重要组件之一,它持有着远程的数据,处理连接、监听、读、写等事件操作,也就是说连接一个远程服务器、读写网络数据等等都需要Channel这个组件的参与,在Java

2021-07-21 16:19:47 1260

原创 Netty入门-Bytebuf

前言在网络上传输的数据总是以字节为单位,Java NIO使用ByteBuffer作为字节的容器,使用起来比较繁琐与复杂。Netty使用ByteBuf作为ByteBuffer的替代品,但又具备ByteBuffer的功能且功能更强大。ByteBufByteBuf将会是使用Netty框架开发网络程序中使用频率较高的工具之一;Netty的数据处理通常由ByteBuf与ByteBufHolder这两个组件完成。下面先来看看ByteBuf的一些优点:通过内置的复合缓冲区类型实现了透明的零拷贝容量可以按需要增

2021-07-19 17:03:04 262 2

原创 Netty入门-选择Netty的理由

前言网络编程无处不在,Java JDK内置提供了OIO(BIO)、NIO的支持;没有看过Java BIO浅析、Java NIO浅析的小伙伴可以去看下BIO/NIO的小示例。但说到Java 网络编程少不了Netty;自它问世起就一直火到现在,像阿里的Dubbo框架、Jetty等都使用了Netty框架做为网络通信框架。上篇Netty框架:用Service与Client示例入门中通过实现一个服务端与客户端互发消息功能的示例讲解了Netty框架NIO模型的网络编程方法,通过这样一个小示例了解决了Netty的使用

2021-07-16 16:30:25 166

原创 Netty框架入门-Service与Client的NIO通信示例

知识点:Netty框架如何引导服务端监听网络端口并读写消息Netty框架如何连接远程服务器并读写消息Netty框架ChannelInboundHandlerAdapter部分事件使用方法Netty框架Channel管道使用方法前言上一篇对Netty框架做了一个大概的介绍,并对核心部件Channel、ChannelHeadler、Future、事件从概念与作用上做了说明,另外还与Java NIO 在编码上做了一个简单的对比,引出了EventLoop。本篇使用一个小示例来了解下Netty框架

2021-07-13 10:12:19 188

原创 Netty 框架概述与体系结构

本文知识点:Netty框架的作用Netty框架体系结构Netty框架Channel、ChannelHandler、Future、事件详解前言Netty框架是什么?Netty是一款用于快速开发高性能的网络应用程序的Java框架。它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被 比以往更广泛的开发人员接触到。它不只是一个接口和类的集合,还定义了一种架构模型和一套丰富的设计模式。通过Netty框架开发人员可以编写更高效的、可复用的、可维护的代码。Netty 体系结构使用Net

2021-07-05 16:15:34 368

原创 Java NIO 原理浅析与 Channel Selector Buffer 三大概念讲解

本文知识点:NIO 工作原理NIO 的三大概念 Channel Selector BufferNIO 相比于BIO的优点Java NIO 使用方法前言上一篇讲了Java BIO的使用和原理以及BIO模型带来的性能问题,BIO模型中每新增加一个连接就需要一个线程处理;可以使用线程池进行优化,但在10k、100k面前还是缚鸡之力;为了应对10k、100k的场景又演变出了另外一种网络I/O模型NIO。Java原生NIOJava 4 提供了NIO的API,NIO主要有几个基础的概念:Channe

2021-06-30 11:11:59 226 1

原创 Java BIO 原理浅析

本文知识点:BIO 工作原理BIO数据流类型Java Socket使用方法BIO 模型缺点与优化方法前言BIO在Java语言里是一种比较老的网络I/O模型,是阻塞的网络I/O模型,在监听、读取数据、写入数据时都会对调用线程进行阻塞等待内核态完成,读取数据的等待分为等待数据、 传输数据到用户空间。BIO工作原理图如下:BIO以数据流为核心,在读取与写入时都是通过流进行操作I/O流InputStream是Java socket中提供的默认读写网络流的接口类,其内部由SocketInpu

2021-06-28 16:41:55 195

原创 计算机基础 文件IO与网络IO 概述

本文知识点:计算机I/O类型有那些Linux6种文件I/O模型分别是那些Linux5种网络I/O模型分别是那些前言I/O输入/输出(Input/Output),计算机中常见的设备。从设备的角度出发有键盘、鼠标、显示器、打印机、网络。网络对于计算机而言可以充当输入也可以充当输出。从软件角度出发I/O是计算机中处理数据的通道,文件I/O系统、网络I/O等都是系统软件的一部分。文件I/O在Linux系统中使用VFS屏蔽系统底层的文件系统差异。VFS全名Virtual Filesystem,作用是

2021-06-23 16:11:40 517

原创 知识点: Java ReentrantReadWriteLock 读写锁共享锁与排他锁

Java ReentrantReadWriteLock读写锁实现原理前言ReentrantReadWriteLock实现原理ReentrantReadWriteLock公平锁与非公平锁总结本文知识:共享锁与排他锁理论ReentrantReadWriteLock实现读写锁原理前言先来说下共享锁与排他锁的概念,先在概念上有个了解:共享锁:锁在同一时刻可以被多个线程共享使用,一个线程对资源加了共享锁后其它线程对资源也只能加共享锁。共享锁有着很好的读性能。ReentrantReadWriteL

2021-06-16 09:49:11 330

原创 知识点: Java公平锁与非公平锁 原理讲解ReentrantLock 锁的饥饿效应及解决办法

公平锁与非公平锁理论前言AQS公平锁非公平锁ReentrantLock 使用ReentrantLock 解决饥饿效应本文知识:公平锁与非公平锁理论AQS的理论与原理讲解公平锁与非公平锁原理讲解ReentrantLock的使用非公平锁饥饿效应解决方法在上篇中分析了Java并发编程中悲观锁与乐观锁的实现算法,并分析了原子类中使用CAS算法实现乐观锁以及ABA、自旋等问题。延续上篇继续导论Java ReentrantLock锁,如果实现公平锁与非公平锁。前言公平锁:多个线程申请锁时是相对公

2021-06-14 14:09:41 2331 4

原创 知识点: JAVA 悲观锁与乐观锁原理分析 ABA与自旋效率问题分析及解决

悲观锁与乐观锁前言悲观锁与乐观锁Java原子类 ABA问题Java原子类 自旋效率问题Java原子类 片面性替换方案本文知识:悲观锁与乐观锁原理ABA问题原理与解决方案自旋锁原理与问题分析前言Java中提供了丰富的锁,每种锁因其特性不同,在适当的场景下展现出非常高的效率,本篇文章旨在通过源码分析、使用场景来讲解Java各种锁以及各种锁适用的场景。通过对锁的不同含义、适用场景做了如下归类:悲观锁与乐观锁悲观锁与乐观锁是一种广义上的锁,体现在看待锁的角度不相同。在Java与数据库中都有广

2021-06-11 11:28:35 1389 4

原创 Java ThreadLocal 有内存泄漏的风险怎么搞?分析下原理吧

ThreadLocal通过阅读本遍你将获取的知识ThreadLocalThreadLocal实现ThreadLocalMapThreadLocalMap内存泄漏通过阅读本遍你将获取的知识ThreadLocal 使用方法ThreadLocal 适合使用的场景ThreadLocal实现方法与原理ThreadLocalMap实现方法与原理Thread如何存储ThreadLocalMapThreadLocalMap内存泄漏原因与避坑方法ThreadLocal被解释为线程本地变量,生命周期与和

2021-06-09 13:47:40 239

原创 知识点:Java 并发编程 - 理解原子性

Java 并发编程 - 原子性原子性定义Java 8种原子操作synchronizedJDk操作的原子类线程安全是多线程编程中需要重要关注的领域,在并发编程时会使用锁机制来解决多线程之间同一共享变量操作的问题,多线程操作同一共享变量不加锁时会让变量的状态不可控,这样的情况下线程的操作是不安全的。而当多线程访问同一个类时,如果不用考虑这些线程在运行时环境下调度和交叉执行,并且不需要额外的同步与调用方法上的协调,这个类的行为状态仍然正确,那称这个类是线程安全的。像Servlet就是线程安全的,请求之间相.

2021-06-08 10:34:52 263 2

原创 Netty入门-Bootstrap引导详解

前言前几节深入学习了ChannelPipeline、ChannelHandler和EventLoop后,接下来的问题是:“如何让这些ChannalPipline、ChannelHandler和EventLoop一起有效组合成一个可以实际运行的应用程序呢?”答案是:Bootstrap(引导)。简单来说Bootstrap是一个应用程序中启动过程中的配置,通过这些配置让应用程序能正常的运行起来的一个过程;这个概念有点像操作系统的启动过相近,操作系统的启动过程同样有一个引导的过程。Bootstrap在开始讲.

2021-08-12 11:53:36 780

原创 Netty入门-EventLoop与线程模型

前言本节将讨论Netty框架中的EventLoop接口与线程模型,Netty是如果处理I/O事件循环等问题;Netty如何对任务进行调度等问题。下面通过一张图来展示本文的内容:EventLoop在Netty的定义中EventLoop接口只有一个方法EventLoopGroup parent();方法用于返回当前EventLoop实现的实例所属的EventLoopGroup的引用。Netty的EventLoop是一个协同设计采用两个基本的API:并发和网络编程。首先io.netty.util.conc

2021-08-09 16:59:59 251

原创 Netty框架入门-ChannelPipeline 详细使用

前言上篇讲解ChannelHandler的使用以及相关子类的使用,这一篇继续来讲讲ChannelPipeline与ChannelHandlerContext,它们三者的有效组合让Netty在处理业务逻辑上得心应手。在讲ChannelHandlerContext之前先来讲讲ChannelPipeline。ChannalPipelinePipeline 可以翻译成管道,在Netty中ChannelPipeline的作用也如同一条管道,通过这条管道处理入站与出站的数据、事件;通过ChannelPipelin

2021-08-04 15:36:45 744

原创 面试官:请问计算机如果处理二进制加减运算 并说说补码是什么

前言计算机中使用二进制表示一个数字,使用科学计数的形式表示浮点数,在Java中使用IEEE 754标准做为二进制浮点数算术标准。IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。有符号数的三种表示方式分别为原码、反码、补码。符号位都是用0表示正1表示负,数值位的表示方法各不相同。在计算中数值统一使用补码表示和存储,使用补码的原因在于可以将符号位与数值位统一处理;同时也可以将加法与减法

2021-06-21 14:04:07 869

原创 包邮赠书!《阿里巴巴Java开发手册 第二版》

由 码农杰森 提供三本《阿里巴巴Java开发手册(第2版)》。在学习知识点之于也来看看如何避坑。作者说:别人都说我们是搬砖的码农,但我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着,但在我们不羁的外表下,骨子里追求着代码的美、系统的美,代码规范其实就是一个对程序美的定义。但是这种美离程序员的生活有些遥远,尽管编码规范的价值在业内有着广泛的共识,在现实中却被否定得一塌糊涂。工程师曾经最引以为豪的代码,因为编码规范的缺失、命名的草率而全面地摧毁了彼此的信任,并严重地制约了相互的高效协

2021-06-04 11:10:24 143

原创 知识点:Java sychronized 内部锁实现原理

sychronized 内部锁实现原理内部锁 synchronized可重入性synchronized锁实现synchronized锁优化通过阅读本遍你将获取的知识:并发编程中synchronized关键字的用法synchronized锁的内部实现及可重入锁的实现ObjectMonitor内部主要结构与逻辑锁有那些状态与锁升级逻辑JDK对synchronized做了那些优化及优化的原因[上篇](Java 并发编程 - 原子性.md) 中讲解了多线程原子性的问题,通过ActomicInteg

2021-06-03 15:54:54 169

原创 知识点: Java FutureTask 使用详解

FutureTask 使用详解概述类图创建第一个任务取消任务检索结果值总结概述FutureTask 可取消的异步任务,提供Future的基础实现,并实现了Runnable接口。FutureTask包含了取消与启动计算的方法,查询计算是否完成以及检索计算结果的方法。只有在计算完成才能检索到结果,调用get()方法时如果任务还没有完成将会阻塞调用线程至到任务完成。一旦计算完成就不能重新开始与取消计算,但可以调用runAndReset()重置状态后再重新计算。类图FutureTask实现了Runnabl

2021-06-02 14:13:09 4719 2

原创 Java 线程创建的三种方式

Java Thread 创建的三种方式概述亲娘Thread二娘Runnable三娘FutureTask概述Java为单进程多线程的模式,在处理并发时常常使用多个线程来处理,在Tomcat druid等中间件中都有线程的应用。线程是进程的执行单元,线程依靠进行执行,只能使用进程分配的资源;在Java中每个线程都有单独的程序计数器、栈空间,相对于进程开销较小,线程是cpu调试的最小单元。线程可分为主线程 子线程 后台线程,主线程由JVM启动,并调用main方法,子线程由用户开启,后台线程为了线程的一种。

2021-05-28 10:08:14 1234

原创 Java ClassLoader详解双亲委派的实现原理

详解双亲委派的实现原理概述JVM默认的3类类加载器加载器的优先级双亲委派模式(Parent delegate)ClassLoader 委派如何工作的打破规则重写loadClass自定义线程上下文类加载器热加载类加载器的基本原理概述ClassLoader Java类装载器是Java运行环境不可或缺的一个部件,负责动态加载Java类至JVM虚拟内存空间中。Java中的类通常是按需要进行加载,即在第一次使用时将该类加载至JVM虚拟内存空间。有了类加载器,Java加载类文件就和系统的文件系统进行了解耦,在运

2021-05-24 11:09:17 357 4

原创 使用Java 注解完成权限验证

深入使用Java 注解完成权限验证概述如何定义与使用注解元注解@Retention@Target@Inherited@Repeatable注解的属性注解的本质概述Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。注解在Java中也被定义为一种类型;使用关键字@interface进行定义,定义的格式与interface基本相同如何定义与使用注解定义一个MyAnn

2021-05-19 16:50:13 929 1

原创 Java 反射技术应用与详解

Java 反射技术应用什么是反射Class类反射获取类型方法反射获取类型成员变量什么是反射反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。Java中的Reflection

2021-05-17 14:12:54 181

原创 深入Java异常 详细解析JVM异常原理

java异常字节码详细分析与原理解析概述C语言处理程序异常Java异常捕获与处理Throw 与Throws 关键字Java 检查异常 运行时异常Java异常捕获原理分析throws 与 catch的顺序总结概述异常是什么?异常:程序运行时不在预期范围内的事情都可以称作为异常;异常阻止程序按照期望正常运行。异常如果捕获与处理?捕获异常可以使用if对预期值进行判断后输出异常码,在C++ C# JAVA 等语言中可以使用try...catch语法进行捕获与处理C语言处理程序异常在C语言中捕获

2021-05-13 10:14:25 356 1

原创 Java String StringPool StringBuilder StringBuffer详解,面试不再难

Java String StringPool详解概览new String("abc")与String.valueOf("abc")的区别JVM字符串缓存String StringBuffer and StringBuilder概览String在java中并不是值类型,而是对象;和其它包装类型一样被设计成不可变对象;String类声明final类型,所以也不能被继承。在Java 8中,String内部使用字符数组存储数据。public final class String implements jav

2021-05-11 14:04:42 244 5

原创 Java 8种基本值类型

Java 8种基本值类型8种基本值类型隐式值类型转换值类型的包装类包装类的缓存池包装类都为不可变对象8种基本值类型byte/8char/16short/16int/32float/32long/64double/64boolean/~Java编程语言是静态数据类型,所以在声明一个变量或者变量里必须指定类型,然后才能使用它们。byte:byte数据类型是8位带符号的二进制补码整数,最小值-127,最大值127(含)char: char数据类型为单个16位unicode字符,最小取

2021-05-10 16:41:52 869

原创 转战 Typora Mackdown 文档编辑器

转战 Typora Mackdown 文档编辑器经历为什么放弃MWeb止步于此了吗再次选择它《Typora》最后的狂欢经历《MWeb》 MackDown文档编辑器,我应该是老粉了,从2.0版本开始使用,现在3.0也已经出来;3.0版本经过作者的优化有了很大的改进;因为开通了公众号,所以对MWeb的使用率是直线的上升了,基本每天的使用时间在4~6个小时;MWeb是我接触的一款很好的MackDown文档软件,在这之前写博文都是直接使用CSDN的网页版本(CSDN的网页版本做的真的很好用,我必须在这点个赞先

2021-05-09 11:43:28 258

原创 Typora 配置自定义图床 upload-image.sh

Typora配置自定义图床图床配置upload-image.sh问题解答图床配置Typore 支持的图床:iPicuPicPicGo-core(命令模式)PicGo.appCustom Command自己有图床服务,选择使用Custom Command的方式配置Typore 图片上传功能。Typore的CustomCommand使用Linux Shell实现自定义的图床服务;所以需要自己写一个Shell文件。上传图片使用curl命令进行图片的上传。Typore上传文件调用Shell

2021-05-09 11:37:06 732 4

原创 《Git Flow》分支管理模型实操图文分析

《Git Flow》分支管理模型实操图文分析概述分支创建冲突解决分支Tag概述Gitflow 可帮助持续进行软件开发和实施。它最初由Vincent Driessen发行并广受欢迎。Gitflow工作流定义了围绕项目发行版设计的严格分支模型。这为管理大型项目提供了一个强大的框架。Gitflow非常适合于有计划的发布周期项目和为DevOps的最佳实践的持续交付。除了Feature Branch Workflow所需的功能外,此工作流程不会添加任何新概念或命令。而是将非常具体的角色分配给不同的分支,并定义它

2021-05-08 17:01:41 359

原创 GitLab 社区版私服搭建与基本维护

GitLab 社区版私服搭建与维护方法GitLab 简介GitLab系统要求安装配置GitLabgitlab-ctl常用维护命令重新加载配置重启启动与停止备份与恢复GitLab 简介GitHub提供了业界闻名的Git项目托管服务,将代码托管在GitHub上,将项目设置为私有时GitHub上还是需要收费的。而GitLab的社区版是开源的(社区版免费,企业版需要订阅),它们都采用Ruby on Rails开发;可以使用GitLab社区版搭建一个私有的Git服务。GitLab的使用体验和GitHub也差不多;

2021-05-07 11:26:37 1456

原创 Git 常用的分支管理模型

Git分支版本模型新项目需要使用git做代码管理工具,目前有几种主流的分支管理模型:Git FlowGitHub FlowTrunk Based DevelopmentGit FlowGit Flow是Vincent Driessen于2010年发表的一篇文章提出的:《A successful Git branching model》。在这个模型中分别人feature branches develop release hotfix master分支在这个模型中主要分支是master

2021-05-06 15:25:12 2422

原创 Git 这样玩 爽翻!!!

Git架构日常8个命令// 添加文件到工作区git add //显示工作区状态git status//提交信息到本地仓库git commit//将变更推送至远程仓库git push//获取远程分支更新git pull//切换或者还原本地更改git checkout//克隆远程仓库到本地新目录git clone//初始化一个目录为git工作目录git init 示例//克隆远程仓库到本地git clone https://github.com/a.git//创建化

2021-05-03 11:58:20 107

原创 Spring Tx 如何实现“@Transactional”注解

在上篇中讲解了Spring-Tx模块是如果实现编程式事务以及是事务是如果进行管理的;经验丰富的读者可能也会发现在工作中重复的写事务的模块代码会是多么无聊与机械的一件事;做为一名工程师需要有工匠精神;为自己的工具箱添砖加瓦,那今天我们就会事务这个工具箱加上一片瓦;让这片瓦发挥它的功效。使用注解代替模板代码在java中会经常使用到注解这一特性;那是不是可以使用注解来代替事务的模板代码,在标有注解的方法被调用之前创建并开启事务,调用结束时提交事务,调用方法异常时对事务进行回滚;另外将事务隔离级别、传播级别以及

2021-05-01 08:54:52 379 2

原创 Spring Tx 之“PlatformTransactionManager“的编程式事务分析

在平常的工作会这样写一个模板事务,使用PlatformTransactionManager.getTransaction创建并开启一个事务;在try{}catch{}finally{}块中处理事务的提交、异常回滚等。示例代码:@Servicepublic class demo{ @Resource() PlatformTransactionManager transactionManager; public int insert(Product product,Pr

2021-04-29 12:21:59 2041

原创 Spring 事务注解 “@Transactional” 失效的三种场景

场景一@Transactional注解标注方法修饰符为非public方法时,@Transactional注解将会不起作用。例如以下代码,定义一个错误的@Transactional标注实现,修饰一个默认访问符的方法:@Servicepublic class TestServiceImpl {@Resourceprivate TestMapper testMapper;@Transactionalvoid insertTest() { int re = testMapper.inser

2021-04-28 18:33:06 781

原创 知识点:Java HashMap 原理与源码分析(下)

本文可以让你学到:1.HashMap resize原理     重要知识点2.HashMap 特性总结回顾上篇中讲了HashMap的特点、常用方法、工作原理以及hash值是怎样计算的;上篇《知识点: Java HashMap 原理与源码分析(上)》数据结构HashMap索引使用数组结构进行管理(图中的table字段),数组的类型为Node<K,V>[];Node是interface;Node实际有两个类型,分别为链表与红黑树;No

2021-04-23 23:07:52 1956 15

《构建高质量的C#代码》.(曹化宇) pdf 带目录版 下载地址

因原文件包太大,所以在此压缩包内给出了下载地址(http://pan.baidu.com/s/1o7omkx8),地址失效请留言或者评论。

2016-01-08

Log4Net .net3.5版本

此版本为Log4Net1.2.13的源代码编译版本,因此版本支持的为.net4.0,所有在此放出.net 3.5的版本

2015-08-18

富友接口C#版

富友接口使用类包含开发文档和代码说明文件,对富友的部分接口进行了封装,对没有封装的接口也只需要对其项目中的方法进行简单的调用后再对返回的数据进行处理即可完成对接口的调用,大大减少再次调试接口时间。

2015-01-22

微信公众开发平台接口.net版

开发微信时间不长,这是在开发过程中自己写的一个Utils,此版本中的接口并不是很全,但在以后会有更新,如有意思可在后流言,感谢这个的关注

2014-08-27

TortoiseSVN 64位 中文版

TortoiseSVN 64位 中文版 SVN中文版

2014-02-28

[WPF编程宝典.C#2010版].(美)Matthew.MacDonald.王德才.扫描版.pdf

[WPF编程宝典.C#2010版].(美)Matthew.MacDonald.王德才.扫描版.pdf 下载地址

2013-09-27

Xml转Excel

Xml转Excel

2013-09-25

FlashPaper2Installer.exe

FlashPaper Word文件转换成FLASH格式 文件工具支持批量转换 自己下载吧,是有用的。如果你制作客户帮助手册,这个东西很有用。绝对有用,公司内部使用的,有注册码,支持很多格式

2013-09-12

如何在Windows server 2003 上部署一个Asp.Net的网站

实用性很高,很有用,我在里面的关键点用了红色的标,呵呵,这个是在网上找的,有用就共享了

2013-08-21

ReflectorInstaller(反汇编)+注册机、安装文件为官方版

利器,不解释,.net平台反汇编利器,ReflectorInstaller(反汇编)+注册机、安装文件为官方版,内有注册方法

2013-06-01

Reflector 官方版

Reflector 神器 你懂的 Reflector是由微软员工Lutz Roeder编写的免费程序 Reflector的出现使 NET程序员眼前豁然开朗 因为这个免费工具可以将 NET程序集中的中间语言反编译成C#或者Visual Basic代码 除了能将IL转换为C#或Visual Basic以外 Reflector还能够提供程序集中类及其成员的概要信息 提供查看程序集中IL的能力以及提供对第三方插件的支持

2013-05-08

cuesplitter.exe

ape音乐分轨工具,免注册,好用 分轨后音乐清晰,支支持多种格式

2013-05-08

贪吃蛇C#源码

请使用VS2010以上版打开,源码未使用类,后续会上传用类写的源码,敬请关注。

2012-10-17

c#.net写 Windows记事本源代码(访写).

本文档只供个人参考所用,上传的目的为供大家学习所用,达到共习的目的,

2012-09-09

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

TA关注的人

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