MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 中包含的内容可以被同一线程中执行的代
线程池的异常处理,我们常用execute() 和 submit() 方法进行任务提交,submit 需要通过返回值手动去获取异常,而execute 则会把异常直接输方法进行兜底。
如果依赖项在某个仓库中找到了,Maven 会将其下载到本地仓库,并在后续构建过程中直接
按照上面的流程,我们知道了,线程变量的值是存储在=
先了解下object 类实例假设在业务上,我们认为名字相同的便是同一个人猜想如果不重写 会发生什么下面看
组合(Composite Pattern)模式的定义:允许你将对象组合成树形结构来表现“整体下.........
当我们使用关键字 创建一个枚举类型时,他具有如下特性编译后的代码通过汇编指令,发现了枚举类型饰...............
引入我们知道每种数据库都是一个完整的独立的系统,假设我们现在的产品要兼容大多数数据库厂商,比如MySQL,Oracle,DB2等,那么怎么做呢?可以制作一些约定,大家都基于这个约定进行相关操作,比如调用者可以通过约定去连接数据库,而数据库厂商则根据这个约定实现连接数据库的具体操作。这个看起来有点像设计模式中的门面模式,调用者只需要对这个约定进行相关操作,而具体的实现由相应的厂商实现,假设要从My
定义观察者模式是一种对象行为模式,定义了对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式。被观察者public interface WeatherState { //注册天气显示板块 WeatherState register(WeatherDashborad weatherState);
简介我们在开发中偶尔会遇到一些小伙伴使用双括号“{{}}”来进行map或者list的初始化,类似下面示例这样示例public class MapTest { Map<String,Object> map = new HashMap<String,Object>(){ { put("1","one"); } }; List<Integer> list = new ArrayList<
原因总结JDK版本的问题;编译时的jdk和线上的JDK版本不一致怎么解决把编译时的jdk版本号转换成线上的jdk版本确定编译jdk这里我介绍用class文件确定选择某一个class文件用notepad++打开,如果是下面这样,就安装 Hex editor 插件然后按Ctrl+Alt+Shift+H ,便会转换成16进制前8个字节 ca fe ba be 是固定的,挨着后面的4个字节 00 00 是次版本号,次版本号后面的4个字节00 32 是jdk的版本号便可以
google的guava工具包有很多好东西,其中Multimap就特别的好用public static void main(String[] args) { //HashMultimap ArrayListMultimap LinkedHashMultimap TreeMultimap Multimap<String,Double> multimap = HashMultimap.create(); multimap.put("java",18
带标签的continue
带标签的continue参考自链接: http://c.biancheng.net/view/756.html.continue`
什么是Hash参考自链
什么是Hash参考自链接: https://www.cnblogs.com/s-b-b/p/6208565.h`
今日byte引发之尴尬今天遇到了一些问题,让我发现我基础还真挺弱的,哈哈~~~~~老`
今日byte引发之尴尬今天遇到了一些问题,让我发现我基础还真挺弱的,哈哈~~~~~老师讲课,有个同学提了一个问题,老师突然点名问我,我竟然一脸懵逼,不知道该怎么回答,问题如下,哎。。。。。。byte i = 8;//问题: 8是int类型,转换byte类型,怎么没有错呢我不知怎么回答,老师充满爱意的说,没事,错了也不要紧,结局就是我回答不上。尴尬啊byte的大小为8bits,占一个字节, byte类型数值范围是 -128 ~ 127,而数字8属于这个范围,所以是可以的,如果i = 128,超过
序列化和反序列化序列化和反序列化的定义Java序列化: 就是指把Java对象转换为字节序列的过程Java反序列化: 就是指把字节序列恢复为Java对象的过程。序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字节流中所保存的对象状态及描述信息)实现序列化的必备要求:只有
引用的那些事儿Java本身都是值传递式的调用,对于对象传递的是地址值。给地址值重新赋值等于重新指向,不会影响外层。话不多说,看代码//实体类public class Person { private String name; public Person(String name) { this.name = name; } public void setName(String name) { this.name = name;
什么是case穿透平时我们写 switch语句时,会搭配case,break,我们有时候会忘记写break,示例:int choice = 1;switch (choice) { case 1: System.out.println("春天"); case 2: System.out.println("夏天"); break;
咋们话不多说,直接上代码class A{ A(){ System.out.println("构造函数"); } { System.out.println("构造快"); } static { System.out.println("静态块"); }}运行试试,看看会打印出什么,哈哈public class Demo { public static void main(String[] args)
在开发中,我们难免会遇到一些关于EXCEL、WORD的操作,这是我们可以使用阿帕奇的POI,当然你也可以使用阿里的EasyPOI,看个人爱好,下面我将介绍阿帕奇的POI了解一下,两个版本,一个是03版本,后缀是.xls,最多65535行,耗时时间短,07版本,后缀是.xlsx,最多无限制行,耗时间较长首先是进行写表操作,如果表不存在,会自动创建表。03版本/** * @Auther: luo * @Date: 2020/8/16 14:01 * @Description: */publi
我们写程序时难免会发生各种错误,可能是逻辑上的错误,也有可能是代码本身就有问题,还有就是系统问题等等,为了解决这些问题,Java就有了一套异常处理体系。如下:异常分为两大类:ExceptionError错误Error是程序无法避免的,表示运行应用程序中出现了严重的错误。此类错误一般表示代码运行时JVM出现问题。通常有Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误),StackOverFlowError(栈溢出)等。比如说当jvm
Java 重写必须满足的条件(1)重写方法不能缩小访问权限;
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
Synchonized的实现当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁synchronized用的锁是存在Java对象头里的,如果对象是数组类型,则虚拟机用3个字宽 (Word)存储对象头,如果对象是非数组类型,则用2字宽存储对象头。代码块同步是使用monitorenter 和monitorexit指令实现的如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为1,该线程即为monitor的所有者;如果线程已经占有该monitor,只是重
动态修改注解的值import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.annotation.Scheduled;import java.lang.reflect.Field;import java.lang.reflect.InvocationHandler;import java.l
首先我们看看下面的输出会是什么public static void testIntegerCache(){
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号