Home
Live In a Dream
Cancel

Java Comparator的范型类型推导问题

问题 在项目中,有一处地方需要对日期区间进行排序 我需要以日期区间的开始日为第一优先级,结束日为第二优先级进行排序 代码 我当时写的代码如下: List<Pair<LocalDate, LocalDate>> dateIntervals = new ArrayList<>(); // 省略构造日期区间 dateIntervals.sort(Compa...

最近碰到的一些问题

有一个Java Web的系统,原来只是一个普通的Spring MVC项目。但是因为后期会有多个迭代,在二期的时候,设计者考虑用CQRS来组织项目。但有一个问题设计者当时没考虑到,直接新开一个库地址进行开发,认为一个前端不同页面对应两个后台很容易。然而事实证明,这会存在跨域访问的问题。处理办法就是需要在服务端的HTTP相应数据头中写入Access-Control-Allow-Origin字段。...

Mac Hadoop的安装与配置

这里介绍Hadoop在mac下的安装与配置。 安装及配置Hadoop 首先安装Hadoop $ brew install Hadoop 配置ssh免密码登录 用dsa密钥认证来生成一对公钥和私钥: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 将生成的公钥加入到用于认证的公钥文件中: $ cat ~/.ssh/id_dsa.pub >&g...

tmux简要介绍

什么是tmux tmux全称terminal multiplexer,是一个终端复用软件。它可以帮助我们方便地管理多个终端会话。 下面介绍tmux中涉及到的一些名词 window 窗口 pane 窗格(面板) session 会话 如何使用tmux 安装tmux 对于安装tmux,因为不同系统安装方式不同,可以用对应的不同的包管理软件进行下载安装,此步骤不在此处赘述 ...

多个git账号的SSH配置

一般使用git都只需要维持一个默认的git账户就可以打天下了。 但如果自己确实需要多个git账号的需求的话,就有必要配置多个ssh key了。 首先为生成多个ssh key ssh-keygen -t rsa -C "mygit@myemail.com"  在shell中的交互中输入保存的文件名比如id_rsa_github,以及私钥密语(随意)   比如你可以为gi...

静态代理与动态代理的简单使用

代理模式(Proxy Pattern)是一种比较常见的设计模式,在很多场合都会被用到。 所谓代理指的是让其他的类代替完成一些任务(执行一些方法等),在软件开发中代理模式具有非常重要的作用,面向切面编程(AOP)便是基于代理模式运作的编程范式。 下面介绍一下其中的静态代理与动态代理,基于Java语言。 静态代理: 首先由一个HelloWorld接口,其中有一个方法,print public ...

Executor框架学习笔记

关于ThreadPoolExecutor的源码解读,请参考我的最新博客《ThreadPoolExecutor源码解读》。   Java中的线程即是工作单元也是执行机制,从JDK 5后,工作单元与执行机制被分离。工作单元包括Runnable和Callable,执行机制由JDK 5中增加的java.util.concurrent包中Executor框架提供。 HotSpot VM的线程...

关于Java中volatile关键字笔记

volatile通常被认为是一种轻量级的synchronized,字面上它表示易变的,在并发编程中,它保证了共享变量的可见性。所谓可见性指的是,某个线程对变量进行操作后,其他线程能够读取到操作后的最新结果。 CPU通常不会直接与内存通信,内存中的数据首先会被读取到缓存中进行读写。当对声明了volatile的变量进行写操作时,JVM会向处理器发送一条Lock前缀的指令,表示将变量锁在的缓存行数...

关于Java中String类的hashCode方法

首先来看一下String中hashCode方法的实现源码 1 public int hashCode() { 2 int h = hash; 3 if (h == 0 && value.length > 0) { 4 char val[] = value; 5 6 for (int i = 0; i &lt...

关于Java中继承多接口同名方法的问题

在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: 1 interface A{ 2 void fun(); 3 } 4 interface B{ 5 void fun(); 6 } 7 interface C extends A,B{ 8 9 } 10 public class Test implement...