随笔分类 - JavaSE
摘要:大家好,我是老三。 这节我们来看一个非常重要的设计模式——代理模式,尽管我们工作中可能很少用到,但它是很多框架重要功能的基石,肘,我们开始吧。 引言 节假日的地铁站,你是否见过有人掏出电脑,原地输出,原来是群里被疯狂@…… 用户提问题,客服@我们解决,可能很多开发同学都经历过这样的场景。 用户找到客
阅读全文
摘要:Java集合三十问,深入全面,图文并茂,看完,保证你比面试官更懂集合!
阅读全文
摘要:大家好,我是老三,最近在刷算法,发现有些api记得不熟,所以整理了一波,如果你也在刷题,赶紧收藏吧! 集合 在刷题中,各种数据结构是我们常常用到的,例如栈实现迭代、哈希存储键值对等等,我们来看看常用集合和相关api。 类/接口 描述 方法 String 字符串 charAt toCharArray
阅读全文
摘要:随便打开一个招聘网站,看看对高级Java工程师的技能要求。 抛开其它的经验能力等等,单纯从技术,或者说知识上来讲,可以发现一些共通的地方。 Java基础 计算机基础 数据库,SQL/NoSQL 常用开源框架 分布式/微服务 中间件,缓存、消息中间件 书籍是获取知识的最好来源之一。技术书籍浩如烟海,市
阅读全文
摘要:JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。 先上图: 1、JVM基本概念 1.1、JVM是什么 JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。 JVM具备着计算机的基本运算方式,它主要负责把 Jav
阅读全文
摘要:话不多说,先上图。 1、基本概念 欲说线程,必先说进程。 进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 操作系统在分配资源时是把资源分配给进程的, 但是 CPU 资源比较特
阅读全文
摘要:@ Eclipse是很多Java开发者的第一个开发工具,尽管开源的Eclipse在一后起之秀的对比下,显得有些颓势,但是,Eclipse有着丰富的插件支持。选择合适的插件,Eclipse表示:老夫也能飞。 Devstyle 🤞插件地址:Devstyle ✨ 简介: 这是一个流行的用于外观的Ecli
阅读全文
摘要:@ 本文基于jdk1.8 HashMap采用 key/value 存储结构,每个key对应唯一的value。 在jdk1.7之前,HashMap 的内部存储结构是数组+链表。 在jdk1.8中 HashMap的存储结构是 数组+链表+红黑树,提高了效率。 一、红黑树 在阅读HashMap源码之前,有
阅读全文
摘要:树结构是一类重要的非线性数据结构。直观来看,树是以分支关系定义的层次结构。树结构在客观世界广泛存在,如人类社会的族谱和各种社会组织机构都可用树来形象表示。 树在计算机领域中也得到广泛应用,尤以二叉树最为常用。如在操作系统中,用树来表示文件目录的组织结构。在编译系统中,用树来表示源程序的语法结构。在数
阅读全文
摘要:在 Java String类源码阅读笔记 里学习了String类的源码,StringBuilder、StringBuffer是经常拿来和String类做对比的两个类,可谓是“爱恨纠缠” ,这里我们继续学习这两个类的源码。 本文基于jdk1.8。 StringBuilder/StringBuffer继
阅读全文
摘要:@ 本文基于jdk1.8 String类可谓是我们开发中使用最多的一个类了。对于它的了解,仅仅限于API的了解是不够的,必须对它的源码进行一定的学习。 一、前置 String类是Java中非常特别的一个类,虽然不是基本数据类型,但是通过一些处理,又在引用数据类型里比较特别,在学习之前,先了解一些JV
阅读全文
摘要:@ 准备 LinkedList是基于双向链表数据结构实现的Java集合(jdk1.8以前基于双向循环链表),在阅读源码之前,有必要简单了解一下链表。 先了解一下链表的概念:链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循
阅读全文
摘要:@ 1、线性表的概念 线性表是最常见也是最简单的一种数据结构。简言之, 线性表是n个数据元素的有限序列。 其一般描述为: A={a1,a2,……an) 一个数据元素通常包含多个数据项, 此时每个数据元素称为记录, 含有大量的记录的线性表称为文件。 例如十二生肖,就是一个线性表: 在稍微复杂的线性表中
阅读全文
摘要:简介 ArrayList是开发中使用比较多的集合,它不是线程安全的,CopyOnWriteArrayList就是线程安全版本的ArrayList。CopyOnWriteArrayList同样是通过数组实现,这个类的名字叫“CopyOnWrite ”,它是在写入的时候拷贝数组,对副本进行操作。 原理
阅读全文
摘要:简介 ArrayList是基于数组实现的一种列表。 ArrayList继承体系如下: 图一:ArrayList继承体系 ArrayList实现了List, RandomAccess, Cloneable, java.io.Serializable等接口。 ArrayList实现了List,提供了基础
阅读全文
摘要:@ 1、什么是流? Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不相关的东西。 Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合
阅读全文
摘要:译 原文作者:Jakob Jenkov 原文链接:http://tutorials.jenkov.com/java/lambda-expressions.html @ Java Lambda表达式是Java8中的新特性。Java lambda表达式是Java进入函数式编程的第一步。因此,Java l
阅读全文
摘要:@ 写博客哪有刷逼乎有意思 1 写博客哪有刷逼乎有意思 2 写博客哪有刷逼乎有意思 3 类的加载、 连接和初始化 系统可能在第一次使用某个类时加载该类, 也可能采用预加载机制来加载某个类。 JVM 和类 当调用 java 命令运行某个 Java 程序时, 该命令将会启动一个 Java 虚拟机进程,
阅读全文
摘要:@ 网络基础 计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。 那什么是互联网呢?互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。 对某个特定的计算机网络来说,它可能使用网
阅读全文
摘要:@ Java 的 IO 通过 java.io 包下的类和接口来支持, 在 java.io 包下主要包括输入、 输出两种 10 流, 每种输入、 输出流又可分为字节流和字符流两大类。 其中字节流以字节为单位来处理输入、 输出操作, 而字符流则以字符来处理输入、 输出操作。 File 类 Java的标准
阅读全文