两个线程交替打印奇偶数-学习笔记

前段时间看到阿里一个大哥讲述自己阿里面试的经验时,被面试官要求写一个“两个线程交替打印奇偶数”的程序。而前天刚好看见阿里大哥专门讲这个程序的博客《多线程技术: 两个线程交替打印奇数和偶数 - 明志健致远 - 博客园》。 主要是看到安徽建筑大学的字样,回想到那篇文章里大哥的自我介绍,觉得肯定就是那...

2018-08-15 22:26:28

阅读数 1371

评论数 0

java源码阅读接口篇之java.util.Queue

Queue接口继承自Collection接口。接口中的方法如下: 一、接口定义: /** * @since 1.5 * @author Doug Lea * @param <E> the type of elements held in t...

2018-08-12 20:41:10

阅读数 97

评论数 0

从反编译角度看看接口中的域

接口除了表示方法的集合之外,经常被用来作为常量类。因为接口做常量类更加简洁。只需要像下面这样: public interface StringConsts { String EMPTY_STRING = ""; } 我们可以看见EMPTY_STRI...

2018-08-07 21:34:34

阅读数 92

评论数 0

java源码阅读之小数缓存

在谈小数缓存之前,我们先来看看这两行代码有什么区别: Long a = new Long(1L); Long b = Long.valueOf(1L); 要区分他们有什么区别,免不了要去看看java源码了。这里我以JDK1.8.0_151的源码做解析: 先看Long的构造函数: pri...

2018-08-05 21:00:53

阅读数 43

评论数 0

两张图看懂java集合中的接口继承关系

java集合用到了很多的接口,今天抽空整理了一下,集合中的接口继承关系图:  

2018-08-05 20:30:09

阅读数 610

评论数 0

java源码阅读接口篇之java.util.Collection

java.util.Collection是个接口,很容易和工具类java.util.Collections弄混淆。今天我就抽丝剥茧来研究一下这个接口。 这里我基于JDK1.7.0_80的Collections接口进行研究,以避免JDK1.8引入的StreamAPI和函数式编程接口。 一、接口定...

2018-08-05 13:05:43

阅读数 75

评论数 0

一张图看懂java HashMap继承关系

这是JDK1.8.0_151下的HashMap类定义: public class HashMap<K,V> extends AbstractMap<K,V> implements Map&a...

2018-08-05 12:34:20

阅读数 761

评论数 0

Java源码阅读之HashSet

HashSet是我们常用的一种数据结构。用来存储值唯一的集合。本文基于JDK1.8.0_151的Java源代码。 先来看看HashSet的类定义: /** * @author Josh Bloch * @author Neal Gafter * @see Collecti...

2018-08-05 11:13:42

阅读数 33

评论数 0

C语言实现逐行读取

经常用java来写逐行读取文件的代码。最近复习C语言,刚好也用C语言来写一次文件逐行读取。 主要是已使用fgets函数来实现我们的目的: #include "stdlib.h" #include "stdio.h" i...

2018-08-04 22:13:04

阅读数 650

评论数 0

C语言实现数组长度计算方法

写C时,经常要用到计算数组长度,我一般用下面这种方法: #define LEN(x) sizeof(x) / sizeof(x[0]) 即利用库函数sizeof来计算数组长度,这种方法,对一维数组和多维数组都有效,如以下代码示例: #include "stdio.h&a...

2018-08-03 22:23:31

阅读数 1980

评论数 0

C语言实现两个数的交换

常常用C写排序算法时,经常写两个数的交换。想来,也把自己知到的这些方式记录一下: (1)宏定义方法: #define SWAP(a, b) {a = a + b; b = a - b; a = a - b;} 使用示例: int a[2] = {5, 1}; SWAP(a[0], a[...

2018-08-03 22:14:04

阅读数 170

评论数 0

从kafka源码阅读中看出了问题之abstract interface

今天在看到kafka的源码类org.apache.kafka.common.network.SslTransportLayer时,看到这个类引用了 javax.net.ssl.SSLSession这个类,点进去看了一下这个类,着实让我吃惊了一把。 public abstract interf...

2018-08-03 22:09:21

阅读数 45

评论数 0

从反编译的角度看abstract class与interface的区别

abstract class与interface傻傻分不清,今天我打算从反编译角度来看看二者的区别。 先写这么一个abstact class 一个空的虚基类。 public abstract class AbstractClass {} 再写这么一个interface 一个空的接口。 ...

2018-08-03 21:28:25

阅读数 119

评论数 0

从kafka源码阅读中看出了问题之除零不异常

最近在看kafka源码, 看到一个让我感到很陌生的地方,也引起了我深深地思考。 竟然还有可以除0合法的地方: 在org.apache.kafka.common.metrics.stats.Max类中,看到了构造函数: public Max() { super(Do...

2018-08-01 22:31:42

阅读数 120

评论数 0

从链表的迭代遍历看java lambda表达式效率

随着JDK1.8的发布,lambda和函数式编程终于进入到java世界。在用了一段时间,甚至可以说是在硬往lambda和流API上靠。有一天,在跟着大牛学习java时,一句“lambda拖慢程序”突然让我意识到了什么,于是我做了个测试。现在,静下心来,回顾一下那个测试。 一个很简单的测试,就是一...

2018-07-31 23:32:33

阅读数 196

评论数 0

从java反编译学习字节码指令(一)

最近沉迷于java反编译,经常看到iconst_1指令,见得多了,也让我对它感到很好奇,它是不是就是固定代表int 1啊? 做个小测试,从11到0,看看它们分别对应字节码什么? public class Bytecode { public void ByteCode() { ...

2018-07-31 21:51:35

阅读数 445

评论数 0

C 语言实现程序计时笔记

有的时候写C代码,想知道代码的执行时间,不知道怎么做。心想要是java就好了,System.currentTimeMillis()或者System.nanoTime(),真的是很方便。经过查阅在C里可以这样做: #include "stdio.h" #inc...

2018-07-31 21:19:00

阅读数 40

评论数 0

java源码阅读之java.lang.Enum

之所以要研究这个类,因为它是java中所有枚举的父类,本文基于JDK1.9.0的java源码进行展开。 一、类定义: public abstract class Enum<E extends Enum<E>&g...

2018-07-29 23:53:44

阅读数 328

评论数 0

java枚举编译后是什么样子?

在java中,我们经常使用枚举来表示有限值的集合。 像下面的这个枚举类: public enum Level { HIGH, MIDDLE, LOW; } 那么,枚举类编译之后,是个什么样子呢? 在JDK1.8.0_152环境下,我们使用javac编译这个枚举类...

2018-07-29 22:02:35

阅读数 685

评论数 0

java TWR是怎么优雅我们的代码的?

我们在编写IO代码的时候,有的时候真的是对对java IO那种模板化的代码感到厌倦,而且写出来的代码,很臃肿丑陋。像下面这样的代码: public void readFile(String filePath) { FileInputStream fis = null; ...

2018-07-29 19:16:06

阅读数 509

评论数 0

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