JAVA
ROGEN-秀发
JAVA、linux、hadoop、hbase、hive、spark、mahout
展开
-
JAVA基础--HashSet 和 HashMap
总体介绍之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。HashMap实现了Map接口,允许放入null元素,除该类未实现同步外,其余跟Hashtable大致相同,跟TreeMap不同,该容器转载 2016-09-16 18:54:59 · 356 阅读 · 0 评论 -
JAVA基础--LinkedHashSet 和 LinkedHashMap
总体介绍如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事。LinkedHashSet 和 LinkedHashMap 在Java里也有着相同的实现,前者仅仅是对后者做了一层包装,也就是说LinkedHashSet里面有一个LinkedHas转载 2016-09-16 18:58:53 · 462 阅读 · 0 评论 -
JAVA基础--多线程实践
Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:Tread thread = new Thread();执行该线程可以调用该线程的start()方法:thread.start();在上面的例子中,我们并没有为线程编转载 2016-09-16 19:04:44 · 280 阅读 · 0 评论 -
JAVA基础--Synchronized
在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者、写相同的数据,访问相同的文件等等。对于这种情况如果我们不加以控制,是非常容易导致错误的。在java中,为了解决这个问题,引入临界区概念。所谓临界区是指一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问。在java中为了实现临界区提供了同步机制。当一个线程试图访问一个临界区时,他将使用一种同步机制来查转载 2016-09-16 19:08:02 · 283 阅读 · 0 评论 -
JAVA应用--读取文件
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileN转载 2016-09-16 23:37:11 · 240 阅读 · 0 评论 -
JAVA基础--接口和抽象类
抽象是面向对象设计的几大特点之一,在Java中的体现则是抽象类和接口。这两者十分的相似,想很多初学者甚至接触Java几年的人也很难分清他们。今天笔者在查看集合类相关的代码的时候,发现了有部分是接口如List、Map等,有部分是抽象类如AbstractList、AbstractSet等,由于对两者不是十分的清楚,比较迷惑。所以今天笔者在本文则主要介绍下这两者的区别。抽象类抽象转载 2016-09-16 23:42:25 · 290 阅读 · 0 评论 -
JAVA基础--十大常见异常
NO.1 java.lang.NullPointerException 这个异常大家肯定都经常遇到,异常的解释是 “程序遇上了空指针 “,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初转载 2016-09-17 12:00:08 · 402 阅读 · 0 评论 -
JAVA线程锁及部分特性
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。一、分类1、自旋锁2、自旋锁的其他种类3、阻塞锁4、可重入锁5、读写锁6、互斥锁7、悲观锁8、乐观锁9、公平锁10、非公平锁11、偏向锁12、对象锁13、线程锁14、锁粗化15、轻量级锁转载 2016-09-10 16:43:42 · 326 阅读 · 0 评论 -
JAVA基础--ArrayList
总体介绍ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,转载 2016-09-16 18:51:35 · 259 阅读 · 0 评论 -
JAVA基础--LinkedList
总体介绍LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是,Java里根本没有一个叫做Qu转载 2016-09-16 18:49:58 · 261 阅读 · 0 评论 -
JAVA基础--JVM原理(二)
这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方转载 2016-09-18 22:48:58 · 309 阅读 · 0 评论 -
JAVA基础--JVM原理(一)
一、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main转载 2016-09-18 22:46:25 · 305 阅读 · 0 评论 -
JAVA基础--泛型的好处
java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指转载 2016-09-18 22:40:36 · 384 阅读 · 0 评论 -
JAVA基础--接口&抽象类
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类转载 2016-09-18 22:28:51 · 328 阅读 · 0 评论 -
JAVA基础--类加载&对象创建过程
类加载过程:1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区2, 在.class加载到方法区时,会分为两部分加载:先加载非静态内容,再加载静态内容3, 加载非静态内容:把.class中的所有非静态内容加载到方法区下的非静态区域内4, 加载静态内容:4.1、把.class中的所有静态转载 2016-09-18 22:25:56 · 317 阅读 · 0 评论 -
JAVA基础--I/O
一.理论准备流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行,设备可以是文件、网络、内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序(小马哥说的是机器)为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流,可以将流想象成一个“水流管道”(很多资料都这么讲的),自然就出现了方向的概念。流把I/转载 2016-09-18 22:09:39 · 374 阅读 · 2 评论 -
JAVA基础--JAVA的四种引用
JAVA对象的状态转换:1、强引用程序创建一个对象,并把这个对象赋给一个引用变量。被引用的Java对象绝不会被垃圾回收机制回收。2、软引用 (SoftReference)系统内存足够时,不会被回收;系统内存不足时,被回收。 通过SoftReference被实现。3、弱引用 (WeakReference)当系统垃圾回收机制运行时,不管系统内存是否足够,都会原创 2016-09-16 13:20:22 · 304 阅读 · 0 评论 -
JAVA基础--垃圾回收机制及算法
一、垃圾回收机制的作用主要有两个作用: 1、跟踪并监控每个Java对象,当某个对象处于不可达状态时,回收该对象所占用的内存。2、清理内存分配、回收过程中产生的内存碎片。二、那些对象可以被回收只要该对象还被引用(这里应该指强引用),就不能被回收。当一个对象没被引用时,GC就会尝试回收它。那么,又怎么判断一个对象是否存活。这里说两种方法:1、引用计数算法给对象中添加一原创 2016-09-16 13:35:49 · 300 阅读 · 0 评论 -
JAVA基础--集合类详解及问题
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等!转载 2016-09-16 18:40:11 · 299 阅读 · 0 评论 -
JAVA基础--JMM(二)
深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来转载 2016-09-18 22:58:00 · 644 阅读 · 0 评论