自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!

  • 博客(18)
  • 资源 (27)
  • 收藏
  • 关注

原创 dart系列之:你的地盘你做主,使用Extension对类进行扩展

文章目录简介dart中extension的使用API冲突extention的实现总结简介一般情况要扩展一个类,需要继承这个类,这是在大多数java或者其他面向对象语言中要做的事情。但是有些时候扩展类并不是特别好用,首先在有些语言中,有些类是禁止被扩展的。即使可以被扩展,但是扩展之后的类是一个新的类,而不是原来的父类,所以在使用的过程中可能会出现一些类型转换的问题。那么在dart中是怎么解决这个问题的呢?dart中extension的使用dart在2.7之后,引入了extension,用来对类的方

2021-12-31 09:25:25 7680

原创 netty系列之:从零到壹,搭建一个SOCKS代理服务器

文章目录简介使用SSH搭建SOCKS服务器使用netty搭建SOCKS服务器encoder和decoder建立连接ConnectHandler总结简介上一篇文章,我们讲到了netty对SOCKS消息提供了SocksMessage对象的封装,并且区分SOCKS4和SOCKS5,同时提供了连接和响应的各种状态。有了SOCKS消息的封装之后,我们还需要做些什么工作才能搭建一个SOCKS服务器呢?使用SSH搭建SOCKS服务器其实最简单的办法就是使用SSH工具来建立SOCKS代理服务器。先看下SSH建立

2021-12-29 09:37:40 8168

原创 dart系列之:dart优秀的秘诀-隔离机制

文章目录简介dart中的隔离机制生成一个IsolateIsolate之间的交互一个例子总结简介之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编程中,肯定会提到锁和并发机制,但是对于dart来说,好像从来没有听到多线程和并发的问题,这是为什么呢?今天,给大家讲解一下dart中的隔离机制,大家就明白了。dart中的隔离机制dart是一个单线程的语言,但是作为一个单线程的语言,dart却支持Future,Stream等异步特性。这一切都是隔离机制和事件循环带

2021-12-27 08:14:46 8511

原创 netty系列之:快来,手把手教你做一个简单的代理服务器

文章目录简介代理和反向代理netty实现代理的原理实战总结简介爱因斯坦说过:所有的伟大,都产生于简单的细节中。netty为我们提供了如此强大的eventloop、channel通过对这些简单东西的有效利用,可以得到非常强大的应用程序,比如今天要讲的代理。代理和反向代理相信只要是程序员应该都听过nginx服务器了,这个超级优秀nginx一个很重要的功能就是做反向代理。那么有小伙伴要问了,有反向代理肯定就有正向代理,那么他们两个有什么区别呢?先讲一下正向代理,举个例子,最近流量明星备受打击,虽然被打压

2021-12-24 08:16:19 9769 1

原创 dart系列之:安全看我,dart中的安全特性null safety

文章目录简介Non-nullable类型Nullable List Of Strings 和 List Of Nullable Strings!操作符late关键字总结简介在Dart 2.12中引入了null safety的新特性,也就是说dart程序中默认类型都是非空的,除非你显示告诉编译器,这个类型可以为空。看起来是一个小小的改动,但是这个小小的改动导致了很多Dart包的大版本升级,从而导致使用Dart2.12之前的版本跟使用dart2.12之后的版本完全就是两个不同的世界。真的这么奇妙吗?一起

2021-12-22 09:32:21 5926

原创 JetBrains又出神器啦,Fleet,体验飞一般的感觉

文章目录简介从eclipse到FleetFleet的特性JetBrains Space总结简介java开发的同学可能对于JetBrains这家公司并不陌生,因为JetBrains号称拥有世界上最好的JAVA开发工具IDEA。确实IDEA非常好用,它满足了一个java开发者所有的梦想。当然JetBrains还提供了其他语言的开发神器,PyCharm,PhpStrom,WebStorm等等。只要跟开发工作有关的,都能在JetBrains的全家桶中找到。这么好用的神器自然是价格不菲,但是JetBrains

2021-12-21 09:37:10 10614 2

原创 dart系列之:如丝滑般柔顺,操作文件和目录

文章目录简介File读取整个文件以流的形式读取文件随机访问文件的写入处理异常总结简介文件操作是IO中非常常见的一种操作,那么对应dart语言来说,操作文件是不是很简单呢?实际上dart提供了两种读取文件的方式,一种是一次性全部读取,一种是将文件读取为流。一次性读取的缺点是需要将文件内容一次性全部载入到内存中,如果遇到文件比较大的情况,就会比较尴尬。所以还需要流式读取文件的方式。一起来看看dart中这两种文件的读取方式吧。File事实上dart中有很多地方都有File这个类,这里我们要讲解的File

