- ByteBuf
码农崛起
jdk自带ByteBuffer,看名字就知道作用差不多,区别是ByteBuffer读写都用一个指针,ByteBuf读写各有一个指针。都分为基于javaheap的headbuffer和基于DirectBuffer的buffer。DirectBuffer是不能被gc的,用完需要手动释放,虽然麻烦但是效率高,看吧,谁都有优点和缺点。加上一大堆看名字就知道干嘛的方法。ByteBuf是个抽象类,源代码里的文
- Netty中ByteBuf的使用
Jooou
开发语言niojvm
ByteBuf使用ByteBuf是一个抽象的、可随机和顺序访问的零个或多个字节的序列。它为一个或多个原始字节数组(byte[])和NIO缓冲区(ByteBuffer)提供了抽象视图。与JavaNIO的ByteBuffer相比,ByteBuf具有更多优势,如扩展性、透明零拷贝、自动容量扩展和更好的性能等。创建缓冲区推荐使用Unpooled类中的辅助方法来创建新的ByteBuf实例,而不是直接调用具体
- Kafka 如何优雅实现 Varint 和 ZigZag 编码
ByteUtils是Kafka中一个非常基础且核心的工具类。从包名common.utils就可以看出,它被广泛用于Kafka的各个模块中。它的主要职责是提供一套高效、底层的静态方法,用于在字节缓冲区(ByteBuffer)、字节数组(byte[])以及输入/输出流(InputStream/OutputStream)中读写Java的基本数据类型。ZigZag编解码过程的数学原理详解康托尔对角线映射。
- 直接内存溢出
p&f°
JVMjvm
一、什么是直接内存直接捏成是一块由操作系统直接管理的内存,也叫堆外内存可以使用Unsafe或ByteBuffer分配直接内存可用-XX:MaxDirectMemorySize控制,默认是0,表示不限制二、为什么使用直接内存直接内存vs堆内存io效率高推荐参考:Java直接内存与非直接内存性能测试-阿里云开发者社区三、什么场景使用直接内存1有很大的数据需要存储,它的生命周期又很长2适合频繁的IO操作
- 【Java源码阅读系列44】深度解读Java NIO ByteBuffer 源码
·云扬·
源码阅读系列之Javajavanio开发语言
JavaNIO(NewInput/Output)中的ByteBuffer是Buffer抽象类的具体子类,专门用于处理字节数据的高效读写。作为NIO的核心组件,ByteBuffer支持堆内存(Heap)和直接内存(Direct)两种存储方式,广泛应用于网络通信、文件IO等场景。本文将结合源码,深入解析ByteBuffer的核心机制、关键方法及设计模式的应用。一、ByteBuffer的核心特性与存储方
- Android GlSurfaceView渲染YUV图形
菠萝加点糖
androidOpenGL
OpenGLES2.0的代码,用来显示YUV格式的视频数据。这个示例将包括初始化OpenGL环境、加载Shader程序、绘制纹理等步骤importandroid.content.Context;importandroid.opengl.GLES20;importjava.nio.ByteBuffer;importjava.nio.ByteOrder;importjava.nio.FloatBuff
- kafka-生产者-(day-4)
不倒翁^1
kafka分布式
day-3BufferPool产生原因:ByteBuffer的创建和释放都是比较耗费资源的,为了实现内存的高效利用,产生了他。他会对特定大小的ByteBuffer进行管理BufferPool的字段free:是一个ArrayDeque队列,缓存指定大小的ByteBuffer对象ReentrantLock:因为这个BufferPool在多线程中使用,保证其安全waiters:这个队列中包含小空间导致阻
- Netty学习专栏(一):Java NIO编程与核心组件详解
快乐肚皮
Netty从入门到精通学习javanio
文章目录前言:为什么选择Netty?一、为什么需要先学NIO?二、NIO与BIO的核心差异2.1阻塞方式差异2.2编程模型差异2.3数据处理方式差异2.4代码结构对比三、NIO三大核心组件详解3.1Channel(通道)3.2ByteBuffer(缓冲区)3.3Selector(选择器)四、详细工作原理说明总结前言:为什么选择Netty?在分布式系统、微服务架构盛行的今天,高性能网络通信已成为系统
- 【NIO】通过FileChannel读取包含中文内容的文件
zhangzeyuaaa
JavaIO
直接上代码:packagecom.xx.nio;importjava.io.File;importjava.io.FileInputStream;importjava.nio.ByteBuffer;importjava.nio.CharBuffer;importjava.nio.channels.FileChannel;importjava.nio.charset.Charset;importja
- ByteBuffer 用法详解
小虾米 ~
java
ByteBuffer是JavaNIO中用于处理字节数据的关键类,提供了比传统byte[]更灵活和高效的字节操作方式。以下是ByteBuffer的主要用法:基础1.创建ByteBuffer分配新缓冲区//分配堆内存缓冲区(在JVM堆上)ByteBufferheapBuffer=ByteBuffer.allocate(1024);//分配直接内存缓冲区(在操作系统内存中)ByteBufferdirec
- GeoWave 1.2.0 版本解决GS发布矢量NIO ByteBuffer flip() java.lang.NoSuchMethodError 返回值错误问题
深夜奶爸
GeoMesa
在GeoWavev1.2.0版本中在发布矢量时,会报错,具体错误如下:2021-07-1915:19:48,519ERROR[geotools.rendering]-java.nio
- spark的堆外内存,是在jvm内还是操作系统内存内?
BenBen尔
sparkjvm大数据hadoop
在ApacheSpark中,堆外内存(Off-HeapMemory)是直接分配在操作系统的物理内存中,而非JVM堆内内存。以下是详细的解释:1.堆外内存的本质操作系统管理Spark的堆外内存直接通过操作系统分配(例如使用ByteBuffer.allocateDirect()或底层sun.misc.UnsafeAPI),完全独立于JVM堆内存。JVM不控制这部分内存:堆外内存的分配和释放由Spark
- JVM——15.定位 堆外内存 OOM
你想要怎样的未来
jvmjvm实战javajavajvmjvm.gcjava虚拟机
文章目录1.ByteBuffer堆外内存介绍2.ByteBuffer堆外内存申请、释放(源码分析)2.1堆外内存申请2.2堆外内存释放3.什么情况会发生堆外内存OOM4.模拟堆外内存OOM4.1模拟14.2模拟24.3模拟35.堆外内存OOM的定位及解决1.ByteBuffer堆外内存介绍在介绍OOM那篇文章中,对堆外内存进行了介绍,就直接把它复制过来;ByteBuffer和DirectByteB
- JVM直接内存详解
fengdongnan
jvm开发语言java
直接内存学习JVM内存结构部分时遇到的最后一部分,直接内存。虽然和其他堆栈等不是核心部分,但其类似缓存的特点和与GC相关的特性显得有点特殊,比较好奇这个高速缓存有没有实际开发使用场景,所以写这篇博客记录直接内存的相关知识点与使用场景。概念直接内存(DirectMemory)是操作系统内存和Java内存共用的一片内存区域读写性能高,常见于NIO操作作为数据缓存区可以通过ByteBuffer.allo
- Netty的ByteBuf为何如此高效?深入解析其设计与优势
星辰@Sea
系统架构JavaNettyJava
前言在高性能网络编程中,Netty因其卓越的性能和灵活性而被广泛应用。本文将深入探讨Netty的核心组件之一——ByteBuf的设计理念及其优势。部署准备一、JavaNIOBuffer的痛点在传统JavaNIO编程中,ByteBuffer存在以下缺陷:容量固定:初始化后无法自动扩容读写模式切换:需要调用flip()方法切换API复杂:position/limit等指针管理繁琐内存管理:直接内存需要
- NIO——网络编程
小码农0912
nettynioNIO——网络编程
文章目录非阻塞vs阻塞阻塞非阻塞多路复用Selector好处创建绑定Channel事件监听Channel事件select何时不阻塞处理accept事件事件发生后能否不处理处理read事件为何要iter.remove()cancel的作用不处理边界的问题⚠️处理消息的边界ByteBuffer大小分配处理write事件一次无法写完例子write为何要取消非阻塞vs阻塞阻塞阻塞模式下,相关方法都会导致线
- trinitycore MySQL模块_TrinityCore MMORPG服务器设计分析
Florelle
trinitycoreMySQL模块
本文是通过TrinityCore研究从而对MMORPG服务器设计分析。网络字节序ByteBuffer是字节(unsignedchar类型)处理,没有大小端处理。在网络通信应用程序上,这种是经常有的,网络是通过字节发送。消息包格式:包头+包类型+包体包头rc4加密登录认证是(srp6)安全远程密码第六版协议,包类型是占一字节。游戏中,包类型占1.5字节。1、封包重载&operator>按顺序把数据解
- flink 问题记录
Jhon_yh
flinkflinkhadoop大数据
文章目录1.Causedby:java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(IILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IILjava/lang/String;JZ)V原因java.util.concurrent.Ex
- IP地址工具,判断IP是否在指定范围内(支持ipv6)
夜夜夜空
ip
常用方法,判断一个ip是否在指定的ip范围内,范围可能包括起始ip范围或者掩码形式,无其它依赖,packagecom.yk.ip;importjava.math.BigInteger;importjava.net.InetAddress;importjava.net.UnknownHostException;importjava.nio.ByteBuffer;importjava.util.Arr
- 从零开始学习Netty - 学习笔记 - NIO基础 - ByteBuffer: 简介和基本操作
花开十里落叶无情
nettynettynioByteBuffer
NIO基础1.三大组件1.1.Channel&BufferChannel在JavaNIO(NewI/O)中,“Channel”(通道)是一个重要的概念,用于在非阻塞I/O操作中进行数据的传输。JavaNIO提供了一种更为灵活和高效的I/O处理方式,相比于传统的I/O,它具有更好的性能和可扩展性。常见的JavaNIO中的通道类型:FileChannel(文件通道):用于文件I/O操作的通道,可以在文
- netty踩坑--Unpooled.copiedBuffer(ByteBuffer buffer)
放眼江湖
技术nettysocket
netty踩坑Unpooled.copiedBuffer(ByteBufferbuffer)一、BUG评级二、概述三、Codereview四、BUG分析五、完整代码六、其他博主的详细介绍一、BUG评级BUG发现难度:★☆☆☆☆BUG无法复现概率:☆☆☆☆☆BUG偶然引入概率:★★☆☆☆BUG修复,烧脑程度:★★☆☆☆(随手优化了下代码就不行了T_T)二、概述起一个netty服务端,起一个硬件设备,
- Netty应用(二) 之 ByteBuffer
etcEriksen
Netty应用javaNettynetty后端
目录4.ByteBuffer详解4.1ByteBuffer为什么做成一个抽象类?4.2ByteBuffer是抽象类,他的主要实现类为4.3ByteBuffer的获取方式4.4核心结构(NIO的ByteBuffer底层是啥结构,以及读写模式都是根据这些核心结构进行维护的)4.4核心API4.5字符串操作4.6粘包与半包4.ByteBuffer详解4.1ByteBuffer为什么做成一个抽象类?回答这
- netty核心功能与线程模型
bijian-bijian
java开发语言
Netty初探NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大:例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。且Netty拥有高性能、吞吐量更高,延迟更低,减
- Java - I/O 多路复用(NIO)
qq_489366879
javajava并发java网络socket
NIONIO,有人解释为newI/O,有人解释为Non-blockI/O(我更倾向后者)。正是由于Java传统BIO的拙劣表现,才使得Java支持非阻塞I/O的呼声日渐高涨,最终,JDK1.4版本提供了新的NIO类库,Java终于也可以支持非阻塞I/O了。NIO主要的类和接口如下:进行异步I/O操作的缓冲区ByteBuffer等;进行异步I/O操作的管道Pipe;进行各种I/O操作(异步或者同步)
- JVM 性能调优- 五种内存溢出(5)
magic_kid_2010
jvm性能调优jvm调优java内存溢出
在介绍之前先简单介绍下直接内存(DirectMemory)和堆内存(HeapMemory):关系:直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(NativeMemory)提供支持。堆内存是Java虚拟机的一部分,用于存储Java对象。堆内存由Java虚拟机的堆内存分配器来分配和管理。区别:分配方式:直接内存
- 初识Netty
盼来一朵云
javanio
初识Netty概述为什么要使用Netty我们在使⽤NIO做同步⾮阻塞式的⽹络通信时,会发现NIO实现起来⾮常复杂。整个NIO的过程包含着繁琐的步骤,且需要同时掌握好各种API的使⽤,⽐如Selector、ServerSocketChannel、SocketChannel及ByteBuffer等。从之前的几篇关于NIO的文章可以看出,还没有实现业务,光写整个流程就⾮常繁琐。NIO除了实现起来复杂之外
- Java 负数表示?如何将10进制转换为16进制,2进制?使用ByteBuffer将double、short、int存入Byte[]
whaifree
java
目录Java的负数表示,第一位为负数,其他取反码10进制转换为16进制,2进制使用ByteBuffer将double、short、int存入Byte[]Java的负数表示,第一位为负数,其他取反码-7可以表示为10000111,最高位的1代表负号,它的反码是除去符号位各位取反为11111000对应的将各种进制转换为byte,起始底层二进制都不影响(byte)25500000001(byte)0x8
- Netty入门使用
我就是胖着玩玩的
后端
为什么会有Netty?NIO的类库和API繁杂,使用起来比较麻烦,需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大,例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。此外,Netty拥有高性能、吞吐量
- Flink消费kafka写入hive,报错GC
dgbcf
hive大数据hadoopflink
报错信息Flink消费kafka写入hive,报错GC。Taskmanager内存加到16GB。不起作用。java.lang.OutOfMemoryError:GCoverheadlimitexceededatjava.nio.HeapByteBuffer.(HeapByteBuffer.java:57)~[?:1.8.0_181]atjava.nio.ByteBuffer.allocate(By
- NIO_通道的数据传输与内存映射文件
Shaw_Young
packagecom.young.nio.day01;importorg.junit.Test;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.nio.ByteBuffer;importjava.nio.MappedByteBuffer;importj
- Java序列化进阶篇
g21121
java序列化
1.transient
类一旦实现了Serializable 接口即被声明为可序列化,然而某些情况下并不是所有的属性都需要序列化,想要人为的去阻止这些属性被序列化,就需要用到transient 关键字。
- escape()、encodeURI()、encodeURIComponent()区别详解
aigo
JavaScriptWeb
原文:http://blog.sina.com.cn/s/blog_4586764e0101khi0.html
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:,decodeURI,decodeURIComponent 。
下面简单介绍一下它们的区别
1 escape()函
- ArcgisEngine实现对地图的放大、缩小和平移
Cb123456
添加矢量数据对地图的放大、缩小和平移Engine
ArcgisEngine实现对地图的放大、缩小和平移:
个人觉得是平移,不过网上的都是漫游,通俗的说就是把一个地图对象从一边拉到另一边而已。就看人说话吧.
具体实现:
一、引入命名空间
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Controls;
二、代码实现.
- Java集合框架概述
天子之骄
Java集合框架概述
集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi
- 旗正4.0页面跳转传值问题
何必如此
javajsp
跳转和成功提示
a) 成功字段非空forward
成功字段非空forward,不会弹出成功字段,为jsp转发,页面能超链接传值,传输变量时需要拼接。接拼接方式list.jsp?test="+strweightUnit+"或list.jsp?test="+weightUnit+&qu
- 全网唯一:移动互联网服务器端开发课程
cocos2d-x小菜
web开发移动开发移动端开发移动互联程序员
移动互联网时代来了! App市场爆发式增长为Web开发程序员带来新一轮机遇,近两年新增创业者,几乎全部选择了移动互联网项目!传统互联网企业中超过98%的门户网站已经或者正在从单一的网站入口转向PC、手机、Pad、智能电视等多端全平台兼容体系。据统计,AppStore中超过85%的App项目都选择了PHP作为后端程
- Log4J通用配置|注意问题 笔记
7454103
DAOapachetomcatlog4jWeb
关于日志的等级 那些去 百度就知道了!
这几天 要搭个新框架 配置了 日志 记下来 !做个备忘!
#这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=INFO,allLog
# DAO层 log记录到dao.log 控制台 和 总日志文件
log4j.logger.DAO=INFO,dao,C
- SQLServer TCP/IP 连接失败问题 ---SQL Server Configuration Manager
darkranger
sqlcwindowsSQL ServerXP
当你安装完之后,连接数据库的时候可能会发现你的TCP/IP 没有启动..
发现需要启动客户端协议 : TCP/IP
需要打开 SQL Server Configuration Manager...
却发现无法打开 SQL Server Configuration Manager..??
解决方法: C:\WINDOWS\system32目录搜索framedyn.
- [置顶] 做有中国特色的程序员
aijuans
程序员
从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有些技术书读得可
- document.domain 跨域问题
avords
document
document.domain用来得到当前网页的域名。比如在地址栏里输入:javascript:alert(document.domain); //www.315ta.com我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:javascript:alert(document.domain = "315ta.com");
- 关于管理软件的一些思考
houxinyou
管理
工作好多看年了,一直在做管理软件,不知道是我最开始做的时候产生了一些惯性的思维,还是现在接触的管理软件水平有所下降.换过好多年公司,越来越感觉现在的管理软件做的越来越乱.
在我看来,管理软件不论是以前的结构化编程,还是现在的面向对象编程,不管是CS模式,还是BS模式.模块的划分是很重要的.当然,模块的划分有很多种方式.我只是以我自己的划分方式来说一下.
做为管理软件,就像现在讲究MVC这
- NoSQL数据库之Redis数据库管理(String类型和hash类型)
bijian1013
redis数据库NoSQL
一.Redis的数据类型
1.String类型及操作
String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
Set方法:设置key对应的值为string类型的value
- Tomcat 一些技巧
征客丶
javatomcatdos
以下操作都是在windows 环境下
一、Tomcat 启动时配置 JAVA_HOME
在 tomcat 安装目录,bin 文件夹下的 catalina.bat 或 setclasspath.bat 中添加
set JAVA_HOME=JAVA 安装目录
set JRE_HOME=JAVA 安装目录/jre
即可;
二、查看Tomcat 版本
在 tomcat 安装目
- 【Spark七十二】Spark的日志配置
bit1129
spark
在测试Spark Streaming时,大量的日志显示到控制台,影响了Spark Streaming程序代码的输出结果的查看(代码中通过println将输出打印到控制台上),可以通过修改Spark的日志配置的方式,不让Spark Streaming把它的日志显示在console
在Spark的conf目录下,把log4j.properties.template修改为log4j.p
- Haskell版冒泡排序
bookjovi
冒泡排序haskell
面试的时候问的比较多的算法题要么是binary search,要么是冒泡排序,真的不想用写C写冒泡排序了,贴上个Haskell版的,思维简单,代码简单,下次谁要是再要我用C写冒泡排序,直接上个haskell版的,让他自己去理解吧。
sort [] = []
sort [x] = [x]
sort (x:x1:xs)
| x>x1 = x1:so
- java 路径 配置文件读取
bro_feng
java
这几天做一个项目,关于路径做如下笔记,有需要供参考。
取工程内的文件,一般都要用相对路径,这个自然不用多说。
在src统计目录建配置文件目录res,在res中放入配置文件。
读取文件使用方式:
1. MyTest.class.getResourceAsStream("/res/xx.properties")
2. properties.load(MyTest.
- 读《研磨设计模式》-代码笔记-简单工厂模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 个人理解:简单工厂模式就是IOC;
* 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
*/
interface IProduct {
- SVN与JIRA的关联
chenyu19891124
SVN
SVN与JIRA的关联一直都没能装成功,今天凝聚心思花了一天时间整合好了。下面是自己整理的步骤:
一、搭建好SVN环境,尤其是要把SVN的服务注册成系统服务
二、装好JIRA,自己用是jira-4.3.4破解版
三、下载SVN与JIRA的插件并解压,然后拷贝插件包下lib包里的三个jar,放到Atlassian\JIRA 4.3.4\atlassian-jira\WEB-INF\lib下,再
- JWFDv0.96 最新设计思路
comsci
数据结构算法工作企业应用公告
随着工作流技术的发展,工作流产品的应用范围也不断的在扩展,开始进入了像金融行业(我已经看到国有四大商业银行的工作流产品招标公告了),实时生产控制和其它比较重要的工程领域,而
- vi 保存复制内容格式粘贴
daizj
vi粘贴复制保存原格式不变形
vi是linux中非常好用的文本编辑工具,功能强大无比,但对于复制带有缩进格式的内容时,粘贴的时候内容错位很严重,不会按照复制时的格式排版,vi能不能在粘贴时,按复制进的格式进行粘贴呢? 答案是肯定的,vi有一个很强大的命令可以实现此功能 。
在命令模式输入:set paste,则进入paste模式,这样再进行粘贴时
- shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法
dongwei_6688
shell脚本
出现原因:windows上写的脚本,直接拷贝到linux系统上运行由于格式不兼容导致
解决办法:
1. 比如文件名为myshell.sh,vim myshell.sh
2. 执行vim中的命令 : set ff?查看文件格式,如果显示fileformat=dos,证明文件格式有问题
3. 执行vim中的命令 :set fileformat=unix 将文件格式改过来就可以了,然后:w
- 高一上学期难记忆单词
dcj3sjt126com
wordenglish
honest 诚实的;正直的
argue 争论
classical 古典的
hammer 锤子
share 分享;共有
sorrow 悲哀;悲痛
adventure 冒险
error 错误;差错
closet 壁橱;储藏室
pronounce 发音;宣告
repeat 重做;重复
majority 大多数;大半
native 本国的,本地的,本国
- hibernate查询返回DTO对象,DTO封装了多个pojo对象的属性
frankco
POJOhibernate查询DTO
DTO-数据传输对象;pojo-最纯粹的java对象与数据库中的表一一对应。
简单讲:DTO起到业务数据的传递作用,pojo则与持久层数据库打交道。
有时候我们需要查询返回DTO对象,因为DTO
- Partition List
hcx2013
partition
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of th
- Spring MVC测试框架详解——客户端测试
jinnianshilongnian
上一篇《Spring MVC测试框架详解——服务端测试》已经介绍了服务端测试,接下来再看看如果测试Rest客户端,对于客户端测试以前经常使用的方法是启动一个内嵌的jetty/tomcat容器,然后发送真实的请求到相应的控制器;这种方式的缺点就是速度慢;自Spring 3.2开始提供了对RestTemplate的模拟服务器测试方式,也就是说使用RestTemplate测试时无须启动服务器,而是模拟一
- 关于推荐个人观点
liyonghui160com
推荐系统关于推荐个人观点
回想起来,我也做推荐了3年多了,最近公司做了调整招聘了很多算法工程师,以为需要多么高大上的算法才能搭建起来的,从实践中走过来,我只想说【不是这样的】
第一次接触推荐系统是在四年前入职的时候,那时候,机器学习和大数据都是没有的概念,什么大数据处理开源软件根本不存在,我们用多台计算机web程序记录用户行为,用.net的w
- 不间断旋转的动画
pangyulei
动画
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M
- 自定义annotation
sha1064616837
javaenumannotationreflect
对象有的属性在页面上可编辑,有的属性在页面只可读,以前都是我们在页面上写死的,时间一久有时候会混乱,此处通过自定义annotation在类属性中定义。越来越发现Java的Annotation真心很强大,可以帮我们省去很多代码,让代码看上去简洁。
下面这个例子 主要用到了
1.自定义annotation:@interface,以及几个配合着自定义注解使用的几个注解
2.简单的反射
3.枚举
- Spring 源码
up2pu
spring
1.Spring源代码
https://github.com/SpringSource/spring-framework/branches/3.2.x
注:兼容svn检出
2.运行脚本
import-into-eclipse.bat
注:需要设置JAVA_HOME为jdk 1.7
build.gradle
compileJava {
sourceCompatibilit
- 利用word分词来计算文本相似度
yangshangchuan
wordword分词文本相似度余弦相似度简单共有词
word分词提供了多种文本相似度计算方式:
方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度
实现类:org.apdplat.word.analysis.CosineTextSimilarity
用法如下:
String text1 = "我爱购物";
String text2 = "我爱读书";
String text3 =