自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻译 7. GC 调优(实战篇) - GC参考手册

JVM上运行的程序多种多样, 启动参数也有上百个, 其中有很多会影响到 GC, 所以调优GC性能的方法也有很多种。 还是那句话, 没有真正的银弹, 能满足所有的性能调优指标。 我们能做的只是介绍一些常见的/和不常见的示例, 让你在碰到类似问题时知道是怎么回事。深入理解GC的工作原理, 熟练应用各...

2017-03-13 19:12:17

阅读数 21276

评论数 4

原创 删除MySQL表的SQL语句-DROP-TABLE-简介

辨析: 在SQL中, DROP 用于删除表结构等信息, 属于数据格式定义 DDL的范畴; 而 DELETE 用于删除数据,属于数据内容操作 DML 的范畴。 官方给出的 DROP 关键字删除表结构的语法如下: DROP [TEMPORARY] TABLE [IF EXISTS] tbl_...

2019-12-10 21:11:15

阅读数 137

评论数 0

原创 解析一个Java对象占用多少内存空间

说明: alignment, 对齐, 比如8字节的数据类型long, 在内存中的起始地址必须是8的整数倍。 padding, 补齐; 在对象所占据空间的末尾,如果有空白, 需要使用padding来补齐, 因为下一个对象的起始位置必须是4/8字节(32bit/64bit)的整数倍(这又是一种对齐)。...

2019-07-13 16:02:15

阅读数 1054

评论数 0

翻译 Java进阶知识 - 多线程与线程间通信

CountdownLatch, CyclicBarrier 分别适合什么场景呢? 大部分情况下, 子线程只需要关心自身执行的任务. 但在某些复杂的情况下, 需要使用多个线程来协同完成某个任务, 这就涉及到线程间通信(inter-thread communication)的问题了. 主要涉及的内容...

2019-03-12 19:21:31

阅读数 594

评论数 0

翻译 Web开发团队常备工具

Web系统的性能问题会影响企业的各项业务。 漏洞太多,运营团队就只能疲于奔命。 缺少吸引力, 产品团队则会受困于用户留存率。 改不完的BUG, 开发团队就没时间进行新功能开发。 业务人员的效率跟着提升不上去。 技术经理不能清楚证明团队所做的努力是否合理。 类似的情形常常出现。 有什么方法可以避...

2019-03-04 19:34:38

阅读数 423

评论数 1

原创 升级https - 解决系统被网络运营商植入广告等问题

情景回顾 福建泉州的客户反馈, 说系统使用不正常, 经常提示 “网络错误”, 或者点击某些按钮时会进行页面跳转。 让客户试过各种“万能”手段: 比如清缓存, 换浏览器, 换电脑等等,问题依然会复现。 通过QQ远程桌面连接客户的电脑, 使用浏览器的Network控制台, 看到监控信息中莫名出现的加载...

2019-02-22 17:51:31

阅读数 744

评论数 0

翻译 CSS高级技巧:自动省略左侧文本

难以置信! 浏览器和CSS规范居然支持自动省略左侧的文本了。 通过 text-overflow: ellipsis, 搭配固定的 width 属性, 以及overflow: hidden 样式, 就可以实现这样的功能; 能用CSS实现,就不需要编写复杂的 JavaScript 代码来计算字符串宽度...

2018-12-21 12:00:41

阅读数 905

评论数 0

翻译 WebRTC基础实践 - 10. 总结

我们创建了一个视频聊天的APP, 同时支持传输文件以及其他数据! 内容回顾 在本教程中, 我们学习了以下内容: 获取webcam摄像头的视频内容。 通过 RTCPeerConnection 传输视频。 通过 RTCPeerConnection 传输数据。 配置信令服务来交换消息。 集成对等连接和...

2018-12-16 21:30:59

阅读数 473

评论数 0

翻译 WebRTC基础实践 - 9. 拍照并传给对方

本节内容 在本节课程中, 我们将学习以下内容: 拍照并通过canvas元素获取图像数据。 给对面发送图片。 本节的完整版代码位于 step-06 文件夹中。 工作原理 前面的小节中, 我们使用 RTCDataChannel 来传递文本消息。 本节课程, 将学习如何发送文件: 下面的示例发送的是...

2018-12-16 21:29:12

阅读数 913