2021-12-20 10:24:48 5185

原创 dart系列之:实时通讯,在浏览器中使用WebSockets

文章目录简介dart:html中的WebSockets创建一个WebSocketWebSocket的状态发送消息处理WebSocket事件总结简介web客户端和服务器端通信有两种方式,一种是使用HTTP请求,从服务器端请求数据。这种请求的缺点就是只能客户端拉取服务器端的数据,只能进行轮询。另外一种方式是使用WebSocket,在客户端和服务器端之间建立通道,这样服务器就可以直接向客户端推送消息,避免了客户端频繁的拉取服务器端的数据,造成服务器端的压力。dart:html包中就包含了WebSocket

2021-12-17 14:01:42 6168 1

原创 netty系列之:一个价值上亿的网站速度优化方案

文章目录简介本文的目标支持多个图片服务http2处理器处理页面和图像价值上亿的速度优化方案总结简介其实软件界最赚钱的不是写代码的,写代码的只能叫马龙,高级点的叫做程序员,都是苦力活。那么有没有高大上的职业呢?这个必须有,他们的名字就叫做咨询师。咨询师就是去帮企业做方案、做架构、做优化的,有时候一个简单的代码改动、一个架构的调整都可以让软件或者流程更加高效的运行,从而为企业节省上亿的开支。今天除了要给大家介绍一下如何在netty中同时支持http和https协议之外,还给大家介绍一个价值上亿的网站数据

2021-12-16 13:53:55 5246

原创 dart系列之:浏览器中的舞者,用dart发送HTTP请求

文章目录简介发送GET请求发送post请求更加通用的操作总结简介dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们在浏览器端另一个常用的操作就是使用XMLHttpRequest去做异步HTTP资源的请求,也就是AJAX请求。dart同样提供了类似JS中XMLHttpRequest的封装,其对应的类叫做HttpRequest,一起来看看在dart中怎么使用HttpRequest吧。发送GET请求虽然现代的web APP被各种

2021-12-15 08:11:24 5075

原创 netty系列之:性能为王,创建多路复用http2服务器

文章目录简介多路复用的基础多路复用在server端的使用配置TLS处理器配置clear text upgrade总结简介在之前的文章中,我们提到了在netty的客户端通过使用Http2FrameCodec和Http2MultiplexHandler可以支持多路复用,也就是说在一个连接的channel基础上创建多个子channel,通过子channel来处理不同的stream,从而达到多路复用的目的。既然客户端可以做到多路复用,同样的服务器端也可以,今天给大家介绍一下如何在netty的服务器端打造一个支

2021-12-14 10:18:51 4613

原创 网络协议之:基于UDP的高速数据传输协议UDT

文章目录简介UDT协议UDT的缺点总结简介简单就是美。在网络协议的世界中,TCP和UDP是建立在IP协议基础上的两个非常通用的协议。我们现在经常使用的HTTP协议就是建立在TCP协议的基础上的。相当于TCP的稳定性来说,UDP因为其数据传输的不可靠性,所以用在某些特定的场合,如直播、广播消息、视频音频流处理等不太需要校验数据完整性的场合。UDP相对TCP协议而言,其特点就是简洁,它删除了在TCP协议中为了保证消息准确性的各种限制性特征。简洁带来的好处就是快!今天给大家讲解一下,基于UDP的高速数据传输

2021-12-13 15:24:37 6537

原创 网络协议之:还在用HTTP代理?过时了,快试试SOCKS5

文章目录简介为什么要使用SOCKSSOCKS5SOCKS5的使用总结简介存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重视了。没有认证的网络就好像是生活在摄像头下的人生,毫无隐私可言,实在是太可怕了。今天给大家深入讲解一下SOCKS5和它的应用。为什么要使用SOCKSSOCKS是一种代理服务协议,为什么会要有代理服务协议呢?因为在现代网络中,很多情况下,由于网络或者防火墙的原因,我们很难直接去访问对方的网络,所以需要一种代理机

2021-12-10 11:25:23 3435

原创 netty系列之:手持framecodec神器,创建多路复用http2客户端

文章目录简介配置SslContext客户端的handler使用Http2FrameCodecHttp2MultiplexHandler和Http2MultiplexCodec使用子channel发送消息总结简介在之前的文章中,我们实现了支持http2的netty服务器,并且使用支持http2的浏览器成功的进行访问。虽然浏览器非常通用,但是有时候我们也需要使用特定的netty客户端去和服务器进行通信。今天我们来探讨一下netty客户端对http2的支持。配置SslContext虽然http2并不强制

2021-12-09 10:23:36 3496 1

原创 dart系列之:HTML的专属领域,除了javascript之外,dart也可以

