![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java入门提高篇
文章平均质量分 81
弗兰克的猫__
这个作者很懒,什么都没留下…
展开
-
【Java入门提高篇】Day1 抽象类
基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分那一定是我讲的不够生动,记得留言提醒我。 好了,没时间了,快上车! 本篇内容主要讲解Java中的抽象类。那什么是抽象类呢?顾名思义嘛,就是很“抽象”的类,抽象是具体的代名词,就像老板跟你说,大家加油干,努力干活就跟你涨工资,但很多时候都...原创 2018-05-13 09:14:44 · 265 阅读 · 0 评论 -
【Java入门提高篇】Day13 Java中的反射机制
前一段时间一直忙,所以没什么时间写博客,拖了这么久,也该更新更新了。最近看到各种知识付费的推出,感觉是好事,也是坏事,好事是对知识沉淀的认可与推动,坏事是感觉很多人忙于把自己的知识变现,相对的在沉淀上做的实际还不够,我对此暂时还没有什么想法,总觉得,慢慢来,会更快一点,自己掌握好节奏就好。 好了,言归正传。 反射机制是Java中的一个很强大的特性,可以在运行时获取类的信息,比如说类的父类,...原创 2018-05-14 19:31:27 · 157 阅读 · 0 评论 -
【Java入门提高篇】Day14 Java中的泛型初探
泛型是一个很有意思也很重要的概念,本篇将简单介绍Java中的泛型特性,主要从以下角度讲解: 1.什么是泛型。 2.如何使用泛型。 3.泛型的好处。1.什么是泛型?泛型,字面意思便是参数化类型,平时所面对的类型一般都是具体的类型,如果String,Integer,Double,而泛型则是把所操作的数据类型当作一个参数。如,ArrayList<String>(),通过传入不同的类...原创 2018-05-14 19:31:46 · 157 阅读 · 0 评论 -
【Java入门提高篇】Day15 Java泛型再探——泛型通配符及上下边界
上篇文章中介绍了泛型是什么,为什么要使用泛型以及如何使用泛型,相信大家对泛型有了一个基本的了解,本篇将继续讲解泛型的使用,让你对泛型有一个更好的掌握和更深入的认识。 上篇中介绍完泛型之后,是不是觉得泛型挺好用的?既消除了Object的不安全类型转化,又可以很方便的进行类型对象的存取,但是,等一下,有没有考虑到这样的情况。 我们先定义一个水果类:public class Fruit { ...原创 2018-05-14 19:32:05 · 280 阅读 · 0 评论 -
【Java入门提高篇】Day21 容器类详解(四)ArrayList源码分析
今天要介绍的是List接口中最常用的实现类——ArrayList,本篇的源码分析基于JDK8,如果有不一致的地方,可先切换到JDK8后再进行操作。 本篇的内容主要包括这几块: 1.源码结构介绍 2.源代码展示 3.要点说明 4.优缺点说明一、源码结构介绍 ArrayList的源码跟之前的接口源码比起来,那可就不能同日而语了,一千多行代码,如果直接看的话确实有些费劲,但仔细看看...原创 2018-06-03 19:13:33 · 245 阅读 · 0 评论 -
【Java入门提高篇】Day16 Java异常处理(上)
当当当当当当,各位看官,好久不见,甚是想念。 今天我们来聊聊Java里的一个小妖精,那就是异常。什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外的事情,它阻止了程序按照程序员的预期正常执行。 异常处理,应该说异常处理机制,就是专门用来制服这个小妖精的法宝。Java中的异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,...原创 2018-05-31 16:59:27 · 157 阅读 · 0 评论 -
【Java 入门提高篇】Day17 Java 异常处理(下)
今天继续讲解java中的异常处理机制,主要介绍Exception家族的主要成员,自定义异常,以及异常处理的正确姿势。Exception家族 一图胜千言,先来看一张图。 Exception这是一个父类,它有两个儿子,IOException和RuntimeException,每个儿子都很能生,所以它有着一堆的孙子,但其实,Exception家族还有一个大家伙,那就是Throwable,这是一...原创 2018-05-31 17:00:11 · 208 阅读 · 0 评论 -
【Java入门提高篇】Day18 Java容器类详解(一)Collection接口
今天来看看Java里的一个大家伙,那就是容器。 所谓容器,就是专门用来装对象的东西,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体,但是集合类是容器类中的一个子集,为了区别表示,所以还是叫容器类,之后所说的集合类只是容器里的一个子集,之后会有详细介绍。 容器就是用来存放和管理其他类对象的地方,你可以把它理解为仓库管家,当你有东西需要存放和管理的时候,就要记得来找它。...原创 2018-05-31 17:00:39 · 256 阅读 · 0 评论 -
【Java入门提高篇】Day19 Java容器类详解(二)Map接口
上一篇里介绍了容器家族里的大族长——Collection接口,今天来看看容器家族里的二族长——Map接口。 Map也是容器家族的一个大分支,但里面的元素都是以键值对(key-value)的形式存放的,就像字典一样,用相应的key就可以拿到相应的value。 先来看看Map接口的内容,下面是阉割版的Map接口(去掉了default method),去掉的部分涉及Stream操作,属于Map的...原创 2018-05-31 17:01:01 · 215 阅读 · 0 评论 -
【Java入门提高篇】Day12 Java代理——Cglib动态代理
今天来介绍另一种更为强大的代理——Cglib动态代理。 什么是Cglib动态代理? 我们先回顾一下上一篇的jdk动态代理,jdk动态代理是通过接口来在运行时动态创建委托类的代理对象,但是跟静态代理一样有一个缺点,就是必须和委托类实现相同的接口,当接口数量增加时,便需要增加代理类的数量才能满足需求,而且如果委托类是别人写的,而且没有实现任何接口,那么jdk动态代理就有些力不从心了。 这时候...原创 2018-05-14 19:31:01 · 166 阅读 · 0 评论 -
【Java入门提高篇】Day11 Java代理——JDK动态代理
今天来看看Java的另一种代理方式——JDK动态代理 我们之前所介绍的代理方式叫静态代理,也就是静态的生成代理对象,而动态代理则是在运行时创建代理对象。动态代理有更强大的拦截请求功能,因为可以获得类的运行时信息,可以根据运行时信息来获得更为强大的执(骚)行(操)力(作)。 我们还是以上一个例子为例,这里的IStars接口和Stars类都不需要修改,只需要修改代理类。 创建JDK动态代理需...原创 2018-05-14 19:30:43 · 149 阅读 · 0 评论 -
【Java入门提高篇】Day10 Java代理——静态代理
今天要介绍的是一个Java中一个很重要的概念——代理。 什么是代理?联系生活想想看,代理似乎并不陌生,最形象的代表便是经纪人,明星一般都有经纪人,经纪人作为中间人,负责代理明星的相关事宜,比如说,有人要请明星去唱歌表演,一般不会直接跟明星联系,而是联系他的经纪人,他的经纪人来负责安排行程,而真正唱歌表演的还是明星本人,经纪人仅仅作为一个附加物存在。 在Java中,代理也是这样的概念,来看个...原创 2018-05-14 19:30:24 · 139 阅读 · 0 评论 -
【Java入门提高篇】Day2 接口
上一篇讲完了抽象类,这一篇主要讲解比抽象类更加抽象的内容——接口。 什么是接口呢?先来看一个现实中的栗子,我们常用的插座,一般分为两孔和三孔,所以基本上不管是什么电器,只要插头插进去就可以正常使用,想想看,如果没有这样的规范,有十几种不同的插座孔,每个电器的插头都不一样,还不得崩溃掉。 先来看个栗子:/** * @author Frank * @create 2017/11/22 *...原创 2018-05-13 09:15:14 · 217 阅读 · 0 评论 -
【Java入门提高篇】Day3 抽象类与接口的比较
抽象类跟接口都讲完了,现在来做一个比较。 其实说实话,没有多大的可比较性,它们是完全不同的两个东西,它们的抽象不在同一个层级上。但是为了让大家更好的理解,还是做一个比较吧,毕竟它们都很抽象(233)。 首先是语法层面上的对比 1)抽象类跟接口都不能被实例化,因为它们都很虚嘛。但是在访问权限上,两者有一定的区别。 a、抽象类中的抽象方法(其前有abstract修饰)不能用privat...原创 2018-05-13 09:16:22 · 177 阅读 · 0 评论 -
【Java入门提高篇】Day4 Java中的回调
又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了)。 这次我们来谈一谈Java里的一个很有意思的东西——回调。 什么叫回调,一本正经的来讲,在计算机程序设计中,回调函数是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 别急别急,且听我慢慢道来。 举个栗子,设置这样一个情景,老板安排员工做事,然后让他做完后跟...原创 2018-05-13 09:16:57 · 180 阅读 · 0 评论 -
【Java入门提高篇】Day5 Java中的回调(二)
Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制。可以使用它在到达指定时间间隔后发出通知,例如程序中有一个时钟,就可以每秒请求发送一个通知,以便更新时间显示。那么怎样通知Timer去完成我们的任务呢?在其他语言中,可以提供一个函数名,然后定时器周期性的调用它,但Java...原创 2018-05-13 09:17:19 · 174 阅读 · 0 评论 -
【Java入门提高篇】Day6 Java内部类——成员内部类
内部类是什么,简单来说,就是定义在类内部的类(一本正经的说着废话)。 一个正经的内部类是长这样的:public class Outer { class Inner{ }} 这是为了演示而写的类,没有什么luan用,可以看到Inner类置于Outer类的内部。 那为什么要大费周章的在类内部定义一个类呢?不能在类外部定义类吗?内部类跟外部类有什么关系? 确实,很多时候,在...原创 2018-05-14 19:29:05 · 158 阅读 · 0 评论 -
【Java入门提高篇】Day7 Java内部类——局部内部类
今天介绍第二种内部类——局部内部类。 局部内部类是什么?顾名思义,那就是定义在局部内部的类(逃)。开玩笑的,局部内部类就是定义在代码块、方法体内、作用域(使用花括号“{}”括起来的一段代码)内的类。局部内部类有以下特性:局部内部类只能在代码代码块、方法体内和作用域中使用。局部内部类同样可以无限制调用外部类的方法和属性。可以使用abstract修饰,声明为抽象类。 举个栗子:public c...原创 2018-05-14 19:29:22 · 165 阅读 · 0 评论 -
【Java入门提高篇】Day8 Java内部类——匿名内部类
今天来看看另一个更加神奇的类——匿名内部类。 就像它的名字表示的那样,这个类是匿名的,用完之后,深藏功与名,就像扫地僧那样默默潜藏于深山之中。匿名内部类不仅没有名字,连class关键字都省掉了,而且匿名内部类必须继承于某个类或者实现某个接口,长的就像这样:new 父类(参数列表)|实现接口() { //匿名内部类的内部定义 } 来看一个栗子:p...原创 2018-05-14 19:29:42 · 152 阅读 · 0 评论 -
【Java入门提高篇】Day9 Java内部类——静态内部类
今天来说说Java中的最后一种内部类——静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这就意味着它的创建不依赖于外部类,创建内部类的实例不需要像普通内部类一样先创建外部类实例才能创建。 其次,有优势必然有劣势,它不能像普通内部类一样无限制的访问外部类的方法和成员变量,只能访问静...原创 2018-05-14 19:30:02 · 156 阅读 · 0 评论 -
【Java入门提高篇】Day20 Java集合类详解(三)List接口
今天要说的是Collection族长下的三名大将之一,List,Set,Queue中的List,它们都继承自Collection接口,所以Collection接口的所有操作,它们自然也是有的。 List,Set,Queue,分别是列表,集合,队列的意思,代表着Collection家族下的三种不同的势力,它们各有所长,也各有所短,就像骑兵,步兵和水兵,各有各的优势,并没有谁一定比谁更好的说法,...原创 2018-05-31 17:01:32 · 192 阅读 · 0 评论