自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(194)
  • 收藏
  • 关注

原创 java集合的互转

fastjson:list转mapList<Map<String, Object>> picsMapList = JSON.parseObject(JSON.toJSONString(picsList), new TypeReference<List<Map<String, Object>>>() {});map转listLis...

2019-11-29 10:32:54 97

原创 Java 中初始化 List 的五种方法

在 Java 中初始化 List 的五种方法1.构造 List 后使用 List.add 初始化2.使用 {{}} 双括号语法3.使用 Arrays.asList4.使用 Stream (JDK8)5.使用 Lists (JDK9)1.构造 List 后使用 List.add 初始化List<String> stringList = new LinkedList&lt...

2019-11-28 09:24:14 533

原创 jQuery代码设置input输入框 不可编辑的切换

1.开启disabled,是input不可以编辑$("#input_id").attr("disabled","disabled");2.关闭disabled$("#input_id").removeAttr(“disabled”);普通js中是这样写的,document.getElementById(“input_id”).disabled = false;3.设置input为di...

2019-11-27 17:46:34 1987

原创 js button按钮 隐藏显示

隐藏/显示$("#btnId").attr("style","display:none;");$("#btnId").attr("style","display:block;");$("#btnId").hide();$("#btnId").show();

2019-11-26 10:39:18 1645

原创 java 时间戳 与时间的转换

时间戳转换为时间Long timeStamp = System.currentTimeMillis(); //获取当前时间戳System.out.println(timeStamp);SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);String sd = sdf.format(new Date(Long.p...

2019-11-22 11:27:00 174

转载 面试最后一问:你有什么问题想问我吗?

https://blog.csdn.net/dyc87112/article/details/102676581

2019-11-21 17:49:57 147

原创 史上最全正则表达式语法

一、元字符元字符是构造正则表达式的一种基本元素。. :匹配除换行符以外的任意字符w:匹配字母或数字或下划线或汉字s:匹配任意的空白符d:匹配数字b:匹配单词的开始或结束^:匹配字符串的开始$:匹配字符串的结束匹配有abc开头的字符串:abc或者^abc 匹配8位数字的QQ号码:^dddddddd$ 匹配1开头11位数字的手机号码:^1dddddddddd$二、重复限定...

2019-11-21 17:45:00 735

原创 MySQL:数据库优化

前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷.1. 优化一览图2. 优化笔者将优化分为了两大类,软优化和硬优化,软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置.2.1 软优化2.1.1 查询语句优化1.首先我们可以用EXPL...

2019-11-18 11:54:16 91

原创 Lambda学习

从List的对象获取一个属性转换新的集合将List userList转换为List userIdListList<Integer> userIds = userList.stream().map(u -> u.getId()).collect(Collectors.toList());java8中使用Lambda表达式将list中实体类的两个字段转MapMap<S...

2019-11-18 11:40:54 138

原创 MyBatis limit分页设置

错误的写法:<select id="queryMyApplicationRecord" parameterType="MyApplicationRequest" resultMap="myApplicationMap"> SELECT a.*, FROM tb_user a WHERE 1=1 <if test="ids != n...

2019-11-15 15:37:23 379

原创 Ajax请求的参数

Ajax请求的参数post请求和get请求存放参数位置post请求和get请求存放参数位置是不同的:post方式参数存放在请求数据包的消息体中。get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&param2=value2的形式附加在URI字段之后。而request.setCharacterEncoding(charset);只对消息体中的数...

2019-11-09 11:31:07 267

原创 Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data

在常见业务开发中,POST请求常常在这些地方使用:前端表单提交时、调用接口代码时和使用Postman测试接口时。我们下面来一一了解:一、前端表单提交时application/x-www-form-urlencoded表单代码:<form action="http://localhost:8888/task/" method="POST">First name: <inp...

2019-11-09 10:06:21 713

原创 快速将String数组转换成Integer数组

首先需要在在pom.xml文件添加依赖:commons-beanutils commons-beanutils 1.8.3String[] stringArray = request.getParameter("aftIdList").split(",");//将String数组转成Integer数组Integer[] interArray = (Integer[])ConvertUtil...

2019-11-04 10:37:30 4902

原创 Java请求转发和请求重定向

