再学一遍java
文章平均质量分 66
LightOfMiracle
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java还要再学一遍基础(一)认识java
为什么选择Java公司一个热衷Python的同事突然问我:你给我说说Java到底有什么好?几番辩论之后我意识到似乎一直以来都忽略的这个问题。网上看了蛮多,记录一下免得被别人再问到表示很尴尬。理由学习起来比较简单。没有很晦涩难懂的语法糖,没有以前学C时候的指针。Java提供了垃圾回收机制,就算是初学者也不会因为莫名其妙内存溢出或者内存泄漏而摸不着头脑。跨平台性。java所说的“write onc原创 2017-05-30 14:39:53 · 876 阅读 · 0 评论 -
Java还要再学一遍基础(十五)获取Unsafe
Java中的Unsafe被设计成我们不能随便访问,虽然也可以通过反射获取,但是没有经过严格测试的自己写的代码不能保证它的正确性,这里贴出谷歌api中的Unsafe获取方法,以备后用:private static sun.misc.Unsafe getUnsafe() { try { return sun.misc.Unsafe.getUnsafe(); ...原创 2018-05-31 10:58:41 · 778 阅读 · 0 评论 -
Java还要再学一遍基础(十)LinkedHashMap原理
LinkedHashMap概述LinkedHashMap继承自HashMap并且实现Map接口,内部哈希散列表的实现沿用HashMap的功能,同时LinkedHashMap单独维护了一个双向链表用于记录插入顺序或者访问顺序,以达到按插入顺序或者访问顺序迭代的目的。详解首先看一个LinkedHashMap的简单的例子:public static void main(String[] args) {原创 2017-06-06 13:28:30 · 506 阅读 · 0 评论 -
Java还要再学一遍基础(十三)foreach循环
foreach的使用List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);for(int v : list) System.out.println(v);上面的代码将输出:1234foreach是java对于for循环的一种增强,或者说增强的for循环。它能够原创 2017-06-12 17:20:10 · 451 阅读 · 0 评论 -
Java还要再学一遍基础(十七)- Object的finalize方法
概述Object的finalize方法定义如下:protected void finalize() throws Throwable { }使用protected修饰,所以子类是可以重写该方法的。finalize方法将会在jvm对当前对象进行gc回收的时候调用。实例下面的代码简单的演示了finalize方法的使用:public class FinanizeEscap原创 2017-07-12 16:01:15 · 506 阅读 · 0 评论 -
Java还要再学一遍基础(十六)- DelayQueue使用
概述 DelayQueueDelayed>Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部 是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且poll 将返回 null。当一个元素的 getDelay(TimeUnit.NANOSECONDS) 方法返回一个小于等于 0 的值时,将发生到期。即使无法使用原创 2017-07-03 14:06:47 · 560 阅读 · 0 评论 -
Java还要再学一遍基础(十四)实现斐波那契数列
费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数、斐波那契数列、费氏数列、黄金分割数列。指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)实现:/**递归实现 * @param n原创 2017-06-20 14:29:49 · 589 阅读 · 0 评论 -
Java还要再学一遍基础(十五) - 接口的多继承
概述初学Java的时候经常都能看到--Java类不能继承多个类,但是可以实现多个接口。学了一段时间之后突然发现:原来接口还能继承接口。再过一段时间可能终于发现:接口可以继承多个接口!其实也是在情理之中,因为Java不支持继承多个类一定程度上是因为继承多个类而多个类拥有相同的方法的问题。但是接口不一样,一般来说接口里都是抽象类,所以不存在类的具体实现,就算多继承的时候有相同名原创 2017-06-28 10:21:39 · 577 阅读 · 0 评论 -
Java还要再学一遍基础(十二)小数运算,BigDecimal,四舍五入
前言直接看一个很经典的例子System.out.println(0.05 + 0.01);System.out.println(1 - 0.42);System.out.println(1.4167 * 10);System.out.println(33.12353 / 10);上面的程序将输出:0.0600000000000000050.580000000000000114.167000原创 2017-06-08 14:11:17 · 625 阅读 · 0 评论 -
Java还要再学一遍基础(十一)WeakHashMap详解
WeakHashMap概述WeakHashMap是以弱键实现的基于哈希表的存储映射数据的Map。当JVM对于这些弱键所指向的对象进行了清理回收之后,WeakHashMap会自动有效的将被回收了的映射从map中移除。引用的相关知识Java中的引用一共分为四种,分别为强引用(Strong Reference),软引用(Soft Reference),弱引用(Weak Reference)和幻影引用(Ph原创 2017-06-07 11:19:51 · 631 阅读 · 0 评论 -
Java还要再学一遍基础(六)ArrayList详解
ArrayList概要。ArrayList是一个容量可变的动态数组,继承了AbstractList,并且AbstractList已经实现了一些基本的增删改查,ListIterator等功能,ArrayList更关注的是内部的的数组实现。ArrayList是实现RandomAccess接口,RandomAccess接口中并没有任何的方法,只是表明具有快速随机访问的功能,也就是通过Index(索引)原创 2017-06-02 13:00:58 · 615 阅读 · 0 评论 -
Java还要再学一遍基础(八)Vector与ArrayList
Vector介绍Vector与ArrayList一样,都实现了可变数组,都集成继承 AbstractList 类,实现了List接口,RandomAccess接口,Cloneable接口和Serializable接口。因此功能上基本与ArrayList差不多,同时都支持快速随机访问。Vector与ArrayLsit的区别1. 构造函数不同 构造函数:public Vector() {原创 2017-06-02 14:39:53 · 385 阅读 · 0 评论 -
Java还要再学一遍基础(七)LinkedList详解
LinkedList介绍LinkedList与ArrayList一样都是属于AbstractList的子类。但是内部实现与ArrayList不同的是LinkedList是以链表的数据结构来实现的,通过引用来指向上一个或者下一个节点。在数据的插入和删除上面有很高的效率,同时可以被用作队列,栈或者双端队列并提供了对应的操作。特性:双端队列实现。线程不安全。插入删除效率很高。不能快速随机访问(虽原创 2017-06-02 14:09:46 · 556 阅读 · 0 评论 -
Java还要再学一遍基础(五)String,StringBuilder,StringBuffer
String,StringBuilder,StringBuffer学习String,StringBuilder,StringBuffer的话题也是老生长谈了。权当记录一下。1. String相关常量池:在编译期被确定,保存在.class文件中的一些常量,其中就有字符串。String不属于Java的基本数据类型。是对象。String被创建的时候会先去检查字符常量池里面有没有这个字符串,有的话直原创 2017-06-01 17:46:12 · 568 阅读 · 0 评论 -
Java还要再学一遍基础(四)JDK1.8新特性default,static
JDK1.8新特性default,static用法 在1.8以前,我们的Interface之中通常除了抽象方法别的什么都没有,但是从1.8引入开始Interface中还可以有具体的实现!其中所要用到的两个非常重要的关键字就是:default和staticdefault修饰的默认方法,可以带有具体的实现,同时这个接口的实现类可以不去实现这个方法就能够使用,当然也可以自己去实现这个方法(如果有必要的话原创 2017-06-01 14:08:15 · 1489 阅读 · 0 评论 -
Java还要再学一遍基础(三)hashCode方法
了解Java的hashCode方法hashCode()是什么?hashCode()方法是Object类中就有的一个方法。 public native int hashCode();该方法是native方法,意味着这个方法的实现是依赖于底层的,普遍认为Object类中的方法返回的是这个对象的物理地址。看看这个方法的描述:Returns a hash code value for the obje原创 2017-06-01 13:16:35 · 510 阅读 · 0 评论 -
Java还要再学一遍基础(九)HashMap原理
HashMap概述HashMap是用于存储映射(键值对)的数据类型,允许key为null,同时不保证插入顺序的一个非同步的数据类型。但是在非同步的java的程序中HashMap的使用非常的频繁,需要同步的情况可以使用ConcurrentHashMap。本文基于JDK1.8(hash算法改变和引入红黑书等)做阐述。重点研究HashMap的hash算法,put方法(如何解决哈希冲突),和当HashMap原创 2017-06-05 14:37:54 · 662 阅读 · 0 评论 -
Java还要再学一遍基础(二)Java中的关键字
重新熟悉Java中常见的关键字 Java中的关键字都有abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofint原创 2017-05-31 14:57:20 · 447 阅读 · 0 评论
分享