自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个博客

心怀梦想 碌碌无为

  • 博客(18)
  • 收藏
  • 关注

翻译 为什么多个客户端可以连接服务器的同个端口?

平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端口和服务器端通讯。或者http服务器使用80端口也是和多个浏览器进行连接通讯。为什么可以这样呢?操作系统的进程在同个端口的多个连接是如何进行分辨的?译文我们这里讲Socket连接: 1. 端口只是一个数字辨识,不是真正的物理端口; 2. 一个Socket连接的主键(即不同

2017-09-07 18:03:44 21973 12

原创 java网络编程(四)----异步非阻塞aio及proactor模型

(aio)NIO 2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。异步的套接字通道时真正的异步非阻塞I/O,对应于UNIX网络编程中的事件驱动I/O(AIO)。他不需要过多的Selector对注册的通道进行轮询即可实现异步读写,从而简化了NIO的编程模型。jdk7以前的nio是非阻塞IO,操作系统底层比方说linux,是用IO复用select或者epoll实现的,也不是异

2017-09-05 17:23:03 972

原创 java网络编程(三)----同步非阻塞nio及reactor模型

很多刚接触NIO的人,第一眼看到的就是Java相对晦涩的API,比如:Channel,Selector,Socket什么的;然后就是一坨上百行的代码来演示NIO的服务端Demo,所以这里我们人性化地简单介绍一下。 NIO我们一般认为是New I/O(也是官方的叫法),因为它是相对于老的I/O类库新增的(其实在JDK 1.4中就已经被引入了,但这个名词还会继续用很久,即使它们在现在看来已经是“旧”

2017-09-05 13:59:40 4235

原创 java网络编程(二)----同步阻塞bio

网络编程的基本模型是C/S模型,即两个进程间的通信。 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。 简单的描述一下BIO的服务端通

2017-09-05 09:42:48 975

原创 java网络编程(一)----概论

本章将会分为四个部分: - 概论 - 同步阻塞bio - 同步非阻塞nio及reactor模型 - 异步非阻塞aio及proactor模型

2017-08-31 21:55:43 428 1

原创 Java并发的同步辅助类

位于java.util.concurrent的三个同步辅助类 - CountDownLatch - CyclicBarrier - SemaphoreCountDownLatch 直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。实例化需要

2017-08-30 18:05:06 309

原创 java变量赋值要求

类变量和普通变量在不设置初始值时,会进行默认值赋值。局部方法中声明的变量如果有使用到必须进行初始化,不会进行默认值赋值。final声明的变量必须进行赋值,除非所在类的所有构造器里面都有为此变量赋值。

2017-08-18 18:01:21 1363

原创 Java字符编码详解

char “字节”是byte,“位”是bit ; 1 byte = 8 bit ; char 在Java中是2个字节。java采用unicode(《java核心技术卷一》里面有详细说明),2个字节(16位)来表示一个字符。而Unicode编码包括汉字,所以也可以给char赋值汉字。 那么我们在程序中的char =‘\123’和char = ‘\u0023’甚至’\”’这些又是

2017-08-18 15:15:13 8379

原创 MySQL索引资料总结

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。本文是对一些讲解mysql数据库优秀文章的收集索引类型索引是在MYSQL的存储引擎层中实现的,而不是在服务层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。MYSQL目前提供了一下4种索引。具体引擎对应索引如下:lin

2017-08-16 16:52:42 447

原创 java异常详解

在Java中异常被当做对象来处理,根类是java.lang.Throwable类,在Java中定义了很多异常类(如OutOfMemoryError、NullPointerException、IndexOutOfBoundsException等),这些异常类分为两大类:Error和Exception。在Java中,声明为Error的,属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。E

2017-08-11 13:49:04 869

原创 java容器----HashMap

现在java的源码版本一个比一个复杂,人老了直接看别人的源码介绍,接着我再大概讲讲hashMap具体的存放规则。java1.8 hashmap源码说明java1.8中hashmap增加了红黑树结构,不过这里我们就讲讲比较原始的数组加链表结构。如下图所示,hashmap有一个数组,每个数组元素都是一个链表,在同一个链表的元素的hash值都是相同的。//initialCapacity是初始化大小,loa

2017-08-11 11:40:47 357

原创 volatile关键字详解

这个关键字我得看了十几篇博客,才终于有点底气来写这篇博客了。一些人写得的博客真的是呵呵了,说的很多都是错的。看了十几篇博客还问了大牛才懂得具体细节。其实volatile关键字很简单,就是在所修饰变量出现写操作后加入一个内存屏障。看到一篇文章写得不错,把volatile已经解释得很清楚了。如下 http://www.cnblogs.com/dolphin0520/p/3920373.html读者先看

2017-07-24 11:38:50 334

原创 Java Lambda表达式及方法引用

LambdaLambda表达式是Java SE 8中一个重要的新特性。允许你通过表达式来代替功能接口,其几乎解决了匿名内部类带来的所有问题。 其实Lambda表达式的本质是一个”语法糖”,由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。

2017-07-10 20:56:36 3637 4

原创 java中import作用详解

java中import详解import与package机制相关,这里先从package入手,再讲述import以及static import的作用。

2017-07-07 17:47:19 184833 45

转载 单例模式几种实现方法

单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全单例模式最典型的代码,很多地方都这样写。public class Singleton { private

2017-07-06 10:14:59 388

原创 try-with-resources详解

看下面一段例子static String readFirstLineFromFileWithFinallyBlock(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLi

2017-07-05 17:59:48 15519 1

原创 初始化Java对象的详细过程

一个类及其对象初始化的过程一、什么时候需要初始化一个类 首次创建某个对象时 —> Dog dog = new Dog(); 首次访问某个类的静态方法或者静态字段时 —> Dog.staticFields; java解释器就会去找类的路径,定位已经编译好的Dog.class文件。二、获得类的资源 然后jvm就会载入Dog.class,生成一个class对象。这个时候如果有静

2017-07-05 15:32:56 13904 10

原创 JS中this和对象作为函数参数的区别

一个简单的例子 要求: 1、一个列表有一些简单的包含文字的行 2、鼠标移到某一行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff 3、点击添加按钮,能动态在最后添加一行提示 - 获取表格的行,getElementsByTagName 。 - 使用for进行循环,为每行添加事件及背景颜色设置 <script type="text/javascr

2017-07-05 11:24:11 2619 1

空空如也

空空如也

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

TA关注的人

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