关闭

对Java8中distinct()的思考

list的转map的另一种猜想 使用distinct给list去重 直接使用distinct失败 原因distinct依赖于equals 重写equals的注意事项 引申 结论 list的转map的另一种猜想Java8使用lambda表达式进行函数式编程可以对集合进行非常方便的操作。一个比较常见的操作是将list转换成map,一般使用Collectors的toMap()方法进行转换。一个比较常见的问...
阅读(10) 评论(0)

mock

mock的由来一开始,没有mock的时候,人们测试的时候只能自己mock。比如需要一个PersonDao类的对象,其中有连接数据库查询数据库当前存储人数的方法getPersonNum()。但是可能因为数据库不存在等问题,其中的操作并不能正确执行,这时候一般:public PerSonDaoMock extends PersonDao{ @Override public int get...
阅读(28) 评论(0)

Spring xml配置文件头解析

最简洁xml文件头 详解 命名空间 头解析 模式内容Spring的xml配置虽然比较繁琐,不如推荐使用的注解方式简介,但是能读懂xml配置文件还是很重要的,尤其是对于一些老系统的维护,几乎不可避免要面对xml配置文件的问题。现在我们就从默认的xml文件头说起。最简洁xml文件头以下可谓是最简洁的spring文件头的内容,然而看起来依旧一大坨,令人眼花缭乱。其实细细分析,就会觉得东西其实并不多。<?x...
阅读(41) 评论(0)

Java Map初始化的一个错误:new HashMap().put("a", "b");

今天在使用PowerMock进行代码测试用例编写的时候,需要新建一个map,当时脑一抽,写成了:Map testMap = new HashMap().put("a", "b");然后收到了IDE的友善提醒:Incompatible types. Required: java.util.Map...
阅读(206) 评论(0)

Archlinux安装UEFI Grub

最近换了电脑,以前的老电脑使用的是旧BIOS架构启动,新电脑都变成了新的BIOS架构即UEFI启动(UEFI是新BIOS架构,自从UEFI出来之后,老的BIOS架构便被称为legacy),在安装grub时比之前稍微麻烦了一点。准备参考教程:https://wiki.archlinux.org/index.php/GRUB 虽然Arch的wiki有简体中文的翻译,但是一定要看英文的!!!中文的翻译不...
阅读(482) 评论(0)

使用枚举实现单例模式

前言单例模式的实现方式有多种,从最基础的非LazyLoad的懒汉式,到LazyLoad但需要双重检查的饿汉式,再到比较简单实现LazyLoad的静态内部类方式,均可实现单例模式。(忘了的可以查查资料:D)不过使用枚举实现单例模式,可称之为实现单例模式最简单的方法。实现public enum MySingleton { INSTANCE; // all the methods yo...
阅读(148) 评论(0)

Future/FutureTask & Callable/Runnable & Executor/ExecutorService/Executors

用途:笔记。 各类具体方法参阅JDK API。Callable/Runnable接口 Runnable用于实现线程。大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口。这很重要,因为除非程序员打算修改或增强类的基本行为,否则不应为该类创建子类。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的...
阅读(79) 评论(0)

Java异常处理

Java的异常处理有两种方式: - 默默解决。使用try...catch。 - 甩锅。使用throw和throws。通常,我们喜欢用try/catch捕获异常,然后对异常进行处理。但是有时候,我们也会不予理会,直接将异常扔出去,让调用者自己去处理异常。当然对调用者来说,它也有两种同样的选择:自己处理掉,或者再往外扔,交给自己的调用者,由新的调用者继续背锅。以下是几种正常与不正常的异常处理方式示例...
阅读(84) 评论(0)

快速排序及优化(三路划分等)

快速排序, 是最经典的排序算法之一。快速排序拥有良好的时间复杂度,平均为O(nlog2n)O(nlog_{2}n),最差为O(n2)O(n^2)。在这里,我们不妨略略深入讨论一下快速排序:时间复杂度分析首先说平均时间复杂度。以比较常用的从两头进行扫描的算法为例,算法主要分两步: 1. 是快排的核心:“分趟”。就是“每一趟”下来,找到某一个元素应该待的位置,这个元素一般被称为pivot; 2.再分...
阅读(841) 评论(0)

使用StrongSwan配置IPSec

使用StrongSwan对IPSec进行研究,是一种很好的理解IPSec的实践。然而StrongSwan在使用的过程中实在是有太多的坑,网上的教程也多有不完整的地方,几乎没有能彻彻底底说明白每一步的,导致我在使用StrongSwan的过程中各种抓耳挠腮。程序员自然要造福程序员,在这里特将StrongSwan使用中所遇到的完整步骤记录下来,希望有所帮助。准备工作准备工作可不是简单地装个StrongSw...
阅读(4479) 评论(0)

C++ 输入输出运算符重载 感想

在C++中,经常会对输入输出运算符进行重载,而在重载的时候用到了友元(Friends)和引用返回(Returning References),这里对为什么会这么用发表一些思考。 比如,下面的类是一个简单的Student类,其中重载了<>。// // Created by lgl on 17-3-14. // #include #include #inc...
阅读(430) 评论(0)

操作系统(modifying)

操作系统OS对资源的管理,就是对硬件+软件两种资源的管理。 硬件:CPU+存储(主存)+设备 软件:文件(系统) 这就是操作系统的四个章节。进程线程单核达不到程序级并行,但可以达到指令级并行(pipeline)。进程基础概念: 目的:为了实现并发,要不然直接傻瓜调度就行了,就不需要进程了。 进程与程序的区别:动态vs静态;进程有PCB;二者多对多(一个进程可以涉及多个程序–>通过系统调用;...
阅读(921) 评论(0)

Java打log日志

最近写Java工程,需要在客户端打上log,以便进行出错追踪。刚开始试了一些log4j之类的包,想着功能强大点儿。但是由于配置、版本不兼容、傻叉Windows等一系列问题,最终放弃,干脆直接采用Java自带的log好了。关于Java内置Logger的介绍,比较好的有这篇,可以学习一下其基本用法。但是如果按照那篇博客的“(六)如何使用JDK内置logger ”写一个LogUtil的话,在我的需求下会出...
阅读(4997) 评论(0)

Java解析json——Jackson

在Java下,想要解析json文件,已经有了现成的Jackson框架。有几个关于Jackson的基础例子,或者也可以看本文最后的附录。看过之后也就大致了解Jackson的基本用法了。至少Java对象和json的直接转化还是比较简单的。在这里,我主要记录一下自己使用readTree从服务器接收json并解析的过程。需求写一个客户端程序,客户端从服务器接收json,并解析为Java自己的对象,进行处理。...
阅读(1223) 评论(0)

linux小记:Ubuntu和Arch下的Apache

Apache2在Ubuntu和Arch下,配置文件的组织方式差别还是挺大的。小记一下,因为我过不久肯定就会忘的=.=Ubuntu在Ubuntu下,配置目录在/etc/apache2。在此目录下,主要配置文件是apache2.conf,但是为了更清晰,在Ubuntu上Apache的配置文件是拆分了的,最后在apache2.conf中都Include了进来。比如:# Include module con...
阅读(859) 评论(0)
79条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:86347次
    • 积分:1616
    • 等级:
    • 排名:千里之外
    • 原创:73篇
    • 转载:6篇
    • 译文:0篇
    • 评论:6条
    最新评论