zoukankan      html  css  js  c++  java
  • Java博客大汇总

    目录介绍

    • 01.Java基础[30篇]
    • 02.面向对象[15篇]
    • 03.数据结构[27篇]
    • 04.IO流知识[11篇]
    • 05.线程进程[9篇]
    • 06.虚拟机[12篇]
    • 07.类的加载[7篇]
    • 08.反射原理[16篇]
    • 09.Java并发[27篇]
    • 10.Java异常[11篇]
    • 11.枚举与注解[10篇]
    • 12.设计模式[8篇]
    • 13.Java深入[8篇]

    好消息

    • 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢!
    • 链接地址:https://github.com/yangchong211/YCBlogs
    • 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!

    01.Java基础

    • 01.Java 关键字汇总
      • 常见的关键字,重要关键字说明,持续汇总中。
    • 02.Java基础知识
      • 知识点:基础知识点总结,标识符规则,进制,字符编码,运算符,方法,内存分配以及栈和堆
    • 03.基本数据类型
      • 基本类型有哪些,基本类型转换,字面值有哪些类型,表达式中的自动类型提升
    • 04.常见的API方法
      • 知识点:常用api
    • 06.int和Integer深入分析
      • 知识点:Integer的值缓存的原理,理解自动装箱和拆箱,如何验证int类型是否线程安全,Java 原始数据类型和引用类型局限性,原始类型线程安全问题等等
    • 07.基础类型缓存池概念
      • new Integer(123) 与 Integer.valueOf(123) 的区别,基本类型对应的缓冲池
    • 09.Java运算符
      • 有哪些运算符,算术运算符,位运算符,关系运算符,逻辑运算符
    • 10.访问权限控制
      • 访问控制符有哪些,类访问控制符,类成员访问控制符
    • 12.static深入理解
      • static变量存储位置,用static静态变量潜在性问题,静态变量的生命周期,静态变量何时销毁,静态引用的对象回收
    • 13.finial深入理解
      • final关键字概述,final,finally,finalize之间的比较
    • 14.基本数据类型存储位置
      • 局部变量存储位置,成员变量存储位置,静态变量存储位置
    • 20.泛型基础
      • 泛型的概述,引入泛型的目的,泛型初步探索,泛型的格式,泛型的好处
    • 21.泛型的使用
      • 泛型类的概述及使用,泛型接口的概述和使用,泛型高级之通配符,泛型只能使用引用类型
    • 22.泛型可读性
      • 编译器类型检查,可读性和灵活性,泛型方法和泛型类的比较
    • 23.泛型擦除
      • 什么是泛型擦除,泛型擦除案例
    • 24.泛型与反射
      • 通过反射获得泛型的实际类型参数
    • 25.泛型的限制
      • 不能实例化类型参数,对静态成员的限制,对泛型数组的限制,对泛型异常的限制
    • 26.String类深入理解
      • String的创建机理,StringBuffer/StringBuilder,String类的考点分析,String不可变的好处
    • 30.switch对整型支持
      • Switch支持哪些类型,switch对整型支持,switch对字符串支持,switch对字符型支持

    02.面向对象

    • 01.面向对象基础
      • 面向对象的思想【思想,特征】,类和对象及其应用,对象的内存图,成员变量和局部变量区别等等
    • 02.Java封装
      • 什么是封装,封装好处分析,封装的原则,封装的案例展示
    • 03.Java继承
      • 继承简单概述,继承格式,继承好处和弊端,继承的注意事项,继承中成员变量的关系,不支持多继承影响
    • 04.Java多态
      • 什么是多态,多态的实现条件,多态实现方式,多态好处和弊端
    • 05.Java接口
      • 什么是接口,接口特点,Marker Interface,Java 8接口变化,接口如何被加载
    • 06.Java抽象类
      • 为何需要抽象类,抽象类特点,抽象类可以new吗,抽象类设计注意要点,抽象类名作为形参
    • 07.抽象类和接口
      • 理解抽象和接口概念,抽象和接口语法上不同,抽象和接口编程角度不同,抽象类与接口的区别
    • 08.Java内部类
      • Java中的内部类分类,内部类概述和访问特点,内部类和外部类联系,匿名内部类介绍,成员内部类介绍,为什么内部类调用的外部变量必须是final修饰的?
    • 08.形参和实参
      • 什么是形参和实参,类名作为形式参数,抽象类名作为形式参数,接口名作为形式参数
    • 09.Java构造方法
      • 构造方法概述和作用,构造方法注意事项,看一个构造方法案例,构造方法加载机制
    • 10.方法重载和覆盖
      • 什么是方法重写,什么是方法重载,父类的静态方法能否被子类重写
    • 11.包和权限修饰符
      • import关键字的概述和使用,四种权限修饰符的测试,类及其组成所使用的常见修饰符
    • 12.代码块深入理解
      • 待完善
    • 13.Java绑定机制
      • 什么是绑定,静态和动态绑定,动态绑定编译原理,动态绑定运行原理,多态的划分情况
    • 14.值传递和引用传递
      • 基本类型和引用类型,什么是值传递,什么是引用传递,通过案例分析
    • 15.面向对象原则
      • 三大特点,六大原则,实践案例分析

    03.数据结构

    • 01.常见数据结构
      • 常见的数据类型,数组,集合,栈,堆,链表,图,队列,树。主要是罗列开发中比较常见的数据类型……
    • 02.集合基础介绍
      • 集合概括与总结,集合的遍历,迭代器的原理,List集合如何选择合适的
    • 03.List集合
      • ArrayList,Vector,LinkedList等集合的特点与区别。ArrayList的扩容消耗,List怎么实现排序?System.arraycopy()和Arrays.copyOf()方法区别与联系,list集合读写机制和读写效率,ArrayList核心源代码分析等等
    • 04.Set集合
      • HashSet,LinkedHashSet,TreeSet等集合特点和区别
    • 05.Map集合
      • HashMap,LinkedHashMap,TreeMap等集合案例分享和基础内容介绍
    • 06.ArrayList1
      • ArrayList由来介绍,ArrayList的特点,ArrayList如何使用,ArrayList结构图,ArrayList类声明
    • 07.ArrayList2
      • ArrayList内部结构,构造方法,add(E e)方法,set和get函数,remove(Object o),ArrayList扩容消耗
    • 08.ArrayList3
      • ArrayList的序列化,ArrayList的clone,System.arraycopy()和Arrays.copyOf(),ArrayList的Fail-Fast,List怎么实现排序
    • 09.LinkedList1
      • LinkedList简介,内部结构分析,LinkedList类声明,几个常用的方法,list效率比较
    • 10.LinkedList2
      • 构造方法和成员变量,add方法,get方法,indexOf方法,remove()方法
    • 11.HashMap1
      • HashMap简单使用 ,查找数据,遍历数据,HashMap特点,HashMap底层实现
    • 12.HashMap2
      • HashMap内部结构,构造函数,put(K key, V value),get(Object key),resize()扩容,Hash函数实现
    • 13.HashMap3
      • 容量和装载因子,HashTable和HashMap,hashCode和equal,Key为何需要不可变,HashMap为啥要扩容,HashMap的table下标
    • 14.HashMap4
      • HashMap线程问题,测试HashMap效率,HashMap性能分析
    • 15.TreeMap1
      • TreeMap特点,何时用TreeMap,TreeMap简单使用,案例训练
    • 16.TreeMap2
      • 构造函数和成员变量,put插入函数源码,get获取函数源码,如何保证有序性
    • 17.ConcurrentHashMap1
      • HashMap使用的弊端,ConcurrentHashMap底层知识点
    • 18.ConcurrentHashMap2
      • ConcurrentHashMap内部结构,table初始化initTable(),put插入数据操作
    • 20.LinkedHashMap1
      • LinkedHashMap使用,LinkedHashMap特点,为何有LinkedHashMap,节点类说明介绍
    • 21.LinkedHashMap2
      • 成员变量分析,构造函数分析,put插入元素分析,get访问元素,移除元素源码分析
    • 22.HashSet
      • HashSet特点,HashSet如何去重,HashSet源码分析
    • 23.LinkedHashSet
      • LinkedHashSet的特点,LinkedHashSet源码分析
    • 24.TreeSet
      • TreeSet特点说明,TreeSet的案例,TreeSet原理,TreeSet源码分析
    • 27.CopyOnWriteArrayList
      • 什么是CopyOnWriteArrayList,它与ArrayList有何不同?CopyOnWriteArrayList读写分离

    04.IO流知识

    • 01.IO流基础介绍
      • IO流概述及其前奏,IO流整体学习知识体系有哪些东西,IO流的概念,输入流和输出流
    • 02.IO流字符与字节
      • 什么是字节,什么是字符,unicode编码,如何获取字节,字节和字符区别,String中编解码问题
    • 03.IO流之File类
      • File类介绍,File类构造函数,创建与删除方法,File判断方法,File获取方法
    • 05.IO流体系图
      • IO流体系图,按照流向进行划分图,按操作方式分类结构图,InputStream字节输入流,OutputStream字节输出流,Reader字符输入流,Writer字符输出流
    • 06.IO字节流案例
      • 什么是字节流,字节流复制文本文件,字节流复制MP3,字节流四种方式复制MP3效率比较
    • 07.IO字符流案例
      • 字符流OutputStreamWriter,字符流InputStreamReader,字符流读写方式,字符流复制文本文件,复制单级文件夹,复制指定目录下指定后缀名的文件并修改名称
    • 08.Buffer高效字节流
      • 什么是Buffer缓冲流,字节缓冲流BufferedOutputStream,字节缓冲流BufferedInputStream
    • 09.Buffer高效字符流
      • 什么是高效字符流,字符缓冲流的特殊功能,高效字符流复制文本文件,集合数据存储到文本文件,文本数据存储到集合中,随机获取文本中姓名
    • 10.Java深拷贝和浅拷贝
      • 如何实现对象克隆?克隆有哪些方式?深克隆和浅克隆有何区别?深克隆和浅克隆分别说的是什么意思?浅拷贝会创建新的对象吗?对于基本类型拷贝的是什么?怎么样实现浅拷贝,浅拷贝前后对象地址值会一样吗?
    • 11.RandomAccessFile
      • RandomAccessFile简介,RandomAccessFile构造函数,RandomAccessFile使用

    05.线程进程

    • 01.线程基础知识
      • 什么是线程,多线程意义,并行和并发,JVM启动线程
    • 02.进程基础知识
      • 什么是进程,多进程的意义,进程状态有哪些,进程状态转换,进程通信,进程死锁,进程调度算法
    • 03.线程和进程
      • 进程与线程概念区别,进程与线程调度区别,进程与线程并发行区别,进程与线程拥有资源对比,进程与线程系统开销对比
    • 04.Thread创建
      • 创建线程的方式,继承Thread类创建线程类,通过Runnable接口创建线程类,通过Callable和Future创建线程,三种创建线程区别
    • 05.Thread控制
      • 线程执行流程,线程调度,sleep休眠线程,join加入线程,yield礼让线程, setDaemon守护线程,stop中断线程,start开启线程
    • 05.Thread问题
      • start和run区别,为何不能重复start,wait和sleep方法,run方法的作用,Runnable和Callable
    • 06.Thread关闭
      • 结束Thread线程的几种方法,使用退出标志终止线程,使用interrupt()方法终止线程,使用stop方法终止线程
    • 07.线程通信方式
      • 线程间通信的两种方式 ,wait()/notify(),notify()方法使用注意事项,Condition实现等待/通知
    • 08.生产者消费者
      • 生产者消费者模型发生场景,一生产与一消费案例,多生产与多消费案例,会遇到哪些关键问题,如何解决关键问题
    • 09.Thread中join
      • Thread的join()的含义是等待该线程终止,即将挂起调用线程的执行,直到被调用的对象完成它的执行。join方法实现原理分析。

    06.虚拟机

    • 01.Java内存分配机制
      • JVM内存管理图,JVM内存分配的几种策略,内存泄漏简单介绍
    • 02.Java垃圾回收机制
      • GC回收机制,GC过程与对象的引用类型关系,检测垃圾的算法,处理垃圾的算法,分代收集算法(当今最常用的方法),将对象按其生命周期划分
    • 03.Java对象的访问定位方式
      • Java对象的访问定位方式,通过句柄访问方式,通过直接指针访问方式,这两种方式区别和优势
    • 04.Java对象销毁分析
      • Java对象销毁分析,JVM内存分配与回收,判断对象是否死亡,不可达的对象并非“非死不可”,如何判断一个常量是废弃常量,如何判断一个类是无用的类,GC回收算法详解
    • 06.Java内存分配案例
      • JVM加载类过程,对构造方法赋值,通过对象调用方法
    • 07.Java内存分配机制
      • JVM内存分配的几种策略,堆和栈的区别有哪些
    • 08.GC垃圾回收机制
      • JVM是怎么分配内存的,识别哪些内存是垃圾需要回收,最后才是用什么方式回收,栈的内存管理是顺序分配的,而且定长,不存在内存回收问题;而堆 则是为java对象的实例随机分配内存,不定长度,所以存在内存分配和回收的问题
    • 09.GC回收什么
      • 理解内存分配,回收那些对象,Java对象引用
    • 10.GC检测垃圾算法
      • 检测垃圾算法有哪些,什么是引用计数法,什么是可达性分析算法
    • 11.GC处理垃圾算法
      • 处理垃圾的算法有哪些,标记-清除(Mark-sweep),复制(Copying),标记-整理(Mark-Compact),分代收集算法(当今最常用的方法)
    • 12.GC对对象划分
      • 如何对对象划分,年轻代对象说明,年老代对象说明,GC中对象的六种可触及状态

    07.类的加载

    • 01.Java类加载器
      • 类加载器分类
    • 02.类的加载机制
      • Java对象的创建过程 ,Java内存区域 ,Java对象的访问定位方式 ,Java对象销毁分析 ,类的加载过程。类信息,常量,变量,方法分别放到内存中哪里?本地方法栈和Java虚拟机栈有什么区别?本地方法栈在什么情况下会造成OOM?Java对象访问定位方式有哪些?主要有什么区别?为什么说使用指针效率更高?
    • 04.类的生命周期
      • 什么是类的生命周期?类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。都做了些什么?
    • 05.双亲委派机制
      • 详细介绍一下什么是双亲委派机制?它的工作流程是什么?为何说具有不同优先级?代码实现双亲委派模型?
    • 06.Java对象的创建
      • 对象的创建的条件有哪些?
    • 07.类执行测试
      • 类在加载过程中的流程

    08.反射原理

    • 01.反射机制介绍
      • Java反射机制定义,反射的应用场景,Class与.class文档,反射之动态交互,使用反射的初衷
    • 02.反射查看类信息
      • 反射查看类信息,获得Class对象 ,Class.forName(),类.class, 对象.getClass()
    • 03.获取对象信息
      • 获取class对象的信息,获取对象的变量,获取class对象的方法,获取class对象的构造函数,获取对象信息案例
    • 04.反射实际使用
      • 反射生成类实例对象,反射调用类的方法,反射访问成员变量值
    • 05.利用Class建立对象
      • 建立实例对象
    • 06.操作成员方法
      • 反射调用公有方法,反射调用私有方法
    • 08.反射知识点深入
      • setAccessible暴力访问,invoke()方法执行说明
    • 09.泛型和反射
      • 泛型和Class类,使用反射来获取泛型信息,泛型和反射案例
    • 12.反射攻击单利
      • 如何防止反射序列化攻击单例
    • 13.反射性能研究
      • 通过分析案例来看一下用反射和不用反射的执行速度
    • 14.反射的利弊
      • 反射包括了一些动态类型,所以JVM无法对这些代码进行优化。反射可能会导致意料之外的副作用--代码有功能上的错误,降低可移植性。
    • 15.动态代理
      • 代理类是在运行时生成的。也就是说 Java 编译完之后并没有实际的 class 文件,而是在运行时动态生成的类字节码,并加载到JVM中。
    • 16.反射与代理
      • 主要涉及两个类,这两个类都是java.lang.reflect包下的类,内部主要通过反射来实现的。

    09.Java并发

    • 02.多线程并发案例
      • 继承Thread类的方式卖电影票案例,实现Runnable接口的方式卖电影票,买电影票出现了同票和负数票的原因分析,线程安全问题的产生原因分析,同步代码块的方式解决线程安全问题
    • 03.多线程三要素
      • 什么是线程安全,线程安全级别,多线程三要素,如何理解原子性,如何理解可见性,如何理解有序性
    • 04.处理多线程并发
      • 有哪些方式处理多线程并发,如何保证原子性,如何保证可见性,如何保证有序性,平时项目中使用锁和synchronized比较多,而很少使用volatile,难道就没有保证可见性?
    • 06.Synchronize1
      • Synchronize用法,同步代码块synchronized (this),同步方法synchronized void test,Synchronize作用于方法和静态方法区别,sychonized method 和 synchonized代码块的效率问题
    • 07.Synchronize2
      • 简单理解Synchronize锁机制,同步方法和代码块实现原理
    • 08.ReentrantLock
      • ReentrantLock是什么,ReentrantLock使用方法,ReentrantLock锁机制测试,何时用ReentrantLock,
    • 09.Synchronize和ReentrantLock区别
      • Synchronize和ReentrantLock区别,Synchronize在编译时如何实现锁机制,ReentrantLock锁机制测试案例分析,公平锁和非公平锁有何区别等等
    • 14.deadLock3种类型
      • 死锁产生的条件,静态的锁顺序死锁,动态的锁顺序死锁,协作对象之间发生的死锁
    • 15.deadLock详谈
      • Java中导致死锁的原因 ,出现死锁需要满足条件 ,死锁诊断步骤
    • 16.volatile介绍
      • volatile轻量级锁,volatile测试案例,volatile实现原理 ,volatile的happens-before关系 ,volatile的内存语义 ,volatile的应用场景
    • 19.CAS深度解析
      • CAS简单介绍,CAS操作案例分析,CAS存在的问题
    • 20.线程池基础介绍
      • 线程池的优势,ThreadPoolExecutor参数,线程池执行流程,线程池的使用技巧

    10.Java异常

    11.枚举与注解

    • 01.枚举基础
      • 什么是枚举,枚举简单使用,枚举是类类型,枚举的一些方法,枚举实现接口
    • 03.Java元数据
      • 什么是元数据,元数据的作用,Java平台元数据
    • 04.Java注解概念
      • 注解(Annotation)的概念,注解的属性分类,注解运行时段分类,自定义注解分类,实际注解案例
    • 05.Java注解使用
      • 内建注解使用(几个比较常用的注解:@Override、@Deprecated、@SuppressWarnings以及@FunctionalInterface这4个注解),元Annotation使用
    • 05.Java注解解析
      • 创建自定义注解,通过反射技术来解析自定义注解。
    • 07.自定义注解
      • 自定义annotation注解,@Retention作用,@Target(ElementType.TYPE)作用,注解的默认值,注解的继承,注解中方法
    • 08.编译期注解案例
      • 什么是编译器注解,使用注解替代枚举,使用注解限定类型
    • 09.运行期注解案例
      • 什么是运行期注解,案例之setContentView分析
    • 10.注解代替枚举
      • Android避免使用Enum,使用注解替代枚举的案例分析

    12.Java深入

    • 01.四种引用比较与源码分析
      • 强引用,软引用,弱引用,虚引用的使用场景与区别,软引用SoftReference源码,弱引用WeakReference源码,虚引用PhantomReference源码分析
    • 02.Java内存分配机制及内存泄漏
      • Java采用GC进行内存管理思维导图,JVM内存分配的几种策略,GC简单介绍,内存泄漏带来的影响,GC回收机制,垃圾回收思路及方法
    • 03.Hash和HashCode深入理解
      • Hash的定义,Hash的使用场景,HashCode是什么,为什么要重写HashCode,可直接用hashcode判断两个对象是否相等吗,Hash表是什么 ,Hash中的算法应用 ,Hash在Java中的应用场景
    • 05.transient详解
      • transient的作用,transient案例,transient使用小结,transient思考
    • 06.Lambda表达式
      • Lambda表达式的基础知识,函数式接口,Lambda使用示例,块Lambda表达式,Lambda表达式访问变量,Lambda方法引用
    • 10.Jdk1.8常见新特性
      • Lambda表达式和函数式接口,接口的默认方法和静态方法,方法引用,重复注解,更好的类型推断
    • 11.Jdk1.8编译器的新特性
      • 如何在运行时获得Java程序中方法的参数名称
    • 12.Jdk1.8官方库新特性
      • Optional,Streams,Base64

    其他介绍

    01.关于博客汇总链接

    02.关于我的博客

  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/yc211/p/11266428.html
Copyright © 2011-2022 走看看