Java开发

总计 43 页,当前第 2 页
Java开发

Stream的错误使用:Stream.max(Integer::max)和Stream.min(Integer::min)

java8中的Stream相信大家都使用过,代码可以变得简洁漂亮,甚至习惯后,简直爱不释手,根本不想再使用以前的通俗写法。但是初学者很容易犯一些错误。本文介绍一下Stream中可能会使用的一个错误用法:Stream.max(Integer::max) 和 Stream.min(Integer::min)让我们先来看下如下代码:abcd分别输出什么?int a = Stream.of(2, 1,&n...
4个月前 (05-30) 阅读(260) 赞一个 (0) 评论(0) 链接直达
Java开发

GuavaCache RemovalListener 失效问题原因

问题Google 的 Java 工具包 Guava,确实很好用,特别是其中的 GuavaCache 算是经常使用到的本地缓存,这次需求是希望在 xxx min 之后做一个延时操作,虽然可以开一个定时任务做,但是由于当时代码里正好使用到了 GuavaCache,想起来可以基于 Key 的过期做一个回调方法不就行了嘛,猜测 GuavaCache 肯定是支持这样的回调 API 的,一查果然如此。于是乎,代码写得很快,如下:private&nb...
4个月前 (05-30) 阅读(254) 赞一个 (0) 评论(0) 链接直达
Java开发

jvm 指令工具 jstat 命令详解

jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载...
7个月前 (03-01) 阅读(257) 赞一个 (0) 评论(0) 链接直达
Java开发

内存溢出(Memory Overflow)和内存泄露(Memory Leak)的区别

内存溢出(Memory Overflow)和内存泄露(Memory Leak)的区别内存溢出:指你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,就是溢出。内存泄漏:指申请了一块内存,使用过后没有将内存释放,导致这块内存一直处于占用状态。内存泄漏的堆积最终会导致内存溢出。一、内存溢出指程序在申请内存时,没有足够的内存供申请者使用,举例:给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,就会导致内存...
7个月前 (03-01) 阅读(397) 赞一个 (0) 评论(0) 链接直达
Java开发

Mybatis 获取 insert 之后的主键 id

问题很多时候,我们需要获取到刚刚插入到数据库的数据的id是什么,这里的id可能有两种情况,一种是自增长的id,另外一种情况是用户自定义的id,例如生成的uuid。insert完成之后再去查询得到id,这样显然不太合适,很可能获取到的id不是自己想要的那条数据的id,只有在insert的过程中获取到id,再将其包装在结果集中一起返回,这样才能万无一失,保证返回id的准确性。实现方法实现方法:mybatis的selectKey标签配合sql...
10个月前 (12-11) 阅读(877) 赞一个 (3) 评论(0) 链接直达
Java开发

阿里巴巴Java开发手册(华山派)

《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。...
10个月前 (12-02) 阅读(727) 赞一个 (2) 评论(0) 链接直达
Java开发

Java8中的default关键字理解

default关键字介绍default是在java8中引入的关键字,也可称为Virtual extension methods——虚拟扩展方法。是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全...
10个月前 (11-29) 阅读(678) 赞一个 (2) 评论(0) 链接直达
Java开发

Alibaba Arthas 开源Java诊断工具使用

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。Arthas 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改...
10个月前 (11-27) 阅读(746) 赞一个 (1) 评论(0) 链接直达
Java开发

Linux下查看JDK安装路径

这篇博客,介绍几种常见的在Linux中查看JDK路径的方法。。。1、which java首先输入命令行,查看结果:~$ which java /usr/bin/java备注:which Java是无法定位到Java的安装路径的,只能定位到执行路径;whereis Java也无法定位,只能展示一部分的Java路径,如下所示:~# whereis java java: /usr/bin/...
11个月前 (11-14) 阅读(560) 赞一个 (1) 评论(0) 链接直达
Java开发

Java8为什么推荐使用LocalDateTime而不是Date

在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?通过阅读本篇文章你将了解到:为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改为什么需要LocalDate、LocalTime、LocalDateTimeDate如果不格式化,打印出的日期...
11个月前 (11-14) 阅读(728) 赞一个 (1) 评论(0) 链接直达

程序喵 www.ibloger.net

关于本站 站内留言 给我写信 文章订阅