
java
文章平均质量分 74
一支纯牛奶
这个作者很懒,什么都没留下…
展开
-
Java Lambda表达式及方法引用
LambdaLambda表达式是Java SE 8中一个重要的新特性。允许你通过表达式来代替功能接口,其几乎解决了匿名内部类带来的所有问题。 其实Lambda表达式的本质是一个”语法糖”,由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。原创 2017-07-10 20:56:36 · 3688 阅读 · 4 评论 -
Java并发的同步辅助类
位于java.util.concurrent的三个同步辅助类 - CountDownLatch - CyclicBarrier - SemaphoreCountDownLatch 直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。实例化需要原创 2017-08-30 18:05:06 · 334 阅读 · 0 评论 -
为什么多个客户端可以连接服务器的同个端口?
平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端口和服务器端通讯。或者http服务器使用80端口也是和多个浏览器进行连接通讯。为什么可以这样呢?操作系统的进程在同个端口的多个连接是如何进行分辨的?译文我们这里讲Socket连接: 1. 端口只是一个数字辨识,不是真正的物理端口; 2. 一个Socket连接的主键(即不同翻译 2017-09-07 18:03:44 · 23281 阅读 · 12 评论 -
java变量赋值要求
类变量和普通变量在不设置初始值时,会进行默认值赋值。局部方法中声明的变量如果有使用到必须进行初始化,不会进行默认值赋值。final声明的变量必须进行赋值,除非所在类的所有构造器里面都有为此变量赋值。原创 2017-08-18 18:01:21 · 1417 阅读 · 0 评论 -
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 · 8448 阅读 · 0 评论 -
java异常详解
在Java中异常被当做对象来处理,根类是java.lang.Throwable类,在Java中定义了很多异常类(如OutOfMemoryError、NullPointerException、IndexOutOfBoundsException等),这些异常类分为两大类:Error和Exception。在Java中,声明为Error的,属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。E原创 2017-08-11 13:49:04 · 899 阅读 · 0 评论 -
volatile关键字详解
这个关键字我得看了十几篇博客,才终于有点底气来写这篇博客了。一些人写得的博客真的是呵呵了,说的很多都是错的。看了十几篇博客还问了大牛才懂得具体细节。其实volatile关键字很简单,就是在所修饰变量出现写操作后加入一个内存屏障。看到一篇文章写得不错,把volatile已经解释得很清楚了。如下 http://www.cnblogs.com/dolphin0520/p/3920373.html读者先看原创 2017-07-24 11:38:50 · 360 阅读 · 0 评论 -
java中import作用详解
java中import详解import与package机制相关,这里先从package入手,再讲述import以及static import的作用。原创 2017-07-07 17:47:19 · 188258 阅读 · 45 评论 -
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 · 15735 阅读 · 1 评论 -
初始化Java对象的详细过程
一个类及其对象初始化的过程一、什么时候需要初始化一个类 首次创建某个对象时 —> Dog dog = new Dog(); 首次访问某个类的静态方法或者静态字段时 —> Dog.staticFields; java解释器就会去找类的路径,定位已经编译好的Dog.class文件。二、获得类的资源 然后jvm就会载入Dog.class,生成一个class对象。这个时候如果有静原创 2017-07-05 15:32:56 · 14173 阅读 · 10 评论 -
java容器----HashMap
现在java的源码版本一个比一个复杂,人老了直接看别人的源码介绍,接着我再大概讲讲hashMap具体的存放规则。java1.8 hashmap源码说明java1.8中hashmap增加了红黑树结构,不过这里我们就讲讲比较原始的数组加链表结构。如下图所示,hashmap有一个数组,每个数组元素都是一个链表,在同一个链表的元素的hash值都是相同的。//initialCapacity是初始化大小,loa原创 2017-08-11 11:40:47 · 385 阅读 · 0 评论