Java开发

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

char 类型如何存储一个汉字的?

char如何存UTF-8字符?UTF-8的由来我们知道char是占两个字节的这个大家都知道,那UTF-8是什么呢?我们见得比较多,真正能说清楚的也不见得都能做到,在谈到UTF-8,我们不得不谈下Unicode,对于有些人来说Unicode可能稍微陌生点,但是说到ASCII码估计大家都知道。简单说明下,我们知道计算机只能识别0和1,那么如何将我们这个世界中如此众多的文字呈现或者传播呢?美国人搞了个ASCII码就是一个将英文中的字母和一些特...
4周前 (06-15) 阅读(99) 赞一个 (0) 评论(0) 链接直达
Java开发

为什么阿里强制要求接口返回值不允许使用枚举?

在谈论为什么之前先来科普下什么是二方库,二方库也称作二方包,一般指公司内部发布到中央仓库,可供公司内部其他应用依赖的库(jar 包)。那么一方库便是本工程内部子项目模块依赖的库;三方库为公司之外的开源库,比如像 fastjson、easyexcel 这种。下面我们就通过一个例子来看下为什么阿里巴巴不允许返回枚举类型或者包含枚举类型的 POJO 对象。比如星巴克提供了 0.0.1 版本的二方库,定义了一个 Starbucks 类,里面包含...
4周前 (06-15) 阅读(118) 赞一个 (1) 评论(0) 链接直达
Java开发

本来想用“{{”秀一波,结果却导致了内存溢出!

生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些“老同志”总是在不经意之间,给你无情的一脚,踹得你简直无法呼吸。但谁让咱年轻呢?吃亏要趁早,前路会更好。喝了这口温热的鸡汤,咱们来聊聊是怎么回事。事情是这样的,在一个不大不小的项目中,小王写下了这段代码:Map<String, String> map = new HashMap() {{  &nbs...
1个月前 (06-07) 阅读(131) 赞一个 (0) 评论(0) 链接直达
Java开发

Java8 开发过程常见的“坑”

失败?往List里面添加数据竟然提示不支持?日期明明间隔1年却输出1天,难不成这是天上人间?1582年神秘消失的10天JDK能否识别?Stream很高大上,List转Map却全失败……这些JDK8官方挖的坑,你踩过几个?# Base64:你是我解不开的迷出于用户隐私信息保护的目的,系统上需将姓名、身份证、手机号等敏感信息进行加密存储,很自然选择了AES算法,外面又套了一层Base64,之前用的是 sun.misc.BASE64Decod...
1个月前 (06-07) 阅读(105) 赞一个 (2) 评论(0) 链接直达
Java开发

一个图文讲解设计模式的网站,推荐

每次维护别人遗留的项目,看着一团乱麻的代码一头雾水的时候,是不是有想揪出作者揍一顿的冲动。别着急,今天就给大家介绍一种解决方案。设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。对于那些具有丰富的开发经验的开发人员,学习设计模式有助于了解在软件开发过...
1个月前 (06-07) 阅读(122) 赞一个 (0) 评论(0) 链接直达
Java开发

lambda 表达式导致 Arthas 无法 redefine 的问题

通过 arthas 的 redefine 命令,可以像 PHP 一样,不用重新发布,就可以改变程序行为。但是用多了,发现很多时候,我们就改了几行代码,甚至有的时候就添加了一行日志,就无法 redefine 了。提示:redefine error! java.lang.UnsupportedOperationException: class redefinition failed: attempted to add a method它提示...
1个月前 (06-07) 阅读(86) 赞一个 (1) 评论(0) 链接直达
Java开发

Arthas 灵异事件 tt、watch、monitor 执行两次问题排查

一、事件还原我在做项目的性能测试,用 arthas 查询耗时接口方法。监控 DocHandler 接口耗时,它有多个实现类。我们都知道,正常情况下,trace、tt、monitor、watch 都是只会有一个请求结果,而这个方法,每次却都是两次,这就让人很疑惑了。monitor 两次请求tt 两次请求tt -i xx 结果是一样,只是每次请求的耗时不一样。watch ...
1个月前 (06-04) 阅读(114) 赞一个 (0) 评论(0) 链接直达
Java开发

基于Spring 使用Arthas查看成员变量值

如何使用arthas查看成员变量搜了一下官方文档没找到合适方法直接查看对象的成员变量,发现一位朋友有这样一个办法,一般我们用Spring时,可以写一个Holder类,实现ApplicationContextWare接口,这样我们在Spring加载后可以获取其context变量,context.getBean可以通过类名获取对象。所以基于这个想法,可以这样写,完整示例如下:1、定义Holder类import org.spring...
1个月前 (05-30) 阅读(114) 赞一个 (0) 评论(0) 链接直达
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...
1个月前 (05-30) 阅读(115) 赞一个 (0) 评论(0) 链接直达
Java开发

GuavaCache RemovalListener 失效问题原因

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

jvm 指令工具 jstat 命令详解

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

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

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

程序喵 www.ibloger.net

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