随笔分类 -  java

摘要:上次我通过单链表实现了List接口,但是单链表的结构只可以允许从前到后遍历获取数据显的不是那么的方便,在java中一般使用双向链表来获取存储数据,双向链表中的每个节点除了要保存它的下一个节点对象的引用以外还会保存一个它前一个节点对象的引用,这样就可以实现双向查找数据。 首先定义个新的节点接口: pu 阅读全文
posted @ 2019-12-12 18:07 牧神风 阅读(290) 评论(0) 推荐(0)
摘要:LinkedList相比于之前的ArrayList它的查询的效率要比ArrayList差但是它的添加和删除效率要比ArrayList好。LinkedList底层是通过链表实现的,所谓链表就是一系列存储数据元素的单元通过指针串接起来形成的。在链表里面,每个单元至少有两个域,一个域用于数据元素的存储,另 阅读全文
posted @ 2019-12-11 09:30 牧神风 阅读(384) 评论(0) 推荐(0)
摘要:List集合是我们平时常用的集合框架,List集合是有序的,在java中List接口主要有两个实现分别是ArrayList和LinkedList,其中ArrayList类主要是通过数组的方式实现的。因为ArrayList底层是通过数组的方式实现List集合,所以在访问集合中的数据时可以直接通过数组的 阅读全文
posted @ 2019-12-10 16:19 牧神风 阅读(371) 评论(0) 推荐(0)
摘要:在java8之前我们要操作集合首先要去遍历集合然后在根据条件筛选出符合的元素放到一个新的集合中去,当需要多次这样操作后,代码的可读性会下降而且对于使用者也不够友好。java8出现后,提供了一个新的类库位于:java.util.stream包下,在这个类库中提供了大量的Stream Api供开发者使用 阅读全文
posted @ 2019-11-18 15:38 牧神风 阅读(890) 评论(0) 推荐(0)
摘要:上一章我介绍了lambda表达式的基本语法,今天我来介绍一下java中的函数式接口。 所谓函数式接口其实就是只定义了一个抽象方法的接口就是函数式接口。例如java.lang.Runable接口就是一个函数式接口。我们可以在接口上添加@FunctionalInterface注解来表示这接口是一个函数式 阅读全文
posted @ 2019-10-16 13:48 牧神风 阅读(1349) 评论(0) 推荐(0)
摘要:lambad表达式是一个匿名函数,既没有函数名的函数。在lambda表达式出现之前,java中更多使用的是匿名内部类所以有些刚刚接触lambda表达式的人会把lambda表达式误认为就是匿名内部类的简写。这里需要注意lambada表达式并不能简写所有的匿名内部类,准确的说lambda表达式表示的是一 阅读全文
posted @ 2019-10-14 15:45 牧神风 阅读(799) 评论(0) 推荐(0)
摘要:最近在学习springMVC的源码并尝试从零开发一下web框架。在学习用遇到了一个拦路虎————正则表达式。在我平时的开发工作中对于正则表达式的使用并不是很频繁,可以说是几乎不用,即使用到了都是通过上网百度查询,久而久之正则表达式成了我的短板(虽然这块短板还没有影响我的工作)。在看了springMV 阅读全文
posted @ 2019-08-09 11:51 牧神风 阅读(1176) 评论(0) 推荐(0)
摘要:在java中的每一个类都会对应一个Class对象,我们通常把这个Class对象称之为字节码对象,那么这个字节码对象是由谁来产生的呢?java中的类是由谁来加载进内存的呢?接下来我介绍的就是负责将java中的字节码文件加载到内存,创建Class对象的类ClassLoader,也就是java中的类加载器 阅读全文
posted @ 2019-06-07 11:46 牧神风 阅读(525) 评论(0) 推荐(0)
摘要:上一篇文章中我们介绍了如何使用java SDK实现动态代理,可是因为java SDK只能为接口创建代理所以有一定的局限性,今天我来给大家介绍另外的一种实现java动态代理的方法就是使用第三方的类库叫做cglib。 首先我们来使用cglib实现一个动态代理然后在来介绍一些注意的事项: 其中RealSe 阅读全文
posted @ 2019-05-26 12:23 牧神风 阅读(174) 评论(0) 推荐(0)
摘要:上一节我介绍了什么是静态代理。在静态代理中的代理对象是直接定义在代码中的,这样会导致代码不能复用并且工作量也会成倍的增加所以在日常的开发中我们更多使用的是动态代理模式。在动态代理中,代理类在是程序运行中动态生成的,在java中一般有两种方式来实现动态代理模式,它们分别是javaSDK动态代理和第三方 阅读全文
posted @ 2019-05-26 11:44 牧神风 阅读(180) 评论(0) 推荐(0)
摘要:今天我们来学习java中的另一个重要的特性叫做动态代理。所谓动态代理是可以在java运行过程中动态的创建一个类去实现一个或多个接口,可以在不修改原有类代码的基础上动态的添加功能和方法。正是因为这个特性使动态代理被java的许多框架中被广泛的使用。 在介绍动态代理之前我需要先介绍一下什么是静态代理。在 阅读全文
posted @ 2019-05-26 10:19 牧神风 阅读(538) 评论(0) 推荐(0)
摘要:今天我继续来介绍java中的注解。注解与接口和类不同的是注解是不允许继承的,但是注解中有一个和继承有关的元注解:@Inherited。如果我们在定义注解时候加上这个元注解那么我们就可以在子类中监测到该注解的存在。 如上代码所示:我在BaseController上加了Action的注解但是没有在Use 阅读全文
posted @ 2019-05-18 16:11 牧神风 阅读(564) 评论(0) 推荐(0)
摘要:注解相信大家对它并不是很陌生,在我们平时的开发中几乎天天都在使用注解尤其是在springBoot出现后几乎之前所有使用xml的配置都可以使用注解来替代。今天我来介绍一下java中的注解。 1.注解应用场景 在原生java中就内置了几个注解有@Override、@Deprecated、@Suppres 阅读全文
posted @ 2019-05-12 15:08 牧神风 阅读(243) 评论(0) 推荐(0)
摘要:今天我来继续介绍java中的反射,上一次我介绍了Class对象以及如何获取Class对象,反射的入口就是Class对象,通过Class对象我可以获取类中的属性和方法也可以创建类的实例对象,在平时的开发中反射技术的使用时非常频繁的,所以掌握反射技术是非常有必要的。 反射和泛型 在我介绍泛型的时候曾经说 阅读全文
posted @ 2019-05-12 11:33 牧神风 阅读(308) 评论(0) 推荐(0)
摘要:在java中反射是指在运行期动态的获取类型的信息,比如接口的信息,类的方法和成员变量。反射的入口是Class类下面我们来一起了解一下这个Class类。 在java中每个已加载的类都有一个类信息,每个对象都一个指向它所属类信息的引用,其中类信息对应的类就是Class类(java.lang.Class) 阅读全文
posted @ 2019-05-03 14:02 牧神风 阅读(245) 评论(0) 推荐(0)
摘要:上一节我介绍了java中泛型的基本原理和使用,今天我介绍java中泛型类型参数的限定和通配符。在java中,泛型是通过类型擦除实现的,泛型是java编译器的概念,java在运行时对与泛型是一无所知的,了解这一点有助于理解java中泛型的一些令人混淆的地方和局限。 在上一篇文章中我们提到了一个词叫做类 阅读全文
posted @ 2019-04-20 13:10 牧神风 阅读(246) 评论(0) 推荐(0)
摘要:在java中我们定义接口其实定义的是这个类的功能,在很多时候我们并不关心这个类的类型而是这个类的能力。泛型的出现让我们的代码和代码所能操作的类型不在绑定在一起,不仅可以复用代码降低耦合还可以提高代码的可读性和安全性。 首先,我们现在看一段代码来介绍一下泛型的基本概念: 其中Generic就是一个泛型 阅读全文
posted @ 2019-04-14 12:06 牧神风 阅读(497) 评论(0) 推荐(0)
摘要:java中的字符串常量比较的特殊,它可以直接赋值给字符串类型的变量:String str = "hello world"。字符串常量自己就可以像String对象一样调用String类中定义的方法。实际上这些字符串常量本身就是字符串对象,在内存中它们被保存在一个共享的区域,这个地方被称为字符串常量池, 阅读全文
posted @ 2019-04-06 12:29 牧神风 阅读(319) 评论(0) 推荐(0)
摘要:字符串是我们日常开发中使用频繁的一种数据类型。在java中字符串类主要有String、StringBuilder、StringBuffer这三个类,其中String表示的是不可变字符串,StringBuilder和Stringbuffe表示的是可变字符串。 在java中创建一个字符串比较的简单,可以 阅读全文
posted @ 2019-04-06 11:12 牧神风 阅读(488) 评论(0) 推荐(0)
摘要:java中有8种基本的数据类型,其中每一种数据类型都对应了一种包装类。java是纯面向对象的语言,在java中的一切东西都可以用对象的形式表示,包括java中的基本数据类型。包装类中除了Integer和Character外,其他的包装类都是以java中的基本数据类型的首字母大写命名的。 每个包装类中 阅读全文
posted @ 2019-03-24 10:57 牧神风 阅读(992) 评论(0) 推荐(0)