![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础知识
文章平均质量分 50
Tracyhuixingfu
这个作者很懒,什么都没留下…
展开
-
Java集合学习:ArrayList的实现原理
1.概述 ArrayList是List接口的可变数组的实现,其实现了所有可选列表操作,允许包括null在内的所有元素。基本上等同于Vector,但它只对writeObject()和readObject()进行了同步。所以建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。2.接口原创 2014-11-29 19:40:43 · 580 阅读 · 0 评论 -
Java集合5:LinkedHashMap与LRU cache
1、LRU缓存介绍 我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本,但是,通过电话本查找还是很费时间的。但是,我们大脑能够记住的东西是一定的,我们只能记住自己最熟悉的,而长时间不熟悉的自然就忘记了。 其实,计算机原创 2015-06-22 21:43:33 · 529 阅读 · 0 评论 -
Java集合7:LinkedList的实现原理
一、LinkedList概述 List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。此类实现 Deque 接口,为 add、poll 提供先转载 2015-06-22 21:44:37 · 451 阅读 · 0 评论 -
Java集合6:ArrayList的实现原理
一、ArrayList概述 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayLi原创 2015-06-22 21:43:56 · 494 阅读 · 0 评论 -
Java集合4:LinkedHashSet的实现原理
一、LinkedHashSet概述 LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Se原创 2015-06-22 21:42:52 · 466 阅读 · 0 评论 -
Java中的String、StringBuilder、StringBuffer对比
在Android/Java开发中,用来处理字符串常用的类有3种: String、StringBuilder、StringBuffer。它们的异同点:1) 都是 final 类, 都不允许被继承;2) String 长度是不可变的, StringBuffer、StringBuilder 长度是可变的;3) StringBuffer 是线程安全的, StringBuilder 不是线程转载 2015-06-25 07:47:05 · 452 阅读 · 0 评论 -
String的不变性
1.基本概念 可变类:当获得这个类的一个实例引用时,可以改变这个实例的内容。 不可变类:不可变类的实例一但创建,其内在成员变量的值就不能被修改。其中String类就是不可变类的经典应用。2.例子 下面我们通过一个例子来解释String的不可变性。[java] view plaincopySt原创 2014-11-30 20:37:04 · 764 阅读 · 0 评论 -
Java GC机制和JVM
概括首先,我们来解释一些基本的术语,比如JDK、JVM、JRE和HotSpotVM。Java 开发工具包 (JDK):一系列工具帮助开发者创建Java应用程序。JDK包含工具编译、运行、打包、分发和监视Java应用程序。Java 虚拟机(JVM):JVM是一个抽象的计算机结构。Java程序根据JVM的特性编写。JVM针对特定于操作系统并且可以将Java指令翻译成底层系统的指原创 2014-12-10 20:46:09 · 519 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影原创 2015-04-03 09:54:00 · 394 阅读 · 0 评论 -
Java集合学习:HashMap的实现原理和工作原理
1.概述原创 2014-11-28 20:06:22 · 649 阅读 · 0 评论 -
Java集合3:LinkedHashMap的实现原理
一、LinkedHashMap概述 LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。 LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别原创 2015-06-22 21:42:21 · 408 阅读 · 0 评论 -
Java集合1:HashMap的实现原理
一、HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。二、HashMap的数据结构 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造原创 2015-06-22 21:39:23 · 419 阅读 · 0 评论 -
Java线程2:用Thread类创建线程
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:03:08 · 500 阅读 · 0 评论 -
Java线程6:慎重使用volatile关键字
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:07:11 · 578 阅读 · 0 评论 -
Java线程1:概述
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 07:59:42 · 480 阅读 · 0 评论 -
Java线程5:join方法的使用
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:06:32 · 436 阅读 · 0 评论 -
Java线程4:线程的生命周期
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:05:43 · 589 阅读 · 0 评论 -
Java线程7:线程数据传递
向线程传递数据的三种方法 在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据。本文就以上原因介绍了几种用于向线程传递数原创 2015-06-21 08:07:56 · 550 阅读 · 0 评论 -
Java线程8:为什么进行数据同步
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:10:25 · 431 阅读 · 0 评论 -
Java线程3:使用Runnable接口创建线程
之前在为知笔记对Java的一些基础知识进行了总结,一直都没有上传到博客来,然后所以会集中的将博客上传。博客主要以总结为主,尽可能的覆盖到多的知识点,为以后的学习找工作做准备。其主要方式是知识面自己进行提取,然后通过转载或者整理之前的博客。希望自己能坚持整理完。原创 2015-06-21 08:04:43 · 538 阅读 · 0 评论 -
Java集合2:HashSet的实现原理
一、HashSet概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、HashSet的实现 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSe原创 2015-06-22 21:40:13 · 443 阅读 · 0 评论 -
sleep和wait的区别
区分1、这两个方法来自不同的类,sleep是Thread类的静态方法,是线程用来控制自身流程的,比如有一个要报时的线程,每一秒打印出一个时间,那可以在print方法前面加上一个sleep让自己每隔一秒执行一次;而wait来自Object类,用于线程间的通信,该方法会使当前拥有该对象锁的进程等待,直到其他线程调用notify方法时再醒来。这个方法主要用于不同线程直接调度的。2、sleep原创 2015-06-13 12:56:35 · 548 阅读 · 0 评论