评论数 0

翻译 WebRTC基础实践 - 8. 集成对等通信和信令服务

本节内容 在本节课程中, 我们将学习以下内容: 在Node.js平台, 通过Socket.IO来启动信令服务。 用信令服务交换WebRTC客户端之间的元数据(metadata)。 本节的完整版代码位于 step-05 文件夹中。 更新HTML和JavaScript代码 更新 index.htm...

2018-12-14 11:01:45

阅读数 631

评论数 0

翻译 WebRTC基础实践 - 7. 配置信令服务

本节内容 在本节课程中, 我们将学习以下内容: 通过 npm 安装 package.json 文件中指定的项目依赖 运行Node.js服务器, 通过 node-static 提供静态文件服务。 用Socket.IO创建消息传递服务 创建聊天室以及发送聊天消息。 本节的完整版代码位于 step-...

2018-11-28 16:43:55

阅读数 1133

评论数 0

翻译 WebRTC基础实践 - 6. 通过RTCDataChannel传输数据

本节内容 WebRTC客户端(peers)之间如何传递数据。 本节的完整版代码位于 step-03 文件夹中。 修改HTML代码 在本示例中, 使用WebRTC的数据通道(data channel), 将一个 textarea 的内容, 传递给同页面中的另一个textarea。这个demo本身...

2018-11-20 19:16:38

阅读数 2671

评论数 0

翻译 WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频

本节内容 在本节课程中, 我们将学习以下内容: 使用WebRTC兼容库: adapter.js, 来抹平各浏览器间的差异。 通过 RTCPeerConnection API 传输流媒体视频。 控制 media 的捕捉和传输。 本节的完整版代码位于 step-02 文件夹中。 RTCPeerCo...

2018-11-13 19:36:51

阅读数 5097

评论数 0

翻译 WebRTC基础实践 - 4. 获取摄像头的视频流

本节内容 在本节课程中, 我们将学习以下知识点: 从摄像头(webcam)获取视频流(video stream) 控制视频内容的回显 通过CSS和SVG处理视频内容。 本节的完整版代码位于 step-01 文件夹中。 HTML代码 在 work 目录下的 index.html 文件中, 增加 ...

2018-11-12 19:50:09

阅读数 3828

评论数 1

翻译 WebRTC基础实践 - 3. 获取示例代码

下载示例代码 如果安装有git工具, 直接用下面的脚本, 从GitHub克隆代码即可: git clone https://github.com/googlecodelabs/webrtc-web.git 或者, 点击链接下载 zip 压缩包: https://github.com/googl...

2018-11-09 15:40:36

阅读数 1028

评论数 0

翻译 WebRTC基础实践 - 2. WebRTC课程概述

本课程将逐步开发一个 WebRTC 应用, 通过网络摄像头来拍照、录像、并将这些信息传递给另一方. 在此过程中, 我们将学习如何使用WebRTC的核心API, 还会通过 Node.js 来搭建一个消息服务器。 课程内容 从摄像头获取视频 通过 RTCPeerConnection 传输视频流 通过...

2018-10-15 18:08:57

阅读数 870

评论数 0

翻译 WebRTC基础实践 - 1. WebRTC简介

WebRTC 是一个开源的实时通信项目, 主要目标是对Web/原生App平台上的语音、视频、以及数据传输等实时通讯提供支持。 WebRTC 主要包括以下 JavaScript API(点击链接可查看相关demo)。 getUserMedia(): 获取用户设备的音频和视频. MediaRecor...

2018-10-14 11:17:27

阅读数 1997

评论数 1

原创 OOM终结者参数调优

内存溢出(Out of Memory,OOM), 是指计算机的所有可用内存(包括交换空间, swap space), 都被使用满了。 这种情况下, 默认配置会导致系统报警, 并停止正常运行. 当然, 将 /proc/sys/vm/panic_on_oom 参数设置为 0, 则告诉系统内核, 如果系...

2018-05-27 11:56:54

阅读数 2382

评论数 0

原创 配置catalina.out的日志格式

启动 Tomcat 时, catalina.out 中输出的日志格式可能不太理想。 看看某些版本默认的格式: 四月 24, 2018 6:49:32 下午 org.apache.catalina.startup.Catalina start 信息: Server startup in 97...

