6 赵丙双

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 17w+

ArrayList 源码详解 (JDK8)

文章目录类图声明RandomAccess 接口Cloneable 接口Serializable 接口List 接口AbstractList 抽象类属性DEFAULT_CAPACITYEMPTY_ELEMENTDATADEFAULTCAPACITY_EMPTY_ELEMENTDATAelementDatasize构造方法方法trimToSize()容量计算、扩容size()、isEmpty() 、 contains(Object o) 、indexOf(Object o)、lastIndexOf(Object

2020-06-07 18:14:57

Mysql DELETE语法

文章目录Mysql DELETE语法多表 DELETE语法DELETE + LIMIT参考Mysql DELETE语法多表 DELETE语法DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*] ...] FROM table_references [WHERE where_definition]DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tb

2020-05-23 12:09:27

validation参数检验 - 如何使用

文章目录Maven 依赖Spring MVC Controller 的输入验证 Path Variables、 Request Parameters、Request Header验证 RequestBody非 Controller 组件的方法自定义 Validator自定义一个验证需要的注解自定义 Constraint 注解注意点自定义一个 Validator定义一个 POJO 进行验证以纯代码方式使用 Validator,不依赖 Spring 的 `@Validate` 注解纯代码方式Spring 的非注

2020-05-23 11:26:33

validation参数检验 - 注解介绍

文章目录Maven 依赖注解介绍javax.validation 中的注解(22个)Null、NotNullNotBlankNotEmptySizeAssertFalse、AssertTrueDecimalMax、DecimalMin、Max、MinDigitsPositive、PositiveOrZero、Negative、NegativeOrZeroFuture、FutureOrPresent、Past、PastOrPresentEmail、Patternhibernate.validator 中的注解

2020-05-23 11:21:24

foreach 语法糖的原理

