自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

haoranhaoshi的博客

了解更多:http://www.haoranhaoshi.top/。生活的最佳状态是冷冷清清的风风火火。

  • 博客(32)
  • 资源 (34)
  • 收藏
  • 关注

原创 Spring Cloud系列之负载均衡:Ribbon

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency>eureka的依赖中就有Ribbon,所以引入了eureka就引入了ribbon。@Bean@LoadBalancedpubli...

2020-10-31 16:05:03 223

原创 IDEA查找yml中的配置对应的类

yml文件中可以有很多配置,写配置时如果想通过源代码来查看有哪些配置,具体的含义、逻辑是什么,必须找到对应的类,比如知道eureka.client和eureka.instance,怎么知道对应的所有详细配置,并看一下配置具体的代码呢,直接在源代码中查找@ConfigurationProperties("eureka.client")和@ConfigurationProperties("eureka.instance")。IDEA查找jar包中的内容:https://blog.csdn.net/haora

2020-10-31 10:25:23 3038

原创 IDEA查找jar包中的内容

IDEA想查找jar包中的类,Ctrl+N即可,打开类后,Ctrl+F12可以查看类的字段、方法、内部类。但如果想查找某段代码,如某个注解、某段方法代码,必须jar包中有源码,或者打开jar包的任意一个类,点击右上的提示:Download Sources,然后再次搜索,搜索快捷键为Ctrl+Shift+R。...

2020-10-31 10:07:49 7659

原创 Spring Cloud系列之网关:Zuul

pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.

2020-10-30 15:00:49 133

原创 高可用、高并发

