- 博客(23)
- 资源 (7)
- 收藏
- 关注
原创 Java IO入门
本文主要对Java IO相关知识点做了结构性梳理,包括了Java IO的作用,数据源File类,输入流,输出流,字节流,字符流,以及缓冲流,不同场景下的更细化的流操作类型,同时用了一个文件拷贝代码简单地说明了主要的流操作
2019-11-24 22:28:55
548
原创 一起来学Java注解(Annotation)
本文只是抛砖引玉地讲解了注解的基本概念,注解的作用,几种元注解的功用以及使用方法,并通过一个简单的例子讲解了一下注解的处理,并不全面,文中通过Field讲解了注解的基本Api,但注解还可以修饰类、构造器、方法等,也有相对应的注解处理方法,大家可自行查一下API手册相关内容,大同小异,有不对之处,请批评指正,望共同进步,谢谢!
2019-10-05 17:08:28
6087
7
原创 Intellij IDEA在maven项目中添加外部Jar包运行
Intellij IDEA在maven项目中添加外部Jar包运行,我们知道Intellij IDEA是非常好用的Java语言开发的集成环境。提供了非常多实用的功能,包括了智能代码助手、代码自动提示、代码重构、各种插件等,当然也集成了maven,正常情况下,我们创建maven项目时,相关的jar包会自动导入,当然我们也可以通过IDEA右侧的maven工具来实现jar包的加载,但我们在实际开发过程中,可能会使用外部jar包的情况,如实现与第三方公司的系统对接时,需要使用到他公司提供的jar包,这个时候在mave
2019-09-10 23:07:50
5003
原创 Java反射Reflect的使用详解
本文对反射的定义,反射使用过程中重要的、常用的类和方法进行了讲解,包括Class类,Constructor类,Field类,Method类的说明及使用。反射机制允许在运行时判断任意一个对象所属的类、构造任意一个类的对象、判断任意一个类所具有的成员变量和方法、调用任意一个对象的方法。大大提高了系统的灵活性和扩展性,不过凡事都有两面性,反射破坏了Java封装的特性,相对来说不安全,需要根据场景酌情考虑
2019-08-18 17:53:34
3084
原创 Java泛型使用的简单介绍
泛型在java中可以说很常用,我们前面提到的集合类,如ArrayList,HashSet,以及Map都使用到了泛型,泛型也是也是我们再进行一些组件封装经常用到的,本文主要介绍了泛型基本概念,使用泛型的好处,泛型类、接口、方法、通配符的简单介绍以及使用方法,最后泛型一般和反射集合使用,通过泛型可以进行类型的灵活传递,通过反射可获取到实体以及类的数据信息,从而实现一些框架、组件的封装
2019-08-10 17:33:12
3778
原创 聊一聊Java的枚举enum
枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,本文主要介绍了枚举enum主要特点,定义,无参构造器,有参构造器,枚举的常用方法举例以及主要的应用场景,若有不对之处,请批评指正,望共同进步,谢谢!
2019-08-01 15:42:50
5555
原创 Java集合 HashSet的原理及常用方法
HashSet是Java集合Set的一个实现类,Set是一个接口,其实现类除HashSet之外,还有TreeSet,并继承了Collection,HashSet集合很常用,同时也是程序员面试时经常会被问到的知识点,本文主要介绍了HashSet的原理以及主要方法,同时简单介绍了LinkedHashSet和TreeSet
2019-07-28 09:30:05
2690
原创 对比分析HashMap、LinkedHashMap、TreeMap
前面花了4章对HashMap、LinkedHashMap以及TreeMap的原理实现进行了讲解,本章对它们进行简单的对比分析,从线程安全、初始容量、存储结构、顺序规则、存储特点、插入效率、遍历效率、使用场景及举例。另外:前面提到的插入效率和遍历效率的高、较高都是在大数量的情况下,当数据量少的情况下基本没有区别
2019-07-26 12:38:40
2221
原创 TreeMap原理实现及常用方法
本文详细介绍了TreeMap的基本特点,并对其底层数据结构红黑树进行了回顾,同时讲述了其自动排序的原理,并从源码的角度结合红黑树图形对put方法、get方法、remove方法进行了讲解,最后简单提了一下遍历操作,若有不对之处,请批评指正,望共同进步,谢谢!
2019-07-21 16:32:30
3579
原创 关于红黑树(R-B tree)原理,看这篇如何
本文主要介绍了红黑树的相关原理,首先红黑树的基础二叉搜索树,我们先简单说了一下二叉搜索树,并且讲了一下搜索的流程,然后就针对红黑树的6大规则特点,红黑树的插入操作,删除操作,都使用了大量的图形来加以说明,技术都是练出来的,有时候很多似是而非的地方,当动笔去写的时候,其实很好理解。红黑树的使用非常广泛,如TreeMap和TreeSet都是基于红黑树实现的,而Jdk8中HashMap当链表长度大于8时也会转化为红黑树,红黑树比较复杂,本人也是还在学习过程中,如果有不对的地方请批评指正,望共同进步谢谢。
2019-07-17 19:43:44
3839
原创 LinkedHashMap如何保证顺序性
LinkedHashMap使用的也较为频繁,它基于HashMap,用于HashMap的特点,又增加了双链表的结构,从而保证了顺序性,本文主要从源码的角度分析其如何保证顺序性,accessOrder的解释,以及常用方法的阐释
2019-07-13 15:46:44
7873
原创 HashMap原理(二) 扩容机制及存取原理
本文在上一章基本概念和底层结构的基础上,从源码的角度讲解了扩容机制以及存取原理,主要分析了put方法和get方法,put方法的核心为hash(),putVal(),resize(),get方法的核心为getNode()
2019-07-08 10:30:25
3963
2
原创 HashMap原理(一) 概念和底层架构
本文主要讲解了HashMap中的一些主要概念,同时对其底层数据结构从源码的角度进行了分析,table是一个数据和链表的复合结构,size记录了key-value对的数量,capacity为HashMap的容量,其容量规则为2的幂次,loadFactor为装载因此,衡量满的程度,而threshold为临界值,当超出临界值时就会扩容。
2019-07-06 15:47:45
4608
原创 List集合总结,对比分析ArrayList,Vector,LinkedList
本文对List集合进行了总结,包括类结构图,List是一个接口,继承了Collection,同时Collection继承了Iterable,表明List的实现类都是可用迭代遍历的,ArrayList和Vector对比分析,ArrayList和LinkedList的对比分析
2019-06-30 11:16:06
2381
原创 Java集合 LinkedList的原理及使用
本文基于java8从定义一个LinkList入手,逐步展开,从源码角度分析LinkedList双向链表的结构是如何构建的,同时针对其常用方法进行分析,包括get,add,remove以及常用的遍历方法,并简单的说明了它的插入、删除操作为何相对高效,而取值操作性能相对较低
2019-06-29 17:30:00
3071
原创 再说Java集合,subList之于ArrayList
本文续接上一章ArrayList原理及使用,对ArrayList中的常用方法subList进行了剖析,从源码的角度对通过subList方法得到的集合和原集合有何关系,有何不同点,从而避免工作中遇到各种坑
2019-06-29 08:31:33
3777
原创 Java集合 ArrayList原理及使用
本文主要讲解了ArrayList原理,从底层数组着手,讲解了ArrayList定义时到底发生了什么,再添加元素时,扩容规则如何,删除元素时,数组的元素的移动方式以及一些常用方法的用途
2019-06-26 15:14:49
4316
原创 Java基础(六) static五大应用场景
static是java中很常用的一个关键字,使用场景也很多,本文主要介绍了它的五种用法,static变量,static方法,static代码块,static内部类,static包内导入,在一定环境下使用,可以提高程序的运行性能,优化程序的结构
2019-06-24 22:56:56
7970
3
原创 Java基础(二) 基本类型数据类型、包装类及自动拆装箱
J2SE入门(二) JAVA基本类型数据类型、包装类及自动拆装箱我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long, Float, Double, Character, Boolean。关于基本数据类型的介绍可参考J2SE入门(一) 八大基本数据...
2019-06-24 22:55:46
4547
2
原创 Java基础(四) StringBuffer、StringBuilder原理浅析
本文StringBuffer与StringBuilder的创建,append方法的原理讲解,对比了String、StringBuffer与StringBuilder异同
2019-06-24 22:52:20
10650
7
原创 Java基础(五) final关键字浅析
本文主要对final关键字的原理进行了讲解,同时对其基本用法进行了说明,包括final修饰的类,final修饰的方法和final修饰的变量,另外文中String变量通过==比较只是为了更加清晰的说明final原理,实际应用场景比较的时候还是用equals()方法,final也经常和static配合使用作为“全局常量”
2019-06-23 09:22:47
9617
4
原创 Java基础(三) String深度解析
本文从String的不可变性,String创建时字面量和String对象的不同,字符串字面量常量池,字符串的内存结构,常用的String相关方法的描述
2019-06-22 10:50:45
5234
原创 Java基础(一) 八大基本数据类型
J2SE入门(一) 八大基本数据类型自从Java发布以来,基本数据类型就是Java语言的一部分,分别是***byte, short, int, long, char, float, double, boolean***.其中:整型:byte, short, int, long字符型:char浮点型:float, double布尔型:boolean在详细介绍之前,先科普一下,Java...
2019-06-16 23:28:46
6594
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人