文章目录foreach 语法糖的原理集合 Collection测试代码反编译后的测试代码字节码数组测试代码反编译后的测试代码总结参考foreach 语法糖的原理foreach 是 Java 提供的语法糖,为了方便程序员使用而添加的。本文提供简单的例子说明一下原理。集合 Collection测试代码package me.zhao;import java.util.ArrayList;import java.util.List;public class ListTest { pub

2020-05-23 11:17:19

Spring JDBC Template使用小记

文章目录Spring JDBC Template表结构主要方法查询queryForObject 返回单个基本类型、字符串queryForObject 返回单个实体类queryForMap 返回单个Map结果集为空或多条时的解决方案queryForList 返回基本类型、字符串的Listquery 返回对象的List插入、更新、删除插入插入并返回自增的主键使用PreparedStatement,且插入的基本类型的字段为null报错批量插入更新、删除Spring JDBC Template表结构CREAT

2020-05-23 11:15:05

MySQL中的char、varchar(10)、varchar(1000)的区别

这里写自定义目录标题tipsMySQL中的varchar与char的区别varchar(100) 与varchar(1000)的区别参考tips若无特殊指明,文中提到的存储空间指的都是占用磁盘空间。MySQL中的varchar与char的区别存储空间    char(m)是固定长度的字符串,始终会占用 M 个字符长度的空间,如果长度小于 M,MyS...

2020-01-11 20:05:20

LeetCode707. 设计链表

单链表 - 无哨兵LeetCode707. 设计链表单链表 - 无哨兵LeetCode707. 设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链...

2019-11-17 13:31:12

负载均衡的策略

负载均衡的策略轮询每个请求会按时间顺序逐一分配到不同的后端服务器。在轮询中,如果服务器down掉了,会自动剔除该服务器。此策略适合服务器配置相当,无状态且短平快的服务使用。轮询(RoundRobin)将请求顺序循环地发到每个服务器。当其中某个服务器发生故障,AX就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常weight加权轮询权重越高分配到需要处理的请求越多...

2019-10-08 13:35:36

Redis事务、锁

Redis事务、锁MULTIEXECDISCARDWATCHUNWATCH参考Redis事务、锁的相关命令:MULTI、 EXEC、 DISCARD和、WATCH。事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务中的命令要么全部被执行,要么全部都不执行,执行但不保证执行成功。MULTIMULTI 命令用于开启一个事务,MULT...

2019-09-30 11:14:48

java的switch支持String类型的原理

java的switch支持String类型的原理Java的Switch从1.7之后开始支持String类型,那么是怎么做到的那?下面是一个简单的测试,将TestSwitchString.class用javap进行反编译,查看字节码。可以看到在17行先调用了String.HashCode()方法,再执行的switch,switch中的3614、3614恰好是s1、s2的hashCode。这说明J...

2019-09-29 09:16:02

java的switch支持包装类型吗?

TOP我们都知道java的switch支持6种数据类型:int、可以转换为int的byte、char、short以及String和枚举类型。那么支不支持基本类型的包装类型呢?包装类型能放在switch后面吗?下面两段代码都能正常运行并输出 1 ,说明包装类型能够放在switch后。package me.zhao.test;public class TestSwitchInt { ...

2019-09-27 17:08:02

java的字段能被重写吗?

[TOP]问题的来源在看周志明先生的《深入理解java虚拟机》的时候看到这么一句:在Java语言中字段是无法被重载的,两个字段的数据类型、修饰符不管是否相同,都必须使用不一样的名称,但是对于字节码来讲,如果两个字段的描述符不一致,那字段重名就是合法的。描述符指的是字段的数据类型、方法的参数列表(包括数量、类型以及顺序)和返回值。简单的理解就是Java语言中(也就是我们编码时)字段不能重...

2019-09-26 17:24:04

MySQL字符集不同导致不使用索引

MySQL字符集不同导致不使用索引表结构SQL排查过程删除主键explain extended + show warnings解决方案总结字符集相关文章有两张表订单表(order 875533条)、订单的错误日志表(order_error_log 41975条),order_error_log中存在order的id,做一个简单的关联查询,但是速度很慢。表结构CREATE TABLE `ord...

2019-09-20 15:10:26

java集合工具类Collections小记

同步集合 synchronizedXXX通过Collections的synchronizedXXX方法可以返回同步的线程安全的List、Set、Map,synchronizedXXX方法的内部实现方式也都比较简单粗暴,是将所有的方法调用以同步块包裹,比如SynchronizedCollection的部分源码如图。图片失效请点击public static <T> Collecti...

2019-09-13 15:06:13

为什么join会阻塞主(父)线程?

问题来源如下测试代码,输出的结果是主线程等待子线程 t 执行完成后,才会打印test,这是为什么? public static void main(String[] args) throws InterruptedException { Thread t = new Thread(() -> { System.out.println("t start"); try { ...

2019-09-10 12:21:23

HashMap自定义对象作为键的“失联”问题

HashMap自定义对象作为键的“失联”问题测试参考文章在改变已经存入HashMap的对象o的属性的时候,由于对象的hashCode依赖于对象的属性,所以hashCode同时也被改变了,但是HashMap不会重新计算对象的位置,也就是说这个对象存在了一个错误的位置,导致调用get(o)方法的时候拿到null(因为get方法计算的o的下标变化了,但是o还是存在老下标的位置),或者调用get(非o)...

2019-09-09 10:00:45

Java中的有序集合

Java中的有序集合面试的时候经常会被问道这样一个问题:Java集合中哪些是有序的,哪些不是?我们通常的回答是List、LinkedHashMap、LinkedHashSet、TreeMap、TreeSet是有序的,List、LinkedHashMap、LinkedHashSet、LinkedHashSet在遍历时会保持添加的顺序,TreeMap、TreeSet在遍历时会以自然顺序(Compa...

2019-09-07 19:58:52

HashMap线程不安全的场景

HashMap线程不安全的场景下图为HashMap的部分注解,大体意思是:如果多个线程同时访问HashMap,并且至少有一个线程做了结构上的修改,那么它必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅仅修改键值不是结构修改。)图片失效请点击put多个线程同时向Node[]的同一个位置插入时,会发生覆盖,只有一个线程的操作会被保留。如下图源码,假如有A、B两个线程...

2019-09-06 20:06:57

Springboot配置Servlet、Filter、Listener

Servlet、Filter、Listener代码package me.zhao.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServle...

2019-09-01 14:38:33

查看更多

勋章 我的勋章
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。