高可用指标:可用性指标 计算方式 不可用时间(分钟) 99.99% 0.1%×365×24×60 525.6 100% 0.01%×365×24×60 52.56 100% 0.001%×365×24×60 5.256 负载均衡可用:单点故障(single point of failure,SPOF):单个节点故障,导致整个系统故障。解决单点故障:集群。集群负载均衡(https://www.cnblogs.com/zhangxinge

2020-10-30 14:29:23 201

原创 一次讲清:maven中的scope、依赖传递、依赖冲突解决、type、classifier、exclusions、optional

scope解释的原文:compileThis is the default scope, used if none is specified. Compile dependencies are available in all classpaths of a project. Furthermore, those dependencies are propagated to dependent projects.providedThis is much like compile, but...

2020-10-29 14:38:56 957

原创 FastJson耗时

FastJson代码质量不是很高,容错率不如Jackson和Gson;但速度的确比Jackson和Gson快。但调试代码时发现FastJson耗时严重,研究之后发现FastJson第一次执行时,因为初始化的原因的确很慢,一个简单JsonString转JsonObject都需100ms,但之后再次执行时速度就很快了。而且测试表明1.2.9版本的初始化比1.2.4快30%,建议及时更新FastJson版本。给个例子体会: long startTime = System.currentTi

2020-10-28 16:14:28 3335

原创 可靠协议、不可靠协议、有状态协议、无状态协议、TCP、HTTP、Cookie、Session、JWT

TCP面向连接,有确认、重传、数据排序、流量控制、拥塞控制的机制。TCP是可靠协议。HTTP基于TCP。HTTP是可靠协议。IP是不可靠协议。无状态协议:不记忆传输内容,不会被下一次传输感知。HTTP,UDP是无状态协议。TCP,FTP是有状态协议。Cookie限制4KB,无法存储过多信息。Cookie可以存储SessionId,服务端维护Session库存储Session信息,使Http避免无状态的影响。...

2020-10-27 15:11:57 2372

转载 企业服务总线(EnterpriseServiceBus,ESB)

企业服务总线(EnterpriseServiceBus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能。ESB支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。简而言之,ESB提供了连接企业内部及跨企业间新的和现有软件应用程序的功能,以一组丰富的功能启用管理和监控应用程序之间的交互。在SOA分层模型中,ESB用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件将其映射成服务

2020-10-27 10:26:52 1631

原创 Java Semaphore(信号量)实例

Semaphore(信号量)初始化时设置许可证数量,还可以设置是否使用公平锁,默认使用非公平锁。acquire()申请许可证,没有许可证可用就等待。release()释放许可证。release(int permits)释放permits个许可证。下面以占车位为例展示Semaphore:public class SemaphoreDemo { public static void main(String[] args) { // 10个司机,5个车位 Se.

2020-10-26 16:50:14 395

原创 Java CountDownLatch(闭锁)实例

CountDownLatch初始化时设置等待数量,countDown()可以减1,await()在等待数量大于0时会使线程等待。下面以跑步比赛为例展示CountDownLatch:public class CountDownLatchDemo { /** * 运动员数量 */ private static int athleteCount = 10; /** * 所有运动员准备起跑,同一把发令枪 */ private s.

2020-10-26 15:56:26 214

原创 Spring Cloud系列之注册中心:Eureka

Eureka Server:import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/** * @Author: hao * @Description: Eurek.

2020-10-26 10:57:04 160

原创 SpringBoot、Spring Cloud、Vue开发简单记录

50 day01: Springboot;连接池: HikariCP;mybatis通用Mapper:tk.mybatis yaml 拦截器 日志 lombok51 day02: 服务演变 RPC;REST:Apache.HttpClient、OKHttp、JDK.HttpUrlConnection、Spring.RESTTemplate 注册中心:Eureka 负载均衡:Robbin52 day03: Hystix(解决...

2020-10-26 10:28:45 188

原创 Java 阻塞队列(BlockingQueue),消费者、生产者、消息队列 实践三

阻塞队列(BlockingQueue)是一个支持阻塞操作的队列。在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列能存储元素。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法(Queue接口中没有一直阻塞和超时退出对应的方法):方法\处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 a

2020-10-26 09:16:03 414

原创 Java Condition,消费者、生产者、消息队列 实践二

消费者:public class Consumer implements Runnable{ private Queue<String> messageQueue; private Lock lock; private Condition condition; public Consumer(Queue<String> messageQueue, Lock lock, Condition condition) { this.me

2020-10-23 15:23:44 166

原创 Java内存模型总结

Java内存模型(Java Memory Model,JMM)涉及JVM主内存(Main Memory)和线程本地内存(Thread Local Memory)或者称线程工作内存。JMM用来屏蔽Java程序在不同的硬件和操作系统上访问内存的差异,定义Java程序中变量的访问规则。JVM的堆内存在主内存中。方法区在持久代实践时在主内存中;在元空间实践时不在主内存中,在直接内存或者称堆外内存中,被操作系统直接管理。JVM的栈或者称虚拟机栈、本地方法栈、程序计数器是线程私有的,对应内存在线程工作内存中。

2020-10-23 14:21:21 160

原创 死锁、活锁、饥饿、无锁

死锁、活锁、饥饿、无锁针对线程或进程。以下以线程为例。死锁:线程相互等待锁释放。举例:(1)A、B锁是独占锁。甲线程已获取A锁,想获取B锁后释放A锁;乙线程已获取B锁,想获取A锁后释放B锁。二者等待对方释放自己想获取的锁,自己却不释放对方想获取的锁,就会造成死锁,甲乙线程皆会一直阻塞。预防:(1)有序资源分配算法:规定锁获取顺序,必须获取A锁后才能去获取B锁。(2)银行家算法:独占锁不被占有时,才能去尝试获取。活锁:线程获取锁后不执行后续逻辑就释放锁。举例:(1)甲线程获取锁后总会执

2020-10-22 09:41:07 163

转载 in、pt、px、pc、dpi、ppi和in、pt、px、pc换算

m点=Math.floor((m/72)*96)像素m英寸=72m磅m皮卡=12m点in:inch,英寸mm:millimeter,毫米pt:point,点px:pixel,像素pc:pica,皮卡dpi:dots per inch,每英寸网点数ppi:pixels per inch,每英寸像素数 中文字号 英文字号(磅) 毫米 像素 1英寸 72.

2020-10-21 10:51:22 2198 1

原创 InterruptedException、线程复位、sleep和wait对比

Object:wait()相当于wait(0),无超时时间。wait(long timeout),timeout单位毫秒。wait(long timeout, int nanos),timeout单位毫秒,nanos为增加的纳秒。Thread:sleep(long millis),timeout单位毫秒。sleep(long millis, int nanos),timeout单位毫秒,nanos为增加的纳秒。join(long millis)join(long millis, int n

2020-10-20 16:10:08 213

原创 可重入锁、公平锁、非公平锁、互斥锁/独占锁/排他锁、共享锁源码分析

可重入锁:获取锁后再次请求获取同一把锁,不再抢占锁,而是只增加获得锁的次数。synchronized、ReentrantLock是可重入锁。公平锁:按照线程抢占锁的顺序使线程获得锁。非公平锁:不按照线程抢占锁的顺序使线程获得锁。线程是否能抢占锁和线程抢占锁的顺序无关,随机抢占。ReentrantLock默认是非公平锁。 /** * Creates an instance of {@code ReentrantLock}. * This is equivalent

2020-10-20 14:22:01 617

原创 POJO、DO、DTO、AO、BO、VO、JB、DAO、EJB

POJO(Plain Old Java Object):纯洁老式的Java对象。只有私有变量和Getter、Setter方法,没有类继承或接口实现。 根据业务角度对应有: DO( Data Object):数据对象。如果对应表,必须和表结构完整对应。 DTO(Data Transfer Object):数据传输对象。 AO( Application Object):应用对象。 BO(Business Object) :业务对象。 VO(View Object)...

2020-10-19 14:30:44 603

原创 BIO、NIO、多路复用IO、AIO

BIO(Blocking IO):阻塞IO(有的资料称同步阻塞IO),面向Stream。NIO(Non-Blocking IO):非阻塞IO(有的资料称同步非阻塞IO),面向Channel。多路复用IO(Multiplexing IO):也称事件驱动IO(event driven IO)或者Reactor模式(反应器模式)。AIO(Asynchronous IO,也称NIO 2.0):异步IO(有的资料称异步非阻塞IO,也称Proactor模式(主动器模式)),面向Channel。有的资料称同步才

2020-10-19 11:25:54 261 2

原创 Unix、Linux、Windows、JDK中的文件描述符

文件描述符(File Descriptor,就是Unix、Linux代码中常看到的fd)是文件对应的索引值,是一个非负整数。新建、打开、读写文件都需要文件描述符指定对应的文件。每个进程对应一个文件描述符表,文件描述符从0开始,所以一个文件会有不同的文件描述符。...

2020-10-18 19:22:50 557

转载 分库、分表、垂直分表、垂直分库、水平分表、水平分库

分库:定义:拆分数据库,拆分表。优势:减小数据库的大小,减轻数据库的访问负载。拆分出的新库可迁移到其他机器,不竞争同一个机器的CPU、内存、网络IO、磁盘。分表:定义:拆分表。优势:减小表的大小,减轻表的访问负载。垂直分表:定义:表字段拆分到新表。举例:商品信息表根据热门字段(品牌、好评率、销量、产地、价格、图片等)和冷门字段(详细描述等)拆分为两张表(商品重点信息表和商品详细信息表)。优势:提升热门数据操作效率。原则:冷门字段拆分到新表;大字段拆分到新表;常用组合查询字段.

2020-10-16 14:05:10 225

原创 线程可见性、数据操作原子性、volatile、原子量、同步锁、可重入锁示例

import org.junit.jupiter.api.Test;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @Author: ZhangHao * @Description: ReentrantLock测试相关 * @Date: 2020/10/1.

2020-10-16 10:53:10 164

原创 Java ThreadLocal示例

/** * @Author: ZhangHao * @Description: ThreadLocal测试 * @Date: 2020/10/15 20:42 * @Version: 1.0 */public class ThreadLocalTest { /** * 非线程隔离式数据 */ int i = 0; @Test void test1(){ Thread[] threads = new Thread[5]; .

2020-10-15 21:10:29 131

原创 Unsafe的应用

AtomicIntegerByteBuffer

2020-10-15 15:57:01 102

原创 字符串相关的内存溢出-java.lang.OutOfMemoryError: Java heap space 

字符串相关的java.lang.OutOfMemoryError: Java heap space: jsonString.toJSONString(); stringBuilder.toString(); Buffer.buffer(string); string.getBytes(); System.out.println(string);

2020-10-14 10:16:03 731

原创 IO多路复用

IO多路复用:单线程或单进程监测多个文件描述符是否可以执行IO。IO多路复用之前的策略:一个文件描述符对应一个线程或进程。收到不同的IO请求,需切换对应的文件描述符对应的线程或进程。收到IO请求后单线程或单进程遍历多个文件描述符选择一个正确的。遍历耗时。有了IO多路复用,收到IO请求,直接...

2020-10-13 10:48:25 102

原创 用户态、内核态、内核

用户态:进程运行用户代码的状态。内核态:进程运行内核代码的状态。从用户态切换到内核态的三种方式:系统调用。 异常:进程运行在用户态时发生异常会触发切换。例如:缺页异常。 外设中断:外设完成用户的请求时向CPU发送中断信号。...

2020-10-13 10:48:05 316

原创 ERROR StatusLogger No Log4j 2 configuration file found.

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging..

2020-10-12 09:43:16 260

原创 Vert.x :Thread Thread[worker-pool-0,5,main] has been blocked for 129 ms, time limit is 0 ms

10月 12, 2020 9:29:51 上午 io.vertx.core.impl.BlockedThreadChecker警告: Thread Thread[worker-pool-0,5,main] has been blocked for 129 ms, time limit is 0 ms注意:创建线程池时时间单位默认纳秒。 /** * Like {@link #createSharedWorkerExecutor(String, int, long, TimeUnit)}..

2020-10-12 09:32:41 1394

bandilplszcb.zip(班迪录屏)

班迪录屏,时长不限,功能丰富,可录入声音。可参考:https://blog.csdn.net/haoranhaoshi/article/details/106943758

2020-06-24

ShpAnalysis.zip(包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe)

包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe。arcmap工具(2G)过大,ShapeExplorer能打开shp文件,但有时获取信息出差,Java方式解析shp文件提供了另一种解决方式,之间运行即可,但解析也有一定局限性。ShapeExplorer和提供的工程推荐共同使用,失败时推荐arcmap。

2020-06-18

Thoughtworks 技术雷达 2019.11版

本期主题 云:多即是少? 为取得竞争优势,云服务提供商会将新服务快速推向市场。在早期采用时,请小心瑕疵以及因此引起的摩擦。 保护软件供应链 在我们朝着治理即代码的方向发展过程中,现代交付流水线方式在保护着软件制品创建的方方面面。 打开机器学习的黑匣子 和机器学习(ML)的强大能力相对应的,是它的不可预测性。所以在选择模型时,可解释性以及能用于解释模型输出的工具,变得越来越重要。 软件开发是一项团队运动 创新的蓬勃发展,得益于将不同的专业人才放到协作和跨功能的“10倍团队”当中。

2019-12-31

VertxTcpSocket.zip

Java TCP实验:Vert.x服务端 + Socket客户端 Socket客户端可实现Vert.x TCP客户端没有的同步阻塞。 注意,不能放在executeBlocking中,会使服务端给客户端发送失败

2019-07-25

《Java多线程编程核心技术》高洪岩 著 全书工程代码

《Java多线程编程核心技术》高洪岩 著 全书的完整工程代码,eclipse工程

2019-07-16

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程,IDEA搭建

2019-07-16

dubbo-admin-2.5.10.war

最新版的dubbo-admin,2.5的最后一版,此版之后的dubbo里就没有dubbo-admin模块了。此war从GIthub的dubbo正式工程中下载并打包,亲测有效。访问http://localhost:8080/dubbo-admin-2.5.10/时,root用户名的密码为root,guest用户名的密码为guest,可以在dubbo-admin-2.5.10\WEB-INF\dubbo.properties里可修改。如果怕Tomcat的8080端口被干扰,可以在tomcat的conf\server.xml里将<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />的8080改了。

2019-07-10

zookeeper-3.4.14.zip

最新可用的zookeeper,解压即可,免安装,conf下的zoo.cfg已经将基础必须的内容配置好(包括快照文件和日志文件位置),直接运行zkServer和zkClient可测试。Windows使用cmd后缀的,Linux使用sh后缀的。如果以管理员身份运行,cmd命令行中jps可查看进程(前提是安装配置了JDK)。

2019-07-10

Java RPC和RMI代码实战

Java RPC和RMI代码实战,有关键注释,为最简案例。Maven搭建,JDK8编译。 RPC体验:依次运行RpcProvider和RpcConsumer类。 RMI体验:RMITest中依次运行testServer和testClient方法。

2019-07-02

log4j使用实战

log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470下半部分。 CONSOLE是appenderName,随便写,只要一致即可,换成A也行。 log4j推荐和slf4j一起用,关于log4j和slf4j, 参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470上半部分。 log4j.appender.File.File=${user.dir}/logs/hmiservice.log ${user.dir}可以得到当前程序目录,关于${}里面可以使用的内容, 参考:https://blog.csdn.net/haoranhaoshi/article/details/93532273 写绝对路径也可以,但不推荐:log4j.appender.A.File=E:/Program/log/logs/info.log DailyRollingFileAppender支持按每月、周、日、时、分创建日志文件。 当前日志放在log4j.appender.File.File=${user.dir}/logs/hmiservice.log对应的命名文件中, 过了时间将原日志文件命名为原文件名后加上log4j.appender.File.DatePattern='.'yyyy-MM-dd-HH对应格式的日期, 注意不能用:和_。 关于DailyRollingFileAppender的使用,参考:https://www.cnblogs.com/zengdingxin/p/5135008.html log4j.appender.File=MyDailyRollingFileAppender MyDailyRollingFileAppender是自定义的类,需写包括包名的全路径,如果就在src-main-java下,写类名就行。 此类可以使log4j.appender.File.maxBackupIndex=12有效,DailyRollingFileAppender本身不支持创建日志文件的上限, 即不会清理过期日志文件。 log4j.appender.File.layout.ConversionPattern=%d{yyy MMM dd HH:mm:ss,SSS} %p %m%n 更多输出控制格式,参考:https://blog.csdn.net/reserved_person/article/details/52849505上半部分 log4j.appender.File.layout=org.apache.log4j.HTMLLayout 网页形式的日志文件,参考:https://blog.csdn.net/jQuerys/article/details/49909931 日志研发的方向: 日志内容 日志格式 多长时间、多大日志生成一个文件 多长时间、多大日志生成一个文件夹 多长时间、多大日志删除一个文件 多长时间、多大日志删除一个文件夹 日志等级是否分开存储 不同服务的日志是否分开存储 存储方式:后台打印、文件、数据库、邮件等,参考:https://blog.csdn.net/reserved_person/article/details/52849505下半部分 推荐的依赖组合: <dependency> <groupId>apache-log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>log4j12</artifactId> <version>1.7.5</version> </dependency> 如果使用的是阿里的Maven仓库,最新的日志依赖可能没有,可以把这些依赖从官网下载后安装到本地。 本实战示例中在libs下有这些依赖。 执行以下命令,注意把Jar包路径改一下: mvn install:install-file -Dfile=C:\Users\hao\Desktop\log4j-1.2.17.jar -DgroupId=apache-log4j -DartifactId=log4j -Dversion=1.2.17 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-api-1.6.6.jar -DgroupId=slf4j -DartifactId=api -Dversion=1.6.6 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-log4j12-1.7.5.jar -DgroupId=slf4j -DartifactId=log4j12 -Dversion=1.7.5 -Dpackaging=jar

2019-06-25

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用)

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用) 参见:https://blog.csdn.net/haoranhaoshi/article/details/80979236

2019-05-19

ThoughtWorks技术雷达—2019年4月发布的最新版

ThoughtWorks的技术雷达中文版。2019年4月发布的最新版。从技术、工具、平台、语言&框架四个角度,讲述最新的互联网发展成果。结合当今互联网行业的发展态势推荐关注度。每年两次发布。建议每年阅读,跟踪前沿热点,扩大视野。你我都是ThoughtWorker。

2019-05-17

Maven简单使用

结合https://blog.csdn.net/haoranhaoshi/article/details/89841323,对Maven安装、原型、仓库、依赖管理、在IDEA中的使用有一个全面了解

2019-05-06

Vert.x的Http和TCP实战

Vert.x系列: Vert.x介绍:https://blog.csdn.net/haoranhaoshi/article/details/89279096 Vert.x实战一:Vert.x通过Http发布数据:https://blog.csdn.net/haoranhaoshi/article/details/89284847 Vert.x实战二:TCP通信:https://blog.csdn.net/haoranhaoshi/article/details/89296522 Vert.x实战三:TCP客户端之间以角色通过服务端转接通信:https://mp.csdn.net/postedit/89296606 Vert.x实战四:TCP客户端之间以角色和同一角色连接顺序通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296665 Vert.x实战五:TCP客户端之间以ID通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296754 Vert.x实战六:TCP客户端之间以功能名通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296841 Vert.x实战七:TCP设置超时断开:https://blog.csdn.net/haoranhaoshi/article/details/89296986 Vert.x的TCP服务端和客户端配置:https://blog.csdn.net/haoranhaoshi/article/details/89297022 --------------------- 作者:风铃峰顶 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/89296606 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-04-14

Mina框架实战(由浅入深,稳扎稳打)

Mina介绍:https://blog.csdn.net/haoranhaoshi/article/details/89102597 工程内容介绍(由浅入深,稳扎稳打): test1:建立Server和Client。有Client加入,Server广播给所有Client。 test2:在控制台中Server可以给所有Client发送数据,Client可以给Sever和其他Client发送数据。 test3:(1)特定角色的Client处理消息。 (2)特定角色的Client收到消息。 Client与Server建立Session后,Server存储Client的Role和Session映射(同一个角色可映射多个Session)。角色Role在MinaClientHandler中。修改Role,启动多个Client测试。Client在控制台中Role:Message的格式给对应Role的Client发送Message。 test4:(1)Client启动时如果没有Server,就先建立Server。在test3(2)基础上修改MinaClient的session = future.getSession();即可。 (2)如果建立Server的Client离开了,让另一个Client建立Server。 (3)Client给Server发送数据,如果失败,重新发送。 test5:一个Client有一个Server。Client和其他Client的Server建立Session。 test6:如果Client连接Server失败,就只建立Server,如果Server离开,第一个检测到的Client建立Server。 一个进程中包括Server和Client,进程A和B通信,Server负责接收另一个进程的消息,Client负责发送给另一个进程消息,无需Server独立启动,或者绑定在一个进程中,保证最后离线,或者绑定在一个进程中,进程离线后绑定在其他进程中。把Client中的OWN_SERVER_PORT和ANOTHER_SERVER_PORT调换后启动另一个进程,即可测试。 test7:解决相同角色,分工不同: (1)连接建立时传角色,同一个角色,多个Client,连接时间区分Client (2)连接建立时传角色和功能ID,功能ID配置到启动参数,发消息时消息头传角色和消息ID (3)细化角色。 (4)Client发送功能ID,根据功能ID、Client_ID映射文件得到Client_ID,Client_ID配置到启动参数。 (5)连接失去时,更新角色和Session的Map。 test3.type1对应test3(1) test3.type2对应test3(2) 待做: Server不能通过控制台广播到每一个Client,ioSession.write(scanner.next());之后的代码行,会等下一次控制台输入,Enter按下后执行。 test4(2)(3)、test6、test7 已经转去Vert.x了

2019-04-09

机器学习实战之决策树全面总结

1、tree.py:决策树代码 2、treePlotter.py:在matplot中生成树形图的代码 3、classifierStorage.txt:生成树的测试数据 4、lenses.txt:决策树预测隐形眼镜类型所用的样本,每行前四个为特征:['age', 'prescript', 'astigmatic', 'tearRate'],最后一个为分类。分类包括硬材质、软材质以及不适合佩戴隐形眼镜。 5、matplotlib产生的树形图: (1)测试的树形图 (2)隐形眼镜类型决策的树形图

2019-03-27

机器学习实战之kNN

1、使用 k-近邻算法改进约会网站的配对效果: (1)样本数据: datingTestSet.txt 示例(三个特征及对应的分类): 40920 8.326976 0.953952 largeDoses 3种特征:  每年获得的飞行常客里程数  玩视频游戏所耗时间百分比  每周消费的冰淇淋公升数 分类:  不喜欢的人  魅力一般的人  极具魅力的人 (2)datingTestSet2.txt已进行归一化数值、类型数字化 (3)matplotlib产生的散点图(kNN.py): 1:对应第2列(x轴),第3列数据(y轴),类型无色差 2:对应第2列(x轴),第3列数据(y轴),类型有色差 3:对应第1列(x轴),第2列数据(y轴,类型有色差 2、手写识别系统: (1)trainingDigits:手写体训练数据 (2)testDigits:手写体测试数据 3.kNN.py: 使用k-近邻算法改进约会网站的配对效果 手写识别系统

2019-03-17

Base64Util、FileUtil、GsonUtils、HttpUtil

Base64 工具类:Base64Util 文件读取工具类:FileUtil Json工具类:GsonUtils http 工具类:HttpUtil

2019-02-26

百度语音实战

系列文章: Java 语音记录(录音,存储为WAV文件):https://blog.csdn.net/haoranhaoshi/article/details/87888382 Java 语音识别(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888407 Java 语音合成并播放(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888430 Java 语音聊天机器人(百度语音API)(当前预置问答,可用图灵机器人框架扩展): https://blog.csdn.net/haoranhaoshi/article/details/87888469 (依赖前三篇博客代码) --------------------- 作者:浩然浩世 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/87888469 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-02-26

SpringBoot实战

SpringBoot入门实战,参考博客:https://blog.csdn.net/haoranhaoshi/article/details/87005611

2019-02-11

FTP的Java操作全面实战

FTP的连接、查询、上传、下载等全面操作Java代码,IDEA搭建。

2019-02-11

Socket实战

包含整个系列: Socket实战系列: Socket实战——UDP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601468 Socket实战——TCP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601522 Socket实战——查询数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601566 Socket实战——监听数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601584 Socket实战——聊天:https://blog.csdn.net/haoranhaoshi/article/details/86601771 Socket实战——文件上传:https://blog.csdn.net/haoranhaoshi/article/details/86601850

2019-01-22

JavaFX实例合集

JavaFX控件、动画实例合集,双击根目录下Jar包可体验效果,并可看到对应的代码。

2019-01-14

摄像、拍照、人脸识别、人脸库对比

系列文章: 一、JavaFX摄像:https://blog.csdn.net/haoranhaoshi/article/details/85880893 二、JavaFX拍照:https://blog.csdn.net/haoranhaoshi/article/details/85930981 三、百度人脸识别--人脸对比:https://blog.csdn.net/haoranhaoshi/article/details/85954440 四、人脸库对比:https://blog.csdn.net/haoranhaoshi/article/details/86302313

2019-01-11

人脸对比实战项目

人脸对比实战项目,IDEA搭建,可用IDEA直接打开,可参考我的博客: https://blog.csdn.net/haoranhaoshi/article/details/85954440

2019-01-10

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX)

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX),了解更多可查看:https://blog.csdn.net/haoranhaoshi/article/details/85880893

2019-01-05

提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

文本框Enter、列表框双击或者Enter、按钮点击皆可搜索,模糊搜索后可上下键选择列表框中某一项,提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

2019-01-01

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

2019-01-01

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

2019-01-01

Servlet及Ajax数据交互

Servlet及Ajax数据交互代码示例(服务端Java的Servlet,客户端Ajax)

2018-01-02

FileZilla_3.15.0.2_win64-setup

在本地管理云服务器或云虚拟主机网站文件

2018-01-02

中国慕课大学数据采集和管理网站-前后台-Java版

包括网站前台、后台、数据库。前台Html,后台Java,数据库MySQL。支持登录注册、课程刷新、课程列表、课程查询、知识点查询(精确到章节)、评论管理、用户管理、退出登录。框架都是目前主流框架:前台MUI、Bootstrap、VUE、JQGrid、Jquery-UI;后台SpringBoot、tk.Mybatis;爬取用的是HttpURLConnection和Jsoup,5大策略(内分小策略)支持全站所有风格的课程爬取。使用的工具是JDK、IDEA、Mysql、Navicat。需远程协助,请安装远程连接工具向日葵后,私信博主。

2021-07-19

Java全系列个人知识笔记

JVM、集合、线程、设计模式、设计原则、Spring、Spring Boot、Spring Cloud(Netflix、Alibaba)(分布式注册中心、配置中心、负载均衡、网关、熔断器、Feign)、分布式事务、消息队列、任务调度、ES、Redis、Mybatsi、Dubbo

2021-07-11

weather-select.zip(Java获取详细的天气数据)

IDEA工程,Java获取详细的天气数据。需注册中国气象数据中心,免费试用7天。 可参考博主博文:https://blog.csdn.net/haoranhaoshi/article/details/106938218

2020-06-24

空空如也

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

TA关注的人

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