一、请求转发和请求重定向的区别请求转发和请求重定向又分别称为服务器跳转和客户端跳转1.组件之间可否共享信息不同(本质区别)当客户端向服务器发送请求时,服务器收到请求后,会将请求封装成一个HttpServletRequest对象request,并且所有的请求参数都封装在request对象中,这个对象时Jsp的内置对象可以直接在Jsp中使用。服务器收到请求后,还需要请求别的页面,这是就有两种方式...

2019-10-30 11:53:24 582

原创 吃透ThreadLocal 源码的每一个细节和设计原理

引言ThreadLocal 是面试过程中非常高频的一个类,这类的复杂程度绝对是可以带出一系列连环炮的面试轰炸。一直觉得自己对这个类很了解了,但是直到去看源码,接二连三的技术浮出水面(弱引用,避免内存溢出的操作,开放地址法解决hash 冲突,各种内部类的复杂的关系),看到你怀疑人生,直到根据代码一步一步的画图才最终理解(所以本篇文章会有大量的图)。这里也给大家一个启示,面对复杂的事情的时候,实在...

2019-10-30 10:08:52 194

原创 MySql常用30种SQL查询语句优化方法

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is nul...

2019-10-30 09:41:15 85

原创 14个Java并发容器

不考虑多线程并发的情况下,容器类一般使用 ArrayList、HashMap 等线程不安全的类,效率更高。在并发场景下,常会用到 ConcurrentHashMap、ArrayBlockingQueue 等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。上面提到的线程安全容器都在 java.util.concurrent 包下,这个包下并发容器不少。ConcurrentHashMap:...

2019-10-30 09:06:51 60

原创 将List集合转化为用符号隔开的String字符串

org.apache.commons.lang3.StringUtils.join(list, “,”)运行结果:运行结果:方法一:public String listToString(List list, char separator) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < l...

2019-10-29 11:34:10 2391

原创 java在数字前面补零

String.format("%06d", i)主要实现如果一个数字为超过3位,则会在其前面补零以到达规定的位数,其中0是被填充到缺省位的数字,6代表规定数字的总位数 d代表是整型。...

2019-10-28 17:48:34 1795

原创 深入了解JAVA可变长度的参数(Varargs)

到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到让实参数量任意变化的目的。然而,有些方法的语义要求它们必须能接受个数可变的实参——例如著名的mai...

2019-10-26 23:24:42 113

原创 商业计算用BigDecimal的string构造器

