Java学习
文章平均质量分 88
来离
履霜坚冰,阴始凝也;驯至其道,至坚冰也。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java静态域、静态常量和静态方法
在几乎所有的程序里,main方法都被标记为static修饰符。那么我们就来讨论一下这个修饰符。包括静态域、静态常量和静态方法原创 2016-09-09 17:17:53 · 828 阅读 · 0 评论 -
JDK中Stack的bug
JDK中Stack的bug在写 Dijkstra 的最短路径算法的时候,打印结果发现和预期的结果不同,查找出来的路径刚好是反着的。在经过多次bug排查后最后发现问题在路径的打印上面。Stack<DirectedEdge> path = new Stack<>();for (DirectedEdge e = edgeTo[v]; e != null; e = edgeTo[e.from()])原创 2017-04-01 22:52:28 · 865 阅读 · 0 评论 -
Java多线程内存可见性
原子性:原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。synchronized关键是是可见的,且原子的。volatile不能保证原子性原创 2016-11-12 21:38:20 · 479 阅读 · 0 评论 -
HashMap工作原理
在之前写的一篇博文中,大致分析了一下实现方式和区别,但是HashMap的工作是怎样的?如果遇到hashCode相等怎么办?如果超过了负载因子又怎么办?这些问题,依然值得我们去深思和理解。以下是一些思考点:HashMap的一些特性HashMap的实现原理HashMap中的数据结构源码中的数据域HashMap的构造函数HashMap的存取机制原创 2016-11-11 15:39:28 · 412 阅读 · 0 评论 -
Java中启动线程start和run方法
一、区别Java中启动线程有两种方法,继承Thread类和实现Runnable接口,由于Java无法实现多重继承,所以一般通过实现Runnable接口来创建线程。但是无论哪种方法都可以通过start()和run()方法来启动线程,下面就来介绍一下他们的区别。start方法:通过该方法启动线程的同时也创建了一个线程,真正实现了多线程。无需等待run()方法中的代码执行完毕,就可以接着执行下面的代码。此原创 2016-11-07 20:17:14 · 20446 阅读 · 0 评论 -
HashSet、HashMap和Hashtable的区别
HashSet和HashMap都是Collection框架的一部分,它们让我们能够使用对象的集合。Collection框架主要有Set接口、List接口和Queue接口。Set集合不允许对象有重复的值;List允许重复,并可以对集合中的对象进行索引;Queue则是FCFS算法(First Come First Serve)。HashSetHashSet实现了Set接口,它不允许集合中有重复的值。当我原创 2016-11-10 15:36:27 · 2789 阅读 · 3 评论 -
int、Integer和IntHolder
一、对象包装器与自动拆装箱有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。二、int、Integer和IntHolder类型的区别原创 2016-10-13 22:24:47 · 1626 阅读 · 8 评论 -
Java中不编写返回引用对象的访问器方法
在《Java核心技术 卷1》(原书第9版)的时候,在113也有一个警告,说注意不要编写返回引用可变对象的访问器方法,关于可变对象的概念,我自己的理解就是在类中可以不通过域更改器方法就能改变值的对象。,而在所给示例的 Employee 类中就违反了这个设计原则,其中的 geiHireDay 方法就返回了一个 Date 类对象,因为这会破坏封装性!原创 2016-09-08 20:04:37 · 554 阅读 · 0 评论 -
Java中的Random()函数
在《Java核心技术 卷1》中,看到在数组排序这一章节使用了Math.random()这个方法来生成随机数,一开始是想了解使用方法。但是后来看到了更多详细的介绍,所以做一个简单的小结。Java中存在两种Random函数:一、java.lang.Math.RandomMath.random方法将返回一个随机浮点数。该数的值处于 0 到 1 之间(即 [0, 1)的左闭右开区间),返回值是一个伪随机选择原创 2016-09-07 15:40:04 · 777 阅读 · 0 评论 -
Java中的代码点和代码单元
代码点、字符编码方案、UTF-16:是指什么字符是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。字符集是字符的集合。例如,汉字字符是中国人最先发明的字符,在中文、日文、韩文和越南文的书写中使用。代码点是指可用于编码字符集的数字。编码字符集定义一个有效的代码点范围,但是并不一定将字符分配给所有这些原创 2016-09-06 22:10:54 · 555 阅读 · 0 评论 -
Java反射和泛型的本质
1.Class类的使用其实类也是对象,类是java.lang.Class类的实例对象。2.动态加载类我用什么才加载什么,不用就不加载,不影响其他的3.获取方法信息4.获取成员变量构造函数信息5.方法反射的基本操作通过invoke操作方法6.通过反射了解集合泛型的本质泛型的本质其实就是去泛型原创 2016-10-23 14:34:52 · 653 阅读 · 0 评论
分享