文章目录简介DOM操作CSS操作处理事件总结简介虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的。除了andorid和ios之外,web就是最常见和通用的平台了,dart也提供了对HTML的原生支持,这个支持就是dart:html包。dart:html提供了对DOM对象的各种有用的操作和对HTML5 API的支持。这样我们可以直接使用dart来操作HTML。除了DOM之外,dart:html还可以对css进行操作,使用dart:html也非常简

2021-12-07 09:34:57 5500 1

原创 dart系列之:还在为编码解码而烦恼吗?用dart试试

文章目录简介为JSON编码和解码UTF-8编码和解码总结简介在我们日常使用的数据格式中json应该是最为通用的一个。很多时候,我们需要把一个对象转换成为JSON的格式,也可以说需要把对象编码为JSON。虽然在dart中所有的字符都是以UTF-16来存储的,但是更加通用的格式应该是UTF-8,同样的dart也提供了对UTF-8的编码支持。所有的这一切,都包含在dart:convert包中。要想使用convet包,简单的引入即可:import 'dart:convert';为JSON编码和解码

2021-12-06 10:09:41 2573 1

原创 dart系列之:数学什么的就是小意思,看我dart如何玩转它

文章目录简介dart:math包的构成mathRandom总结简介dart也可以进行数学运算,dart为数学爱好者专门创建了一个dart:math包来处理数学方面的各种操作。dart:math包提供了正弦,余弦,最大值,最小值和随机数等操作。一起来看看dart:math包都能做什么吧。dart:math包的构成如果你去查看dart:math的源代码,你会发现,dart:math包其实很简单,它里面只有4个文件。分别是:math.dart,random.dart,point.dart和rectan

2021-12-03 09:26:36 4388

原创 dart系列之:时间你慢点走,我要在dart中抓住你

文章目录简介DateTimeDuration总结简介时间和日期是我们经常会在程序中使用到的对象。但是对时间和日期的处理因为有不同时区的原因,所以一直以来都不是很好用。就像在java中,为时间和日期修改和新增了多次API,那么作为新生的语言dart而言,会有什么不一样的地方吗?dart中关于日期和时间的两个非常重要的类是DateTime和Duration.其中DateTime表示的是时间,而Duration表示的是时间差。DateTime先看一下DateTime的使用。DateTime表示的是一

2021-12-02 12:20:14 3942

Stream和Lambda表达式最佳实践

Stream和Lambda表达式是Java 8引入的两个重要特性,它们极大地简化了集合处理和函数式编程的复杂性。以下是关于Stream和Lambda表达式的最佳实践介绍: Lambda表达式 Lambda表达式允许我们以简洁的方式表示匿名函数。最佳实践包括: 保持简洁:Lambda表达式应尽可能简洁,避免冗长的代码块。 避免副作用:Lambda表达式通常不应修改外部状态或具有副作用,以保持其纯函数性质。 类型推断:尽量利用Java的类型推断功能,避免显式指定Lambda表达式的参数类型。 Stream API Stream API提供了一种高效且声明式的方式来处理集合数据。最佳实践包括: 链式操作:利用Stream的链式操作,可以流畅地组合多个转换和过滤操作。 并行处理:对于大型数据集,考虑使用并行流(parallel streams)来加速处理。但要注意,并非所有操作都适合并行化,需要根据具体情况进行选择。 中间操作与终止操作:明确区分Stream的中间操作和终止操作。中间操作会返回一个新的Stream,而终止操作会生成一个结果或副作用。

2024-04-24

JAVA IO-NIO 详解

在Java中,IO(输入/输出)是程序与外部世界进行交互的重要桥梁,而NIO(非阻塞IO)则是Java IO的一个重要扩展,它提供了更为高效、灵活的数据处理方式。 传统的Java IO是阻塞式的,即当程序进行读写操作时,如果数据没有准备好,线程会阻塞等待,这在高并发场景下会导致线程资源的浪费。而NIO则是非阻塞式的,它允许线程在等待数据准备好的同时,继续执行其他任务,从而提高了系统的整体吞吐量和响应速度。 NIO的核心组件包括Channel(通道)、Buffer(缓冲区)和Selector(选择器)。Channel是数据传输的通道,它替代了传统IO中的流;Buffer是数据的容器,它可以在Channel和程序之间进行数据的读写操作;Selector则用于监控多个Channel的状态,实现单线程处理多个Channel的目的。

2024-04-24

JAVA高质量并发详解,多线程并发深入讲解

