9 铁锚

尚未进行身份认证

系统架构师,Java性能调优专家。热爱程序开发和设计; 积极应对各种情境和挑战; 喜欢钻研新技术, 闲暇时喜欢翻译和分析英文文档/技术博客。

等级
TA的排名 521

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

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

2019-07-13 16:02:15

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

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

2019-03-12 19:21:31

Web开发团队常备工具

Web系统的性能问题会影响企业的各项业务。漏洞太多,运营团队就只能疲于奔命。缺少吸引力,产品团队则会受困于用户留存率。改不完的BUG,开发团队就没时间进行新功能开发。业务人员的效率跟着提升不上去。技术经理不能清楚证明团队所做的努力是否合理。类似的情形常常出现。有什么方法可以避免这些风险呢?工欲善其事必先利其器,我们需要引入一些趁手的工具,各个阶段都要具备。规划工具大部分...

2019-03-04 19:34:38

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

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

2019-02-22 17:51:31

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

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

2018-12-21 12:00:41

WebRTC基础实践 - 10. 总结

我们创建了一个视频聊天的APP,同时支持传输文件以及其他数据!内容回顾在本教程中,我们学习了以下内容:获取webcam摄像头的视频内容。通过RTCPeerConnection传输视频。通过RTCPeerConnection传输数据。配置信令服务来交换消息。集成对等连接和信令服务。拍照并用数据通道传递给对方。下一步体验WebRTC官方示例程序AppRTC:ht...

2018-12-16 21:30:59

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

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

2018-12-16 21:29:12

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

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

2018-12-14 11:01:45

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

本节内容在本节课程中,我们将学习以下内容:通过npm安装package.json文件中指定的项目依赖运行Node.js服务器,通过node-static提供静态文件服务。用Socket.IO创建消息传递服务创建聊天室以及发送聊天消息。本节的完整版代码位于step-04文件夹中。基本概念要创建并保持WebRTC通话,客户端之间需要互相交换元数据信息,包括:...

2018-11-28 16:43:55

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

本节内容WebRTC客户端(peers)之间如何传递数据。本节的完整版代码位于step-03文件夹中。修改HTML代码在本示例中,使用WebRTC的数据通道(datachannel),将一个textarea的内容,传递给同页面中的另一个textarea。这个demo本身没什么实用价值,主要目的是展示怎样使用WebRTC来传输数据和视频。接着上一节的代码,将ind...

2018-11-20 19:16:38

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

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

2018-11-13 19:36:51

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

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

2018-11-12 19:50:09

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

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

2018-11-09 15:40:36

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

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

2018-10-15 18:08:57

WebRTC基础实践 - 1. WebRTC简介

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

2018-10-14 11:17:27

OOM终结者参数调优

内存溢出(OutofMemory,OOM),是指计算机的所有可用内存(包括交换空间,swapspace),都被使用满了。这种情况下,默认配置会导致系统报警,并停止正常运行.当然,将/proc/sys/vm/panic_on_oom参数设置为0,则告诉系统内核,如果系统发生内存溢出,就可以调用oom_killer(OOM终结者)功能,来杀掉最胖的那头进程(rog...

2018-05-27 11:56:54

配置catalina.out的日志格式

启动Tomcat时,catalina.out中输出的日志格式可能不太理想。看看某些版本默认的格式:四月24,20186:49:32下午org.apache.catalina.startup.Catalinastart信息:Serverstartupin9772ms有点别扭,想要调整成下面的格式:24-Apr-201818:52:16.13...

2018-05-07 19:27:33

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

今天在tweet上看到一幅有趣的漫画:http://theoatmeal.com/comics/design_hell。说的是上级领导怎样坑死一个专业的设计师。漫画很有趣,而且在实际工作中也经常发生这种悲剧。到底是谁的锅?普通员工和专业人士的不同,在于普通员工需要别人指挥着干活,而专业人士能够为BOSS提供各种决策建议。招聘普通员工的关注点主要是执行能力,要听指挥,还能出活...

2018-03-07 20:08:25

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

本文简要介绍如何通过Spring框架的支持,通过QQ邮箱来发送邮件,包括简单文本,附件、以及内联图片、HTML以及HTTP图片。spring-context-support很早就内置支持邮件发送。当然,官方文档明确指出,需要依赖JavaMail这个库。在这个年代,我们很少自己搭建smtp服务器来发送邮件,一般都是使用邮件提供商的服务。例如QQ邮箱,企业邮箱...

2018-03-01 15:28:20

Java-根据IP统计访问次数

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

2018-02-09 15:08:39

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!