package com.cheng.util; import java.math.BigDecimal; public class BigDecimalUtil { //不能在外部实例化,设置一个私有构造器 private BigDecimalUtil(){ } //加法 public static BigDecimal add(double...

2019-10-25 23:40:57 231

原创 Java中List循环遍历的时候删除当前对象(自己)

方法一Java代码ArrayList<String> list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("two"); list.add("two"); list.add(...

2019-10-24 17:18:04 1039

原创 获取实体对象的注解信息

public class QueryUnit { /** * 获取实体对象的注解信息(主要用于获取字段名称对应的数据库字段名称) * * @param c * @return Map<String, String> */ public static Map<String, String> getFields...

2019-10-15 12:16:34 1477

原创 空参数校验工具类

public class ValidateUtil { /** * 对象是否不为空(新增) * */ public static boolean isNotEmpty(Object o) { return !isEmpty(o); } /** * 对象是否为空 * */ publ...

2019-10-15 12:15:26 125

原创 专业解决 MySQL 查询速度慢与性能差

什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS:是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。客户机在发送请求时开始计时,收到服务器响应后结...

2019-10-12 11:39:12 175

原创 IntelliJ IDEA 2019从入门到癫狂

前言:IntelliJ IDEA如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着近期的不断开发实践和调试,逐步体会到这款智能IDE带来的巨大开发便利,在强大的插件功能支持下,诸如对Git和Maven的支持简直让人停不下来,各种代码提示,包括JS更是手到擒来,最终不得不被这款神奇的ID...

2019-10-12 11:04:13 82

原创 Java SE,EE,ME的区别

第一个我们说一下javaee,简而言之,企业版,用于web程序的开发第二个我们说一下javase,简而言之,标准版,用于桌面应用的程序开发。是我们必须学的编程语言第三个我们说一下javame,简而言之,小型版,用于手机应用,java游戏这里说一下java语言的特点就是跨平台性,写一个程序在windows能运行,在其他平台也能运行。java语言的,有一句话说特别好,叫一次编译随意运行J...

2019-10-12 10:43:52 98

原创 RabbitMQ和Kafka

前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。master queue:每个队列都分...

2019-10-11 17:35:31 77

原创 BeanUtils.copyProperties();将一个实体类的值复制到另外一个实体类

这两天做项目,用到了BeanUtils.copyProperties()这个方法,而在两个不同的类中使用到这个方法,但不知怎么的,就是有一个对象服务发copy另外个对象,最后排查终于找到原因。因为两个类引入了两个不同的BeanUtils类,一个为org.springframework.beans.BeanUtils,另一个是org.apache.commons.beanutils.BeanU...

2019-10-10 18:06:15 2316

原创 jdk8应该了解的几点内容

说明jdk8虽然出现很久了,但是可能我们还是有很多人并不太熟悉,本文主要就是介绍说明一些jdk8相关的内容。主要会讲解:lambda表达式方法引用默认方法Stream用Optional取代null新的日志和时间CompletableFuture去除了永久代(PermGen) 被元空间(Metaspace)代替我们来看看阿里规范里面涉及到jdk8相关内容:jd...

2019-10-08 14:35:09 172

原创 架构分析与实战

1、秒杀业务分析正常电子商务流程1、查询商品;2、创建订单;3、扣减库存;4、更新订单;5、付款;6、卖家发货;秒杀业务的特性1、低廉价格;2、大幅推广;3、瞬时售空;4、一般是定时上架;5、时间短、瞬时并发量高;2、秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:1.对现有网站...

2019-09-30 14:19:10 152

原创 分析9种 OOM 常见原因及解决方案

当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误。本文总结了常见的 OOM 原因及其解决方法,如下图所示。如有遗漏或错误,欢迎补充指正。1、Java heap space当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMemoryError:Javaheap space 错误(根据实际生产...

2019-09-30 10:51:38 1218

原创 Java泛型中的通配符 T,E,K,V,?

前言Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型带来的好处在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型...

2019-09-30 10:33:21 133

原创 Spring Boot 最重要的功能

Spring Boot 最重要的功能是:自动配置。为什么说是自动配置?Spring Boot 的开启注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:@Configuration@ComponentScan@EnableAutoConfiguration上面三个注解,前面两个都是 Spring 自带的,和 Spring Boot 无关,所以说上面...

2019-09-27 15:52:58 361

原创 volatile关键字

面试官: Java并发这块了解的怎么样?说说你对volatile关键字的理解就我理解的而言,被volatile修饰的共享变量,就具有了以下两点特性:1 . 保证了不同线程对该变量操作的内存可见性;2 . 禁止指令重排序面试官: 能不能详细说下什么是内存可见性,什么又是重排序呢?这个聊起来可就多了,我还是从Java内存模型说起吧。Java虚拟机规范试图定义一种Java内存模型(JMM),...

2019-09-27 15:46:08 94

原创 乐观锁和悲观锁

前言乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景。一、基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。悲观锁:悲观锁在...

2019-09-27 15:25:39 56

转载 Apache的架构师们遵循的30条设计原则

Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门。Srinath认为架构师应该扮演的角色是一个引导者,讨论发起者,花草修建者,而不是定义者和构建者。Srinath为了解决团队内部的架构纷争和抉择,制定了以下30条原则,这些原则被成员们广泛认可,也成为了新手架构师的学习途径。基本原则原则1:KISS(Keep i...

2019-09-23 11:32:43 47

原创 SpringBoot深度调优,让你的项目飞起来!

项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件application.properties。SpringBoot项目详细的配置文件修改文档https://docs.spring.io/spring-boot/docs/current/reference/htm...

2019-09-20 17:00:35 59

转载 如何优雅的导出Excel

前言公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出,释放生产力就显得很重要了。下面主要给大家分享一下该工具类的使用方法与实现思路。实现的功能点对于每个报表都相同的操作,我们很自然的会抽离出来,这个很简单。而最重要的是:如何把那些每个报表不相同的操作进行良好的封装,尽可能的提高复用性;针对以上的原则,主要实现了一下关键功能点:导出...

2019-09-20 16:44:34 121

原创 Java 8中Stream API的这些奇技淫巧!你都Get到了吗?

Stream简介1、Java 8引入了全新的Stream API。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。2、stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。3、只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,St...

2019-09-20 11:22:07 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除