博客园 - 洪雁君
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=28823
2014-06-16T05:33:35Z
洪雁君
https://www.cnblogs.com/hongyanee/
feed.cnblogs.com
https://www.cnblogs.com/hongyanee/p/3790730.html
iOS设备的尺寸和分辨率 - 洪雁君
iOS 设备按照尺寸分成Phone/Touch和Pad开发,各自分辨率如下:1 尺寸和分辨率iPhone/iPod Touch设备名分辨率屏幕类型iPhone 1/3G/3GS,iTouch 1/2/3320x480普通屏iPhone 4/4S,iTouch 4640x9603:2 Retina屏i...
2014-06-16T05:34:00Z
2014-06-16T05:34:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】iOS 设备按照尺寸分成Phone/Touch和Pad开发,各自分辨率如下:1 尺寸和分辨率iPhone/iPod Touch设备名分辨率屏幕类型iPhone 1/3G/3GS,iTouch 1/2/3320x480普通屏iPhone 4/4S,iTouch 4640x9603:2 Retina屏i... <a href="https://www.cnblogs.com/hongyanee/p/3790730.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3450290.html
理解NodeJS - 洪雁君
# 理解NodeJS近几年Node被炒的火热,总应该了解一下Node是什么?能解决什么问题?## Node是什么?Node是运行在服务器上的JavaScript解释器,可以理解为服务器上并且可以解释JavaScript的虚拟机。Node的优势在于异步运行,伸缩性好。此外,JavaScript可以在前后端运行,有利于统一代码格式。## 为什么用Node?Node官方称,“可以创建快速地、可伸缩的网络应用”。与Java和PHP等服务端语言不同的是,Node使用的是事件驱动,非阻塞的IO模型能够让Node高效运行,尤其适用于对数据敏感的实时应用,比如微博、微信等。**事件驱动**事件驱动编程模型,是
2013-11-29T12:45:00Z
2013-11-29T12:45:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】# 理解NodeJS近几年Node被炒的火热,总应该了解一下Node是什么?能解决什么问题?## Node是什么?Node是运行在服务器上的JavaScript解释器,可以理解为服务器上并且可以解释JavaScript的虚拟机。Node的优势在于异步运行,伸缩性好。此外,JavaScript可以在前后端运行,有利于统一代码格式。## 为什么用Node?Node官方称,“可以创建快速地、可伸缩的网络应用”。与Java和PHP等服务端语言不同的是,Node使用的是事件驱动,非阻塞的IO模型能够让Node高效运行,尤其适用于对数据敏感的实时应用,比如微博、微信等。**事件驱动**事件驱动编程模型,是 <a href="https://www.cnblogs.com/hongyanee/p/3450290.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3445370.html
Linux后台运行程序与后台任务管理 - 洪雁君
# Linux后台运行程序与后台任务管理在Linux中任何命令或者脚本都可以在后台运行,本文介绍一下如何让一个脚本在后台运行以及如何管理后台任务。## 0. 管理后台程序刚开始用Linux的时候,总会觉得终端开多少都不够用,那是因为每个作业都会占据一个终端。其实Linux提供了很方便的后台程序管理方法。**0. 挂起**当一个作业运行时间很长时,可以通过Ctrl+z把该作业挂起。这其实就是给终端发送了一个hangup信号。可以看到:```[1]+ Stopped ./command.sh```这就意味着该作业已经别挂起了,作业任务号是1.**1. 后台运行**输入命令```bg 1```,可以
2013-11-27T04:34:00Z
2013-11-27T04:34:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】# Linux后台运行程序与后台任务管理在Linux中任何命令或者脚本都可以在后台运行,本文介绍一下如何让一个脚本在后台运行以及如何管理后台任务。## 0. 管理后台程序刚开始用Linux的时候,总会觉得终端开多少都不够用,那是因为每个作业都会占据一个终端。其实Linux提供了很方便的后台程序管理方法。**0. 挂起**当一个作业运行时间很长时,可以通过Ctrl+z把该作业挂起。这其实就是给终端发送了一个hangup信号。可以看到:```[1]+ Stopped ./command.sh```这就意味着该作业已经别挂起了,作业任务号是1.**1. 后台运行**输入命令```bg 1```,可以 <a href="https://www.cnblogs.com/hongyanee/p/3445370.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3445068.html
Shell命令中重定向与管道的概念 - 洪雁君
# Shell命令中重定向与管道的概念在Linux系统管理中,Shell命令经常会使用重定向来定义命令的输入和输出。笔者在实现后台服务运行时,发现重定向的应用非常重要,所以总结了Shell中重定向的概念与应用。## 0. 基本概念准备### 0.0 Linux命令执行过程![Shell命令执行过程](http://images.cnblogs.com/cnblogs_com/hongyanee/536427/o_shell_proc.jpg)对于任何一个Shell命令,都如上图的执行过程。首先从文件(Linux中,设备也是文件,一切都是文件)中读取标准输入;然后执行命令;如果执行成功则将标准输
2013-11-27T02:27:00Z
2013-11-27T02:27:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】# Shell命令中重定向与管道的概念在Linux系统管理中,Shell命令经常会使用重定向来定义命令的输入和输出。笔者在实现后台服务运行时,发现重定向的应用非常重要,所以总结了Shell中重定向的概念与应用。## 0. 基本概念准备### 0.0 Linux命令执行过程![Shell命令执行过程](http://images.cnblogs.com/cnblogs_com/hongyanee/536427/o_shell_proc.jpg)对于任何一个Shell命令,都如上图的执行过程。首先从文件(Linux中,设备也是文件,一切都是文件)中读取标准输入;然后执行命令;如果执行成功则将标准输 <a href="https://www.cnblogs.com/hongyanee/p/3445068.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3443598.html
Ubuntu设置开机启动程序 - 洪雁君
有时需要将一些程序作为开机启动服务来启动,这里介绍在Ubuntu如果设置开机启动程序。Ubuntu在启动时会根据/etc/rc{X}.d目录的脚本顺序执行,X是优先级,越小越先执行;然后会执行/etc/rc.local脚本。一般服务可以放在/etc/rc.local中执行,只要注意相关联服务的启动顺序就可以了。关于/etc/init.d//etc/init.d/目录包含Linux系统各种服务的启动和停止脚本。系统服务的启动优先级即便是都在/etc/init.d/目录中,系统服务启动的先后顺序也是不同的。Ubuntu启动服务共有7个优先级,将/etc/init.d/目录中的服务链接到7个文件夹中
2013-11-26T08:58:00Z
2013-11-26T08:58:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】有时需要将一些程序作为开机启动服务来启动,这里介绍在Ubuntu如果设置开机启动程序。Ubuntu在启动时会根据/etc/rc{X}.d目录的脚本顺序执行,X是优先级,越小越先执行;然后会执行/etc/rc.local脚本。一般服务可以放在/etc/rc.local中执行,只要注意相关联服务的启动顺序就可以了。关于/etc/init.d//etc/init.d/目录包含Linux系统各种服务的启动和停止脚本。系统服务的启动优先级即便是都在/etc/init.d/目录中,系统服务启动的先后顺序也是不同的。Ubuntu启动服务共有7个优先级,将/etc/init.d/目录中的服务链接到7个文件夹中 <a href="https://www.cnblogs.com/hongyanee/p/3443598.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3443582.html
Ubuntu通过apt-get安装Oracle JDK - 洪雁君
虽然Java应用广泛,当然也存在不同的JDK版本。Ubuntu系统默认配置的JDK版本是OpenJDK,如果想要安装Oracle的JDK需要更新Ubuntu的资源库。一种简单的安装方式:sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java7-installer1. 第一句是下载新的资源库2. 第二句更新资源库3. 安装oracle jdk 7Ubuntu社区提供了各种Java版本的安装指南:https://help.ubuntu.com/community/
2013-11-26T08:32:00Z
2013-11-26T08:32:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】虽然Java应用广泛,当然也存在不同的JDK版本。Ubuntu系统默认配置的JDK版本是OpenJDK,如果想要安装Oracle的JDK需要更新Ubuntu的资源库。一种简单的安装方式:sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java7-installer1. 第一句是下载新的资源库2. 第二句更新资源库3. 安装oracle jdk 7Ubuntu社区提供了各种Java版本的安装指南:https://help.ubuntu.com/community/ <a href="https://www.cnblogs.com/hongyanee/p/3443582.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3436414.html
读给新手程序员一封信 - 洪雁君
0. 选择一门好的编程语言。我现在做的是一个HTML5 App的IDE,未来常用的语言是JavaScript。所以我选择JavaScript,另外我需要用NodeJS做一些工作。 然而JavaScript的语言规则过于松散,我还需要学习一个语法规则相对规范的python。1. 选择一个好的编辑器Sublimetext插件:Gits:可以轻松集成 GitHubSFTP:直接编辑 FTP 或 SFTP 服务器上的文件ConvertToUTF8:ST2只支持utf8编码,该插件可以显示与编辑 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的文件Clipboard H
2013-11-21T13:39:00Z
2013-11-21T13:39:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】0. 选择一门好的编程语言。我现在做的是一个HTML5 App的IDE,未来常用的语言是JavaScript。所以我选择JavaScript,另外我需要用NodeJS做一些工作。 然而JavaScript的语言规则过于松散,我还需要学习一个语法规则相对规范的python。1. 选择一个好的编辑器Sublimetext插件:Gits:可以轻松集成 GitHubSFTP:直接编辑 FTP 或 SFTP 服务器上的文件ConvertToUTF8:ST2只支持utf8编码,该插件可以显示与编辑 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的文件Clipboard H <a href="https://www.cnblogs.com/hongyanee/p/3436414.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3379858.html
云计算面试题集锦 - 洪雁君
1. 一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。回答:首先使用包含500个url的文件创建一个hash_set。然后遍历50M的url记录,如果url在hash_set中,则输出此url并从hash_set中删除这个url。所有输出的url就是两个记录里相同的url。2. 海量日志数据,提取出某日访问百度次数最多的那个IP。回答:如果日志文件足够的大,大到不能完全加载到内存中的话。那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。对于每个小文件,可以
2013-10-20T23:23:00Z
2013-10-20T23:23:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】1. 一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。回答:首先使用包含500个url的文件创建一个hash_set。然后遍历50M的url记录,如果url在hash_set中,则输出此url并从hash_set中删除这个url。所有输出的url就是两个记录里相同的url。2. 海量日志数据,提取出某日访问百度次数最多的那个IP。回答:如果日志文件足够的大,大到不能完全加载到内存中的话。那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。对于每个小文件,可以 <a href="https://www.cnblogs.com/hongyanee/p/3379858.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3379825.html
程序员笔试概念题集锦 - 洪雁君
1. Linux进程间的通信方式?两个进程是如何来共享内存的?两个进程如何通过信号量通信?(1)Linux下进程间通信的方式有: 管道(有名/无名) 、消息、信号、信号量、共享内存、邮箱、socket。(2)Linux下共享内存是进程间通信的方式之一,共享内存允许两个或多个进程访问同一块内存,比如像 malloc函数 向不同的进程返回执行同一块物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其他拥有这块物理内存指针的进程也会察觉到这个更改。在进程间的通信方式中,共享内存是通信效率最高的,访问共享内存区域和访问进程独有的内存区域一样快,并不需要通过系统调用或者其他通过内核的过程来完成
2013-10-20T17:22:00Z
2013-10-20T17:22:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】1. Linux进程间的通信方式?两个进程是如何来共享内存的?两个进程如何通过信号量通信?(1)Linux下进程间通信的方式有: 管道(有名/无名) 、消息、信号、信号量、共享内存、邮箱、socket。(2)Linux下共享内存是进程间通信的方式之一,共享内存允许两个或多个进程访问同一块内存,比如像 malloc函数 向不同的进程返回执行同一块物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其他拥有这块物理内存指针的进程也会察觉到这个更改。在进程间的通信方式中,共享内存是通信效率最高的,访问共享内存区域和访问进程独有的内存区域一样快,并不需要通过系统调用或者其他通过内核的过程来完成 <a href="https://www.cnblogs.com/hongyanee/p/3379825.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3310087.html
FFserver服务器实现WebM格式视频直播 - 洪雁君
WebM格式视频流播放可以通过HTML5在浏览器中实现,目前Chrome和FireFox都已经支持了该视频格式。WebM解码器在VP8引擎中实现,并且针对互联网特点做了很多优化。优点是在HTML5中实现,真正的实现了平台无关性,所有采用VP8引擎的浏览器都可以直接播放WebM格式的视频。当然很多浏览器并非VP8引擎的,而且没有哪个知名的流服务器支持WebM。这也是WebM的窘境。现在介绍一下大名鼎鼎的如何用FFmpeg作为WebM的流服务器。0. FFserverFFserver是一个流服务器,可以帮你将音视频内容转换成流在互联网上传输。它能够收集多个输入流,并转码->重铸->广播
2013-09-09T11:53:00Z
2013-09-09T11:53:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】WebM格式视频流播放可以通过HTML5在浏览器中实现,目前Chrome和FireFox都已经支持了该视频格式。WebM解码器在VP8引擎中实现,并且针对互联网特点做了很多优化。优点是在HTML5中实现,真正的实现了平台无关性,所有采用VP8引擎的浏览器都可以直接播放WebM格式的视频。当然很多浏览器并非VP8引擎的,而且没有哪个知名的流服务器支持WebM。这也是WebM的窘境。现在介绍一下大名鼎鼎的如何用FFmpeg作为WebM的流服务器。0. FFserverFFserver是一个流服务器,可以帮你将音视频内容转换成流在互联网上传输。它能够收集多个输入流,并转码->重铸->广播 <a href="https://www.cnblogs.com/hongyanee/p/3310087.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3309882.html
Ubantu编译安装FFmpeg - 洪雁君
这几天安装FFmpeg搞得很头疼,直接用apt-get安装工具安装会比较方便,但是想要自定义编解码器就比较麻烦了。所以编译安装FFmpeg倒成了一个比较靠谱的做法。FFmpeg版本:平台: Ubantu 12.0 64位1. 首先下载最新版本的FFmpeg源码sudo git clonehttps://github.com/FFmpeg/FFmpeg.git2. 然后按照需求配置sudo ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads -
2013-09-09T07:01:00Z
2013-09-09T07:01:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】这几天安装FFmpeg搞得很头疼,直接用apt-get安装工具安装会比较方便,但是想要自定义编解码器就比较麻烦了。所以编译安装FFmpeg倒成了一个比较靠谱的做法。FFmpeg版本:平台: Ubantu 12.0 64位1. 首先下载最新版本的FFmpeg源码sudo git clonehttps://github.com/FFmpeg/FFmpeg.git2. 然后按照需求配置sudo ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads - <a href="https://www.cnblogs.com/hongyanee/p/3309882.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3309076.html
HTTP Live Streaming网络视频直播调研 - 洪雁君
PC端的网络视频直播主要是利用Flash实现,但是移动端的HTTP视频直播应用还有不少的争议,各家厂商都提出了不同的实现方案。微软提出了IIS Smooth Streaming,Adobe提出了Flash Dynamic Streaming,Apple提出了HTTP Live Streaming,Google则利用webm视频格式实现直播。1. Apple HTTP Live streamingApple提出了基于客户端的HTTP自适应在线直播方案。服务器将视频切分成短时的视频片段,可以配置持续时间和视频质量。服务器还会生成一个播放列表,列表中顺序保存了视频片段的地址。客户端动态下载连续的视频
2013-09-09T03:08:00Z
2013-09-09T03:08:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】PC端的网络视频直播主要是利用Flash实现,但是移动端的HTTP视频直播应用还有不少的争议,各家厂商都提出了不同的实现方案。微软提出了IIS Smooth Streaming,Adobe提出了Flash Dynamic Streaming,Apple提出了HTTP Live Streaming,Google则利用webm视频格式实现直播。1. Apple HTTP Live streamingApple提出了基于客户端的HTTP自适应在线直播方案。服务器将视频切分成短时的视频片段,可以配置持续时间和视频质量。服务器还会生成一个播放列表,列表中顺序保存了视频片段的地址。客户端动态下载连续的视频 <a href="https://www.cnblogs.com/hongyanee/p/3309076.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3300938.html
RHEL/CentOS 6的更新源 - 洪雁君
RedHat/CentOS 6 yum repository更新源Linux安装软件,rpm方法总会遇到依赖的问题,烦不胜烦。yum install是一个比较方便的安装方式,所以要选择一个好一些yum repository更新源。国内不错的更新源有中科大/搜狐/163.国内三个主要的开源镜像站(教育网)中科大镜像站:http://mirrors.ustc.edu.cn/搜狐镜像站:http://mirrors.sohu.com/163镜像站:http://mirrors.163.com/修改CentOS-Base.repovim /etc/yum.repos.d/CentOS-Base.rep
2013-09-04T06:31:00Z
2013-09-04T06:31:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】RedHat/CentOS 6 yum repository更新源Linux安装软件,rpm方法总会遇到依赖的问题,烦不胜烦。yum install是一个比较方便的安装方式,所以要选择一个好一些yum repository更新源。国内不错的更新源有中科大/搜狐/163.国内三个主要的开源镜像站(教育网)中科大镜像站:http://mirrors.ustc.edu.cn/搜狐镜像站:http://mirrors.sohu.com/163镜像站:http://mirrors.163.com/修改CentOS-Base.repovim /etc/yum.repos.d/CentOS-Base.rep <a href="https://www.cnblogs.com/hongyanee/p/3300938.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3298610.html
安装JDK 1.7时"could not locate a suitable jar utility"解决方案 - 洪雁君
今天在Linux上安装JDK1.7,总会遇见“could not locate a suitable jar utility”错误。错误信息在RHEL6.2上报错误信息为:Could not locate a suitable jar utility.Please ensure that you have Java 7 or newer installed on your systemand accessible in your PATH or by setting JAVA_HOME某些网站评论认为是没有配置JAVA_HOME环境变量,这是不对的。这是由于J2EE的SDK认为没有安装JDK的
2013-09-03T06:03:00Z
2013-09-03T06:03:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】今天在Linux上安装JDK1.7,总会遇见“could not locate a suitable jar utility”错误。错误信息在RHEL6.2上报错误信息为:Could not locate a suitable jar utility.Please ensure that you have Java 7 or newer installed on your systemand accessible in your PATH or by setting JAVA_HOME某些网站评论认为是没有配置JAVA_HOME环境变量,这是不对的。这是由于J2EE的SDK认为没有安装JDK的 <a href="https://www.cnblogs.com/hongyanee/p/3298610.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3277274.html
长连接与短连接 - 洪雁君
文章介绍了网络通信中的长连接和短连接的概念与不同的应用场景。1. TCP连接前文《传输层中的TCP和UDP浅析》介绍过传输层中的TCP,TCP(传输控制协议)是传输层的两大协议之一。TCP是一种面向链接的可靠协议,其通信的过程分成了三步:1. 开始传输前,端到端需要通过三次握手建立链接。2. 传输过程中双方按照TCP保证可靠性。3. 传输结束之后,双方再用三次握手关闭连接。数据传输前,三次握手建立连接的过程如下图所示:数据传输过程中保持连接。数据传输结束后,四次握手关闭连接。2 TCP短连接TCP短连接就是一次请求+返回的TCP连接,无需保持连接,例如下面过程。client向server请求T
2013-09-02T17:17:00Z
2013-09-02T17:17:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】文章介绍了网络通信中的长连接和短连接的概念与不同的应用场景。1. TCP连接前文《传输层中的TCP和UDP浅析》介绍过传输层中的TCP,TCP(传输控制协议)是传输层的两大协议之一。TCP是一种面向链接的可靠协议,其通信的过程分成了三步:1. 开始传输前,端到端需要通过三次握手建立链接。2. 传输过程中双方按照TCP保证可靠性。3. 传输结束之后,双方再用三次握手关闭连接。数据传输前,三次握手建立连接的过程如下图所示:数据传输过程中保持连接。数据传输结束后,四次握手关闭连接。2 TCP短连接TCP短连接就是一次请求+返回的TCP连接,无需保持连接,例如下面过程。client向server请求T <a href="https://www.cnblogs.com/hongyanee/p/3277274.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3288184.html
基于TCP和UDP的Socket实现(JAVA) - 洪雁君
本文介绍如何用Java实现Socket编程。首先介绍Java针对Socket编程提供的类,以及它们之间的关系。然后分别针对TCP和UDP两种传输层协议实现Socket编程。1 Java中的Socket编程接口介绍Java为Socket编程封装了几个重要的类。1.1 Socket类Socket类实现了一个客户端socket,作为两台机器通信的终端,默认采用的传输层协议为TCP,是一个可靠传输的协议。Socket类除了构造函数返回一个socket外,还提供了connect, getOutputStream, getInputStream和close方法。connect方法用于请求一个socket连
2013-09-01T16:56:00Z
2013-09-01T16:56:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】本文介绍如何用Java实现Socket编程。首先介绍Java针对Socket编程提供的类,以及它们之间的关系。然后分别针对TCP和UDP两种传输层协议实现Socket编程。1 Java中的Socket编程接口介绍Java为Socket编程封装了几个重要的类。1.1 Socket类Socket类实现了一个客户端socket,作为两台机器通信的终端,默认采用的传输层协议为TCP,是一个可靠传输的协议。Socket类除了构造函数返回一个socket外,还提供了connect, getOutputStream, getInputStream和close方法。connect方法用于请求一个socket连 <a href="https://www.cnblogs.com/hongyanee/p/3288184.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3277273.html
传输层中的TCP和UDP浅析 - 洪雁君
TCP/IP协议中,传输层有两大协议:TCP和UDP,本文介绍了TCP和UDP的概念,并介绍了TCP通信和UDP通信的原理,比较了两者的不同,分析了两者各自的应用环境。TCP和UDP是TCP/IP网络协议中传输层的两大协议,主要负责分割并组装上层交付的数据流,为数据流提供端到端的传输服务。TCP全称是Transmission Control Protocol传输控制协议,是面向链接的可靠协议。UDP全称是User Datagram Protocol用户数据报协议,是无链接的可靠协议。下面具体描述TCP和UDP的概念。1.TCP(传输控制协议)TCP是一种面向链接的可靠协议,是因为利用TCP进行
2013-08-23T10:24:00Z
2013-08-23T10:24:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】TCP/IP协议中,传输层有两大协议:TCP和UDP,本文介绍了TCP和UDP的概念,并介绍了TCP通信和UDP通信的原理,比较了两者的不同,分析了两者各自的应用环境。TCP和UDP是TCP/IP网络协议中传输层的两大协议,主要负责分割并组装上层交付的数据流,为数据流提供端到端的传输服务。TCP全称是Transmission Control Protocol传输控制协议,是面向链接的可靠协议。UDP全称是User Datagram Protocol用户数据报协议,是无链接的可靠协议。下面具体描述TCP和UDP的概念。1.TCP(传输控制协议)TCP是一种面向链接的可靠协议,是因为利用TCP进行 <a href="https://www.cnblogs.com/hongyanee/p/3277273.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3277058.html
Java虚拟机(JVM)入门 - 洪雁君
文章主要介绍了Java虚拟机的概念和构成,以及Java虚拟机中类是如何加载和卸载的。一 什么是Java虚拟机Java虚拟机是一台从实际计算机系统上抽象出来的计算机,可以运行编译好的Java程序。Java虚拟机运行在真实的计算机和操作系统之上,理论上它包含了实际计算机和操作系统的所有组件。Java虚拟机拥有自己完善的的硬件结构,包括处理器、寄存器、内存和指令系统等;也拥有操作系统的功能,包括内存管理、文件系统和网络功能等。为什么要实现这样一台虚拟机呢?Java虚拟机最重要的意义就在于平台无关性。从Java程序猿的角度来看,Java虚拟机就是一套提供了完善的API的运行环境,不需要关心其运行在什么
2013-08-23T03:29:00Z
2013-08-23T03:29:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】文章主要介绍了Java虚拟机的概念和构成,以及Java虚拟机中类是如何加载和卸载的。一 什么是Java虚拟机Java虚拟机是一台从实际计算机系统上抽象出来的计算机,可以运行编译好的Java程序。Java虚拟机运行在真实的计算机和操作系统之上,理论上它包含了实际计算机和操作系统的所有组件。Java虚拟机拥有自己完善的的硬件结构,包括处理器、寄存器、内存和指令系统等;也拥有操作系统的功能,包括内存管理、文件系统和网络功能等。为什么要实现这样一台虚拟机呢?Java虚拟机最重要的意义就在于平台无关性。从Java程序猿的角度来看,Java虚拟机就是一套提供了完善的API的运行环境,不需要关心其运行在什么 <a href="https://www.cnblogs.com/hongyanee/p/3277058.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3275512.html
Java的final关键字浅析 - 洪雁君
Java的final关键字表示“不可改变的”,不想改变的原因可能有两个理由:设计和效率。然而根据上下文环境,其含义有着细微的差别。final关键字可以修饰数据、方法和类。1. final数据在定义一个变量时,final关键字告诉编译器这个变量是一个不可改变的数据。这种情况可能有两个出发点:1. 这是一个永不改变的编译时常量;2. 这是一个一旦初始化就不被改变的变量。1. 对于编译时常量,编译器会把该常量的值带入到任何使用到它的计算式中,也就是说在编译时直接执行计算式,可以减轻运行时的负担。在Java中这些常量必须基于基本数据类型,并且用final关键字表示,在对这个常量定义的时候必须对其赋值。
2013-08-22T10:02:00Z
2013-08-22T10:02:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】Java的final关键字表示“不可改变的”,不想改变的原因可能有两个理由:设计和效率。然而根据上下文环境,其含义有着细微的差别。final关键字可以修饰数据、方法和类。1. final数据在定义一个变量时,final关键字告诉编译器这个变量是一个不可改变的数据。这种情况可能有两个出发点:1. 这是一个永不改变的编译时常量;2. 这是一个一旦初始化就不被改变的变量。1. 对于编译时常量,编译器会把该常量的值带入到任何使用到它的计算式中,也就是说在编译时直接执行计算式,可以减轻运行时的负担。在Java中这些常量必须基于基本数据类型,并且用final关键字表示,在对这个常量定义的时候必须对其赋值。 <a href="https://www.cnblogs.com/hongyanee/p/3275512.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hongyanee/p/3274547.html
Java的垃圾回收机制浅析 - 洪雁君
《Java编程思想》中关于Java的垃圾回收机制有这样三句话:1. 对象可能不会被垃圾回收。2. 垃圾回收并不等于析构。3. 垃圾回收只与内存有关。一 垃圾回收机制的理解为了能够理解这几句话,写个小例子来尝试一下。class Game { Game(int i) { System.out.println("Game Constructor + " + i); } public void finalize() { System.out.println("Game Destructor"); }}class BoardGame exten...
2013-08-22T03:55:00Z
2013-08-22T03:55:00Z
洪雁君
https://www.cnblogs.com/hongyanee/
【摘要】《Java编程思想》中关于Java的垃圾回收机制有这样三句话:1. 对象可能不会被垃圾回收。2. 垃圾回收并不等于析构。3. 垃圾回收只与内存有关。一 垃圾回收机制的理解为了能够理解这几句话,写个小例子来尝试一下。class Game { Game(int i) { System.out.println("Game Constructor + " + i); } public void finalize() { System.out.println("Game Destructor"); }}class BoardGame exten... <a href="https://www.cnblogs.com/hongyanee/p/3274547.html" target="_blank">阅读全文</a>