2018-05-07 19:27:33

阅读数 4802

评论数 0

翻译 没有立场的专业人士最容易背锅

今天在tweet上看到一幅有趣的漫画: http://theoatmeal.com/comics/design_hell。说的是上级领导怎样坑死一个专业的设计师。 漫画很有趣, 而且在实际工作中也经常发生这种悲剧。 到底是谁的锅 ? 普通员工和专业人士的不同, 在于普通员工需要别人指挥着干活,...

2018-03-07 20:08:25

阅读数 1533

评论数 2

原创 spring发送Email-验证码-图片-附件-解决乱码

本文简要介绍如何通过Spring框架的支持,通过QQ邮箱来发送邮件,包括简单文本,附件、以及内联图片、HTML以及HTTP图片。 spring-context-support很早就内置支持邮件发送。 当然, 官方文档明确指出, 需要依赖 JavaMail 这个库。 在这个年代, 我们很少自...

2018-03-01 15:28:20

阅读数 4725

评论数 0

原创 Java-根据IP统计访问次数

JSP根据IP统计访问次数 本文简要介绍如何实现一个IP访问计数器。 为了简单, 使用 JSP 来实现, 但读者需要明白, Java代码可以在到处运行。 示例Demo页面: http://www.cncounter.com/test/counter.jsp 返回JSON: http://w...

2018-02-09 15:08:39

阅读数 3697

评论数 1

翻译 5.3 Java Web应用目录结构

web模块, 也就是 Servlet 规范中的web应用。在Java EE架构中, web模块(web module) 是最小的web部署单元。 其中包含web组件以及静态资源; 如图片之类的静态资源也被称为 web资源。 除web组件和web资源以外, web模块中还可以包含其他文件, 例如...

2018-01-21 21:48:11

阅读数 1341

评论数 0

翻译 Java正则系列: (2)量词

翻译说明 greedy: 贪婪型, 最大匹配方式; reluctant: 懒惰型, 最小匹配方式; possessive: 独占型, 全部匹配方式; 也翻译为[支配型]; 这3种量词, 是修饰量词的量词, 可以理解为正则格式重复的匹配类型。 量词 ...

2018-01-11 00:08:27

阅读数 834

评论数 0

翻译 Java正则系列: (1)入门教程

本文简要介绍Java的正则表达式及其实现方式,并通过实例讲解正则表达式的具体用法。 1. 正则表达式 1.1. 简介 正则表达式(Regular Expression), 简称 正则, 也翻译为 正规式, 用来表示文本搜索模式。英文缩写是 regex(reg-ex). 搜索模式...

2018-01-03 02:04:04

阅读数 1960

评论数 2

原创 Java技巧: 根据网址/域名查询DNS/IP地址

需求: 给定一个URL地址, 例如: http://www.cncounter.com/tools/shorturl.php, 解析对应的IP地址和端口号。 说明: 本文不涉及底层的 DNS 协议, 直接使用Java平台提供的API进行操作。 DNS也就是 Domain Name Se...

2017-12-05 16:48:58

阅读数 3442

评论数 4

原创 SpringMVC懒加载导致的问题一则

因为加载速度大多较快,所以多数应用都没配置该参数。 但对于调用量较小的纯API来说可能就会有一些影响。 `load-on-startup` 配置一般是大于0的数值,表示启动顺序。 如果相同,则表明这两个Servlet启动顺序随意。

2017-12-05 15:08:45

阅读数 2831

评论数 1

翻译 Redis安全注意事项

本文简要介绍 Redis 安全相关的话题, 包括: Redis访问控制机制、Redis源码安全性, 外部输入可能触发的恶意攻击, 以及其他相关问题。

2017-11-30 20:30:54

阅读数 2255

评论数 0

原创 MongoDB中对数组元素进行查询

