
java
文章平均质量分 83
成年老猿
国内TOP10学校研究生毕业
8+年大厂经验
很高兴在这里和大家进行技术交流
展开
-
【Guava】Guava EventBus & JDK Observer模式
对于事件监听和发布订阅模式,使用guava eventbus可以省去开发人员很多事情,不同于JDK自带的Observer模式,不用在去定义那些复杂的类或接口来实现事件发布与订阅,Guava的EventBus 只需要关注事件类型及监听类的对应开发工作既可以。EventBus会向所有订阅发布者事件的订阅者进行事件的发送(post)被监听者:发送变更事件给监听者,使监听者监听到变更事件后,完成动作变更。EventBus = Event(事件) + Bus(总线)监听者:监听来自被监听者的变更事件,完成动作变更。原创 2024-06-29 11:26:48 · 285 阅读 · 0 评论 -
、【Guava】EventBus 源码解析
EventBus 采用发布订阅者模式的实现方式,它实现了泛化的注册方法以及泛化的方法调用,另外还考虑到了多线程的问题,对多线程使用时做了一些优化,观察者模式都比较熟悉,这里会简单介绍一下,重点介绍的是如何泛化的进行方法的注册以及调用,还有在单个线程和多线程不同的实现方式。#发布订阅者模式Guva中EventBus的机制就是观察者模式,因此符合观察者模式的一般结构:监听者:监听来自被监听者的变更事件,完成动作变更被监听者:发送变更事件给监听者,使监听者监听到变更事件后,完成动作变更。原创 2024-06-15 23:13:15 · 1338 阅读 · 2 评论 -
Maven相关知识
exclusions:考虑这样一种情况,我们的projectA依赖于projectB,然后projectB又依赖于projectC,但是在projectA里面我们不需要projectB依赖的projectC,那么这个时候我们就可以在依赖projectB的时候使用exclusions元素下面的exclusion排除projectC。这种类型的依赖性是不可传递的。compile:这是它的默认值,这种类型很容易让人产生误解,以为只有在编译的时候才是需要的,其实这种类型表示所有的情况都是有用的,包括编译和运行时。原创 2024-06-15 23:24:02 · 1189 阅读 · 0 评论 -
【Guava】常用操作
则后续代码可以通过isPresent()来判断是否返回了期望的值(原本期望返回null或者返回不为null,其意义不清晰),并且可以使用get()来获得实际的返回值。Google的官方文档中说,它是用来避免使用null的,而且Google的code base中大约95%的collection中不该含有null值。Optional的最常用价值在于,例如,假设一个方法返回某一个数据类型,调用这个方法的代码来根据这个方法的返回值来做下一步的动作,监听者:监听来自被监听者的变更事件,完成动作变更。原创 2024-06-15 23:12:29 · 783 阅读 · 0 评论 -
【Guava】ImmutableList使用问题分析
今天用到ImmutableList的时候,在使用ImmutableList的过程中发现针对于使用场景: public ImmutableList validatePredicates = ImmutableList.of( new BmZJGroupService() );其中BmZJGroupService 是 BmAbstractGro原创 2016-10-25 22:43:38 · 4312 阅读 · 1 评论 -
关于nest exception
问题:使用spring经常会遇到类似的问题 error create bean name xxx failed nest exception class not found... 想知道是由于前面创建的错误导致后边的异常,还是后边的异常导致前面的创建错误,nest exception(嵌套异常)的真正含义是什么?回答:重新贴一下 格式化的, 1、伪代码代转载 2016-09-24 16:25:44 · 4012 阅读 · 0 评论 -
java下的socket通信与C/C++下的socket通信
JAVA下的socket通信:关键点:由Socket对象得到输入流(即由另一方发过来的数据),此时构造BufferedReader对象由Socket对象得到输出流(即发往另一方的数据),此时构造PrintWriter对象客户端:public class Client { public static void main(String[] args) throws原创 2014-02-20 16:12:15 · 746 阅读 · 0 评论 -
如何安装mysql 服务
我刚开始安装mysql的时候,在windows的服务里面可以看到,但是装了以后有一段时间没有用它了,我在准备从windows的服务里面启动mysql服务的时候,发现没有mysql的服务了,那我的解决办法就是: 1.如果你没有安装mysql数据库的话,就先安装mysql服务 2.在就在mysql的安装目录下面的bin目录下面,找的mysq转载 2014-02-21 21:05:18 · 697 阅读 · 0 评论 -
java this与super的区别
"this",作为一个特殊的关键字,它的规则如下: 1。可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。 2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身;它有动态类型,就是当前这个对象的类型。你可以对它调用成员函数,把它传递给别转载 2013-12-04 17:00:42 · 484 阅读 · 0 评论 -
java中Thread类与Runnable接口的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo; class MyThread extends Th转载 2013-12-04 21:59:57 · 494 阅读 · 0 评论 -
java中的反射机制(getClass函数)
关于Object类的getClass()方法Java代码 import java.util.Date; public class TestCode extends Date { public static void main(String[] args) { new TestCode().test(); } public void test() { System.out.println(转载 2013-12-04 10:01:26 · 553 阅读 · 0 评论 -
匿名内部类使用final参数的问题
当在一个方法使用内部类时,若内部类要调用方法内的变量时,编译器会要求强制使用final关键字在定义变量前,当然可以选在不在方法内部定义此变量,定义成为全局变量就可以解决此问题。这里讨论下匿名内部类使用final参数的问题1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)转载 2013-12-03 14:26:19 · 454 阅读 · 0 评论 -
java Swing学习笔记
Swing读书笔记 1-1:Swing常用的package 内 容 -----------------|------------------------------- javax.swing | 最常用的pachage,包含了各种swing组件的类 javax.swing.border |转载 2013-12-03 11:17:45 · 610 阅读 · 0 评论 -
getLayeredPane与getContentPane的区别
JFrame里,由根面板,玻璃面板,分层面板结合而成。我们将图片放在分层面板中,因为内容面板在分层面板的上面,所以必须要将内容面板设置透明。JPanel p1 = (JPanel)this.getContentPane();这句语句的作用是,首先初始化一个内容面板——this.getContentPane(),这是使用JFrame添加组件的正确方法,并且将这个初始化好的内容面板的类转载 2013-12-03 10:23:56 · 10726 阅读 · 3 评论 -
Java图形用户界面设计
作为一个 java 程序员,从论坛上感受到使用 Java 开发程序的人越来多,心中不免欣慰。但是,同样是从论坛中,看到多数人提到 Java 就以为是网络开发——不是这样的,Java 也可以开发应用程序,而且可以开发出漂亮的图形用户界面的应用程序,也就是 Windows/XWindow 应用程序。因此,我写下这篇文章,希望能带你进入Java 图形用户界面设计之门。 一. AWT 和 S转载 2013-11-26 10:04:59 · 1136 阅读 · 0 评论