摘要:
今天来看看Java的另一种代理方式——JDK动态代理 我们之前所介绍的代理方式叫静态代理,也就是静态的生成代理对象,而动态代理则是在运行时创建代理对象。动态代理有更强大的拦截请求功能,因为可以获得类的运行时信息,可以根据运行时信息来获得更为强大的执(骚)行(操)力(作)。 我们还是以上一个例子为例, 阅读全文
摘要:
今天要介绍的是一个Java中一个很重要的概念——代理。 什么是代理?联系生活想想看,代理似乎并不陌生,最形象的代表便是经纪人,明星一般都有经纪人,经纪人作为中间人,负责代理明星的相关事宜,比如说,有人要请明星去唱歌表演,一般不会直接跟明星联系,而是联系他的经纪人,他的经纪人来负责安排行程,而真正唱歌 阅读全文
摘要:
今天来说说Java中的最后一种内部类——静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这就意味着它的创建不依赖于外部类,创建内部类的实例不需要像普通内部类一样先创建外部类实例才能创建。 其 阅读全文
摘要:
今天来看看另一个更加神奇的类——匿名内部类。 就像它的名字表示的那样,这个类是匿名的,用完之后,深藏功与名,就像扫地僧那样默默潜藏于深山之中。匿名内部类不仅没有名字,连class关键字都省掉了,而且匿名内部类必须继承于某个类或者实现某个接口,长的就像这样: 来看一个栗子: 这是一个抽象类,如果使用匿 阅读全文
摘要:
今天介绍第二种内部类——局部内部类。 局部内部类是什么?顾名思义,那就是定义在局部内部的类(逃)。开玩笑的,局部内部类就是定义在代码块、方法体内、作用域(使用花括号“{}”括起来的一段代码)内的类。局部内部类有以下特性: 举个栗子: 这里的Inner2类仅仅在Outer2的print方法中被使用,有 阅读全文
摘要:
内部类是什么,简单来说,就是定义在类内部的类(一本正经的说着废话)。 一个正经的内部类是长这样的: 这是为了演示而写的类,没有什么luan用,可以看到Inner类置于Outer类的内部。 那为什么要大费周章的在类内部定义一个类呢?不能在类外部定义类吗?内部类跟外部类有什么关系? 确实,很多时候,在外 阅读全文
摘要:
今天介绍将树形结构存储在数据库中的第三种方法——终结表(原谅我这生硬的翻译。。)。 继续用上一篇的栗子,下面是要存储的结构图: 需要回答的问题依旧是这样几个: 1.查询小天的直接上司。 2.查询老宋管理下的直属员工。 3.查询小天的所有上司。 4.查询老王管理的所有员工。 方案三、Closure T 阅读全文
摘要:
今天来介绍把树形结构存入数据库的第二种方法——路径枚举法。 还是借用上一篇的栗子,为了方便大家查阅,我把图又原样搬过来了。 需要回答的问题依旧是这样几个: 1.查询小天的直接上司。 2.查询老宋管理下的直属员工。 3.查询小天的所有上司。 4.查询老王管理的所有员工。 方案二、 Path Enume 阅读全文
摘要:
今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢? 像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数据,但是遇到像树形结构这样有深度的人,就很难驾驭了。 举个栗子:现在有一个要存储一下公司的人员结构,大致层次结构如下: (画个图真不容易。。) 那么怎么存储这个结构?并且要 阅读全文
摘要:
Spring是一个十分火热开源框架,而AOP(面向切面编程)则是Spring最重要的概念之一,为了更好的理解和学习AOP的思想,使用核心库来实现一次不失为一个好方法。 首先介绍一下AOP的概念,AOP(Aspect Oriented Programming),即面向切面编程,所谓的面向切面编程,就是 阅读全文
摘要:
Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制。可以使用它在到达指定时间间隔后发出通知,例如程序中有一个时钟,就可以每秒请求发送一个通知,以便更新时间显示。那么怎样通知Ti 阅读全文
摘要:
又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了)。 这次我们来谈一谈Java里的一个很有意思的东西——回调。 什么叫回调,一本正经的来讲,在计算机程序设计中,回调函数是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 别 阅读全文
摘要:
之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友。我是用的是MyEclipse2017 CI 3,相近版本应该都差不多。至于其他版本找到类似操作即可。 1.新建web 阅读全文
摘要:
有这样一个问题,异常处理大家应该都不陌生,类似如下代码: 运行到第7行的时候,会出现算术异常,try语句块捕获到这个异常,然后开始执行catch语句块中的内容,最后执行,finally语句块中的内容,因此输出如下: 但是,如果try,catch,finally语句中有return的时候,会怎样呢? 阅读全文
摘要:
抽象类跟接口都讲完了,现在来做一个比较。 其实说实话,没有多大的可比较性,它们是完全不同的两个东西,它们的抽象不在同一个层级上。但是为了让大家更好的理解,还是做一个比较吧,毕竟它们都很抽象(233)。 首先是语法层面上的对比 1)抽象类跟接口都不能被实例化,因为它们都很虚嘛。但是在访问权限上,两者有 阅读全文
摘要:
一、Spring单例模式及线程安全 Spring框架中的Bean,或者说组件,获取实例的时候都是默认单例模式,这是在多线程开发的时候需要尤其注意的地方。 单例模式的意思是只有一个实例,例如在Spring容器中某一个类只有一个实例,而且自行实例化后并项整个系统提供这个实例,这个类称为单例类。 当多个用 阅读全文
摘要:
如何将一段单词倒序输出?把“Hello Java Hello China”变成“China Hello Java Hello”? 看起来好像很简单,只需要把字符串先分割成单词,然后加入一个StringBuilder或者StringBuffer中,最后再使用toString方法即可,现在来实现一下: 阅读全文
摘要:
今天被问到Spring中Bean的配置方式,很尴尬,只想到了基于XML的配置方式,其他的一时想不起来了,看来Spring的内容还没有完全梳理清楚,见到一篇不错的文章,就先转过来了。 以前Java框架基本都采用了XML作为配置文件,但是现在Java框架又不约而同地支持基于Annotation的“零配置 阅读全文
摘要:
上一篇讲完了抽象类,这一篇主要讲解比抽象类更加抽象的内容——接口。 什么是接口呢?先来看一个现实中的栗子,我们常用的插座,一般分为两孔和三孔,所以基本上不管是什么电器,只要插头插进去就可以正常使用,想想看,如果没有这样的规范,有十几种不同的插座孔,每个电器的插头都不一样,还不得崩溃掉。 先来看个栗子 阅读全文
摘要:
如果出现这样的画面,说明服务器启动成功了。这样通过输入服务器IP+端口号就能访问了。 如果访问成功,则表示Tomcat服务器部署成功。接下来就可以使用SSM框架或者SSH框架进行应用的开发了。 阅读全文