java基础
向日葵班学霸
努力变强
展开
-
关于单例模式的几种实现方式
单例模式是java中非常常见的一种设计模式,也是java学习中很热门的一个知识模块,今天就和大家一起来了解一下单例模式和单例模式的几种实现方式。 单例模式的定义: 单例模式是指某个类只有一个实例,并且可以向整个系统提供这个可以自行实例化的实例。单例模式的特点是:只有一个实例、必须自己创建这个实例、必须给其他所有对象提供这个实例。单例模式,是为了确保全局对象的唯一性。...原创 2019-05-22 22:17:44 · 366 阅读 · 1 评论 -
Java基础七:关于虚拟机的基本知识(二)
怎样确定一个对象为垃圾?判断一个对象是否是垃圾,分为两种方法:引用计数法和可达性分析算法引用计数法:当有一个地方引用它,则计数器加一;引用失效就减一,当计数器为0时,表示不会被使用,那么就是垃圾。这个算法性能其实很高,但是它有一个致命的缺点就是Java里有相互引用,那么这总算法就没法正确判断是否是垃圾。可达性分析算法:以GC Roots的根对象作为起始节点,根据引用关系向下搜索,搜索所走...原创 2019-12-29 23:30:17 · 180 阅读 · 0 评论 -
Java基础六:关于虚拟机的基本知识(一)
简述JDK、JRE和JVM之间的关系JDK(Java Development Kit),是用于支持Java程序开发的最小环境,基本上Java程序设计语言、Java虚拟机、Java API类库这三部分组成了JDKJRE(Java Runtime Enviroment),是支持Java程序运行的标准环境,Java API类库中的Java SE API自己和Java虚拟机这两部分组成了JREJa...原创 2019-12-29 23:25:33 · 322 阅读 · 0 评论 -
Java基础五:LinkedList
概述LinkedList是基于双向链表的非线性安全的一种线性的数据存储结构,由于这一特性,LinkedList还可以用作栈、队列或双端队列,LinkedList中的元素可以为空、可以重复同时又是有序的。既然是基于双向链表,那么每个元素都存储了指向前一个或者后一个元素的指针域,所以可以通过任意一个元素,通过向前或者向后寻址的方式去查找到前一个元素或者后一个元素。而且,头部和尾部中也通过指针域来...原创 2019-12-01 16:15:40 · 236 阅读 · 0 评论 -
Java基础四:ArrayList
概述ArrayList是一个以动态数组为基础实现的非线程安全的集合,ArrayList的元素可以为空、可以重复,同时又是有序的(读取和存放的顺序一致 )。ArrayList继承AbstractList,实现了List、RandomAccess(可以快速访问)、Cloneable(可以被克隆)、java.io.Serializable(支持序列化),下面是源码片段:初始化ArrayLi...原创 2019-11-23 15:59:52 · 353 阅读 · 0 评论 -
Java基础三:集合概述
集合概述集合新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入集合集合是Java中的一种容器类,它的主要作用是...原创 2019-11-21 23:31:18 · 127 阅读 · 0 评论 -
日期工具类
提供一个日期工具类,获取各种需要的日期,包括昨天今天、本周第一天本月第一天等,方法上都有注释,以下是示例代码:/** * 日期工具类 */public class DateUtils { /** * 获取今天 * @return String * */ public static String getToday(){ re...原创 2019-11-19 11:09:21 · 72 阅读 · 0 评论 -
Java基础二:异常
异常是指阻止当前方法或作用域继续执行的问题,也就是程序执行中发生的不正常行为(逻辑错误和语法错误不是异常)。 在编程中,发现错误的理想实际是在编译阶段,但是在编译期间并不能找出所有的错误,剩下的问题必须在运行期间解决,这就需要Exception来正确处理这个问题。Java中的异常事件可以分为Error和Exception两类(Error和Exception都继承了Throwable类...原创 2019-10-16 00:03:57 · 113 阅读 · 0 评论 -
Java基础一:抽象+封装、继承、多态
Java是一门面向对象编程的语言,就是常见的OOP(Object-oriented Programming),不止Java,其他的很多编程语言都是使用的OOP这种编程思想。 抽象:Java提供了抽象机制。抽象就是指程序员把需要解决的问题视为一个对象,并抽取待解决问题的任何概念化构件(人、猫、狗),并表示为程序中的对象。这种抽象的过程,把我们需要解决的问题,变得更加形象和简单。 另外...原创 2019-10-15 00:05:27 · 210 阅读 · 0 评论 -
JDK1.8以后的hashmap为什么在链表长度为8的时候变为红黑树
在JDK1.8以及以后的版本中,hashmap的底层结构,由原来单纯的的数组+链表,更改为链表长度为8时,开始由链表转换为红黑树,为何大刀阔斧的对hashmap采取这个改变呢,以及为何链表长度为8才转变为红黑树呢,下面结合源码一起来分析一下。我们都知道,链表的时间复杂度是O(n),红黑树的时间复杂度O(logn),很显然,红黑树的复杂度是优于链表的,既然这么棒,那为什么hashmap为什么...原创 2019-08-07 22:43:32 · 24637 阅读 · 43 评论 -
java中==和equals的区别
在初期学习java时,肯定会遇到==和equals的区别这一知识点,其实很简单,一句话:equals:比较字面值;==:不止比较字面值,还比较对象的内存地址。先来一段代码:@Testpublic void test(){ String str1="abc"; String str2="abc"; System.out.println(str1==str2);...原创 2019-08-02 23:02:52 · 157 阅读 · 0 评论