随笔分类 - 常见问题汇总
记录开发过程中的一些小问题,但又是必须注意的。
摘要:在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式。这里以java.util.ArrayList为例来演示。 这里有一个最简单的测试类,里边有一个main方法 package com.my.template.service; impor
阅读全文
摘要:在平时的开发过程中,经常会用到循环,在写循环的过程中会有很多判断条件及逻辑,你知道如何结束一个循环吗?在java中有break、continue、reture三个关键字都可以结束循环,我们看下他们的区别。 一、break 1.1、单层循环 我们先看下在只有一层循环的情况下,break是怎么起作用的,
阅读全文
摘要:不知道大家在平时的开发过程中有没有注意到访问修饰符,哈哈哈,有没有懵,在java中有哪些访问修饰符,还记得清吗?今天想分享下访问修饰符的哪些小事。 一、访问修饰符有哪些 在java中提到访问修饰符,大家可能都不陌生,但对于访问修饰符我还是想再重申下,这些看似很普通的概念,在多年后的某个瞬间总能激起我
阅读全文
摘要:在上篇《java的自动拆箱会发生NPE》博客中接收了java中的Integer中的自动拆箱产生的NPE,其实对于所有的包装类来说都是一样的,都会产生这样的问题,大家需要举一反三,做学问学知识要懂得反思总结。 一、前情回顾 先回顾下上次的知识点, 自动拆箱 实际调用的是intValue()方法 自动装
阅读全文
摘要:平时的小细节,总能在关键时刻酿成线上事故,最近在代码中使用了Integer的自动拆箱功能,结果NPE(NullPointException)了,悲剧啊。。。 一、何为自动拆箱 要说自动拆箱,就必须说自动装箱,当然这里拆箱和装箱不是平时的把一个东西放到纸箱子里进行包装的意思,这里的装箱也有包装的意思,
阅读全文
摘要:一、问题 最近在写代码,有两个属性很相近的类,其中80%的属性(字段)都是一样的,剩下的才是各自不一样的,在设计的时候,采用了继承的方式,抽象除了一个父类,大概如下, 有FirstChild和SecondChild两个类,因为其中的属性name、code等是相同的,为此抽出了一个父类BaseDO,如
阅读全文
摘要:tomcat要运行依赖于JDK,tomcat服务器的CPU使用率过高,大多都是因为部署的web程序的问题。 一、现象描述 在一次线上环境,前台访问页面的速度越来越慢,从浏览器F12中看到发出的请求都是pengding的状态。 二、排查过程 我这里tomcat部署在linux环境中。下面的排查过程均在
阅读全文
摘要:在Java编程中我们经常会遇到异常,像空指针异常、数组越界异常等,但你真正了解异常吗,程序出现了异常我们要如何处理,在mvc的编程模式下要如何优雅的处理异常,这就是本文我们要解决的问题。 一、初始异常 在Java中所有的异常类有个超类那就是java.lang.Throwable,java API中对
阅读全文
摘要:问题描述 今天在使用spotbugs代码走查时发现这样一个问题,如下, 一看看上去这个代码没什么问题,打印了数组的值,关键是打印出的结果是什么?结果如下 那么问题来了,打印出上面一行东西,这是什么,初衷是要打印数组中的值,起码也是能看懂的呀 暴露的问题 上面的代码,暴露了下面的问题, 1、对toSt
阅读全文
摘要:下面我们来分析,上篇博客中遗留的问题,为什么下方的两个一个是true,两一个是false那? 在上面的代码中,是把字面量赋值给了一个引用类型,在一般情况下这是不被允许的,但java中有自动装箱/自动拆箱的概念,导致了上面的赋值操作正常运行,也就是对于8种基本数据类型,都有对应的包装类,byte、sh
阅读全文
摘要:接上篇,分析equals方法在Long包装类中的重写,其他类及我们自定义的类,同样可以根据需要重新equals方法。 equals方法定义 equals方法是Object类中的方法,java中所有的对象均继承自Object类,也就继承了equals方法,下面是Object类中equals方法的实现,
阅读全文
摘要:问题描述 今天在使用spotbugs代码走查时发现这样一个问题,两个Long类型的变量使用==判断数值是否相等,spotbugs提示这是一个很致命的错误,代码大概如下, 上面是两个Long类型的变量l1和l2,打印的结果是true,再看下面的代码, 同样是两个Long类型的变量l1和l2,打印的结果
阅读全文