查询 MongoDB中根据数组子元素进行匹配,有两种方式。 使用 “[数组名].[子元素字段名]” 的方式进行匹配。 使用 “[数组名]” $elemMatch { [子元素字段名] }的方式。 不同点在于所匹配的主体不同。 “[数组名].[子元素字段名]” 的方式匹配的主体为 “[数...

2017-10-23 16:28:01

阅读数 15242

评论数 2

翻译 OutOfMemoryError系列(8): Kill process or sacrifice child

一言不合就杀进程。。。 我们知道, 操作系统(operating system)构建在进程(process)的基础上. 进程由内核作业(kernel jobs)进行调度和维护, 其中有一个内核作业称为 “Out of memory killer(OOM终结者)”, 与本节所讲的 OutOfMemo...

2017-10-09 00:54:37

阅读数 7276

评论数 0

翻译 OutOfMemoryError系列(7): Requested array size exceeds VM limit

Java平台限制了数组的最大长度。各个版本的具体限制可能稍有不同, 但范围都在 `1 ~ 21亿` 之间。 如果程序抛出 `java.lang.OutOfMemoryError: Requested array size exceeds VM limit` 错误, 就说明想要创建的数组长度超过限制。

2017-10-07 16:23:03

阅读数 9192

评论数 0

翻译 OutOfMemoryError系列(6): Out of swap space?

错误信息 java.lang.OutOfMemoryError: Out of swap space? 表明, 交换空间(swap space,虚拟内存) 不足,是由于物理内存和交换空间都不足所以导致内存分配失败。

2017-09-29 19:15:56

阅读数 2071

评论数 0

翻译 OutOfMemoryError系列(5): Unable to create new native thread

更多的情况, 触发创建 native 线程时的OutOfMemoryError, 表明编程存在BUG. 比如, 程序创建了成千上万的线程, 很可能就是某些地方出大问题了 —— 没有几个程序可以 Hold 住上万个线程的。

2017-09-25 19:27:27

阅读数 8667

评论数 1

翻译 OutOfMemoryError系列(4): Metaspace

java.lang.OutOfMemoryError: Metaspace 错误所表达的信息是: 元数据区(Metaspace) 已被用满

2017-09-22 11:46:46

阅读数 10600

评论数 9

翻译 OutOfMemoryError系列(3): Permgen space

本文通过实例介绍JDK7及之前的OutOfMemoryError: Permgen space JVM限制了Java程序的最大内存使用量, 可以通过启动参数来配置。 各内存池的最大值, 由JVM启动参数 -Xmx 和 -XX:MaxPermSize 指定. 如果没有明确指定, 则根据操作系统平台和...

2017-09-15 17:48:45

阅读数 5352

评论数 2

翻译 HTML页面基本结构

本文简要介绍HTML中的各种元素及其相关属性,读者需要有一个概念: HTML页面都是由基本元素及属性组成的。

2017-09-11 09:52:21

阅读数 5169

评论数 1

翻译 5. 应用服务器与微服务 - JavaEE基础系列

本文是JavaEE基础系列的第五节。 Microservices(微服务) 是当今世界最火爆的软件架构。相比早期的软件工程, 微服务已经变成了一种新的 面向服务的架构(SOA) 。 本质上, 微服务是将系统拆分成多个不同的组件, 互相之间协调组织成为一个整体。

2017-09-07 18:46:06

阅读数 1779

评论数 0

翻译 OutOfMemoryError系列(2): GC overhead limit exceeded

Java运行时环境内置了 垃圾收集(GC) 模块. 上一代的很多编程语言中并没有自动内存回收机制, 需要程序员手工编写代码来进行内存分配和释放, 以重复利用堆内存。 在Java程序中, 只需要关心内存分配就行。如果某块内存不再使用, 垃圾收集(Garbage Collection) 模块会自动执行...

2017-08-25 19:16:09

阅读数 131058

评论数 5

原创 Word-docx文件图片信息格式分析

本文为笔记、仅作参考。 前文为: 用FreeMarker生成Word文档。现在新需求来了,导出的Word文档中、需要包含图片。大致的处理流程为: 解析导出信息、将 <img ... src="xxx" ...> 抽取出来。 替换为 [img[xxxIdInt]]; ...

2017-08-22 16:20:38

阅读数 2342

评论数 0

翻译 配置Redis作为缓存

将 Redis 用作缓存时, 如果内存空间用满, 就会自动驱逐老的数据。 默认情况下 memcached 就是这种方式, 大部分开发者都比较熟悉。 LRU是Redis唯一支持的回收算法. 本文详细介绍用于限制最大内存使用量的 maxmemory 指令, 并深入讲解 Redis 所使用的近似LRU...

2017-08-15 19:00:52

阅读数 5264

评论数 0

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