是一本深入探讨Java并发编程的经典之作。本书全面解析了Java并发编程的核心概念、原理和实践,帮助读者深入理解多线程并发编程的精髓,提升编程能力和系统性能。 书中首先介绍了并发编程的基础知识,包括线程的基本概念、线程的生命周期、线程安全等问题。接着,深入讲解了Java并发编程的核心API,如synchronized关键字、Lock接口、Condition接口、Semaphore等,帮助读者掌握Java并发编程的基本工具和方法。 除了基础知识和API的讲解,本书还重点介绍了Java并发编程的高级特性和设计模式。例如,通过讲解线程池、Future模式、Fork/Join框架等,帮助读者解决复杂的并发问题,提高系统的响应能力和吞吐量。此外,书中还深入剖析了并发编程中的常见问题,如死锁、活锁、饥饿等,并提供了相应的解决方案和最佳实践。 本书注重理论与实践相结合,通过大量的示例代码和案例分析,帮助读者更好地理解和掌握并发编程的技巧和精髓。同时,书中还提供了丰富的练习和思考题,帮助读者巩固所学知识,提升编程实践能力。

2024-04-24

java-io-all-in-one.pdf

和小师妹一起,从零开始,掌握java中最核心的IO和NIO技巧吧!

2021-08-05

java-collection-all-in-one.pdf

详细讲解java中集合的分类和使用,并介绍了java集合中一些不为人知的小秘密。还详细介绍了java并发包中的集合特性。

2020-10-26

JDK14GC-cheatsheet.pdf

JDK14 GC调优秘籍 JDK14 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK14中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-13的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK13GC-cheatsheet.pdf

JDK13 GC调优秘籍 JDK13 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK13中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-12的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK12GC-cheatsheet.pdf

JDK12 GC调优秘籍 JDK12 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK12中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-11的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK11GC-cheatsheet.pdf

JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。同时还提供了新的HTTP API,支持响应性stream。 当然上面的都不是重点,重点的是JDK11是一个LTS版本,是继JDK8之后的又一个LTS版本,也可能是大家日后使用的最多的一个版本。 所以JDK11的JVM参数吸收了JDK9,JDK10的新特性和改动,并在他们的基础上进行了微调。 同样在文章最后,我也将JDK11的GC调优秘籍做成了一张PDF,欢迎大家下载。

2020-07-22

JDK10GC-cheatsheet.pdf

为了方便大家的参考,特意将JDK10中的GC参数总结成了一张PDF,这个PDF在之前的JDK9的基础上进行了增减和修正,欢迎大家下载。

2020-07-16

JDK9GC-cheatsheet.pdf

JDK9 GC调优秘籍 JDK9 GC cheatsheet, 一张PDF包含所有的调优参数! 今天我们讲讲JDK9中的JVM GC调优参数,JDK9中JVM的参数总共有2142个,其中正式的参数有659个。好像比JDK8中的参数要少一点。 为了方便大家的参考,特意将JDK9中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-06-26

JDK8GC-cheatsheet.pdf

JVM的参数有很多很多,根据我的统计JDK8中JVM的参数总共有1853个,正式的参数也有680个。 这么多参数带给我们的是对JVM的细粒度的控制,但是并不是所有的参数都需要我们自己去调节的,我们需要关注的是一些最常用的,对性能影响比较大的GC参数即可。 为了更好的让大家理解JDK8中 GC的调优的秘籍,这里特意制作了一张PDF,遇到问题就看两眼,不美吗?

2020-06-22

Spring5.1中文参考指南.pdf

最新版Spring5.1参考指南中文版,带全部标签,可能是全网最好的PDF了,欢迎大家下载! 除了Spring之前的功能介绍之外,增加了Spring5最新的webflux技术,让你的程序更快更强更好

2019-11-30

Android编程入门教程

Android编程入门教程. android 入门教程, 非常适合新手。赶紧来下载吧。

2015-06-25

Android编程权威指南

Android编程权威指南 想要精通安卓的快来看看啊, 绝对是不可多得的一本好书。

2015-06-25

Android应用开发详解.pdf

Android应用开发详解, 非常牛逼的书。 必看

2015-04-03

概观C++程序设计语言.chm

概观C++程序设计语言.chm

2007-04-21

Inside C++ Object Model.chm

Inside C++ Object Model.chm<br/>Inside C++ Object Model.chm

2007-04-20

高质量C、C++编程指南.pdf

高质量C、C++编程指南.pdf

2007-04-20

spring live 中文版

spring live 中文版<br/>好东西

2007-04-20

Hibernate原理与配置快速入门.pdf

Hibernate原理与配置快速入门.pdf

2007-04-20

j2ee 1.4 API

j2ee 1.4 API

2007-04-19

UML ROSE

Uml 的好帮手

2007-04-19

CSS 2.0

CSS 2.0 页面设计必备

2007-04-19

struts in action

struts in action

2007-04-13

struts-api

struts-api

2007-04-13

空空如也

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

TA关注的人

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