自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mick_^_^的博客

生命不止代码不朽

  • 博客(121)
  • 资源 (2)
  • 收藏
  • 关注

转载 工作四年,分享50个让你代码更好的小建议

1. 仅是判断是否存在时,select count 比 select 具体的列,更好。我们经常遇到类似的业务场景,如,判断某个用户userId是否是会员。(反例): 一些小伙伴会这样实现,先查从用户信息表查出用户记录,然后再去判断是否是会员:<select id="selectUserByUserId" resultMap="BaseResultMap"> selct user_id , vip_flag from user_info where user_id =#{

2021-03-30 10:21:52 22

转载 正则表达式大全

转自小傅哥:https://bugstack.cn一、前言编程总在实践中出结果!正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,主流的正则引

2021-03-22 17:36:48 18

原创 Oracle 关键字大全

背景:最近做项目建表建字段后,在测试时发现报错了,java.sql.SQLSyntaxErrorException: ORA-01747: user.table.column, table.column 或列说明无效,经过百度发现是在数据库表中占用了Oracle数据库的关键字,下面我列一下Oracle的关键字大全1 ! 1 2 & 1 3 ( 1 4 ) 1 5 * 1 6 + 1 7 ,

2021-03-12 10:31:29 32

转载 一个月面了几家大厂 总结了5W字的后端面经

转载自:https://juejin.cn/post/6844904161612398600复习脑图:链接:https://pan.baidu.com/s/181fneGuvg24wiKeBaXs-Eg 提取码:c8jrSpringSpring框架的七大模块Spring Core:框架的最基础部分,提供 IoC 容器,对 bean 进行管理。Spring Context:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件...

2021-02-04 10:26:59 147

转载 Java面试通关要点汇总集

转载自:https://juejin.cn/post/6844903567338242061基础篇基本功面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals

2021-02-04 10:17:21 14

原创 SQL优化的45条建议

1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explain select * from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(SQL后悔药)在执行删除或者更新语句,尽量加上limit,以下面的这条 SQL 为例吧:delete from euser where age

2020-12-28 16:49:14 53

转载 Java日常开发的21个坑,你踩过几个?

转载自博客:https://juejin.cn/post/6910831193931923463前言最近看了极客时间的《Java业务开发常见错误100例》,再结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读~github地址,感谢每颗stargithub.com/whx123/Java…公众号:捡田螺的小男孩1. 六类典型空指针问题包装类型的空指针问题 级联调用的空指针问题 Equals方法左边的空指针问题 ConcurrentHashMap 类似容器不支持

2020-12-28 11:30:03 126

原创 Java获取天气情况

背景:项目中有个需求是根据行政区划编码获取当天天气情况,于是开始在网上找各种API,但是经过测试发现不是接口返回值乱码就是接口经常挂掉,后来经过多方搜索发现高德开放平台的天气查询接口很好用,地址:https://lbs.amap.com/api/webservice/guide/api/weatherinfo一、注册登录高德开放平台账户创建好应用后,点击添加按钮,为应用添加一个key值,名字随便起到这步,key值就申请好了二、根据API编写调用代码impo.

2020-12-24 11:05:41 139 1

原创 java中List的深拷贝

1.利用CollectionUtils的mergeArrayIntoCollection和Collections.copy结合实现深拷贝public class TechSysVo { @Getter @Setter private Long id; @Getter @Setter private String name; public TechSysVo() { }}import com.wsh.

2020-12-09 17:23:52 481

转载 代码优化大盘点:35 个 Java 代码优化魔鬼细节

转载自掘金:https://juejin.cn/post/6903792484204331021前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优

2020-12-09 14:26:12 70

原创 Java中数组的深拷贝和浅拷贝

一、数组浅拷贝的4种方式1. 使用 copyOf() 方法对数组进行复制jdk1.8的API文档中关于Arrays的copyOf方法: static boolean[] copyOf(boolean[]original, intnewLength) 使用 false (如有必要)复制指定的数组,截断或填充,以使副本具有指定的长度。 static byte[] copyOf(byte[]original, intnewLength)...

2020-12-09 12:11:42 187

原创 Java 浅拷贝和深拷贝

一、拷贝分类根据对对象属性的拷贝程度(基本数据类和引用类型),会分为两种:浅拷贝 (Shallow Copy) 深拷贝 (Deep Copy)1. 浅拷贝介绍浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝),即只复制对象空间而不复制资源。

2020-12-09 10:54:50 22

转载 《面试官,ThreadLocal 你要这么问,我就挂了!》

转载自小傅哥得虫洞栈:https://bugstack.cn/一、前言说到底,你真的会造火箭吗?常说面试造火箭,入职拧螺丝。但你真的有造火箭的本事吗,大部分都是不敢承认自己的知识盲区和技术瓶颈以及经验不足的自嘲。面试时:我希望你懂数据结构,因为这样的你在使用HashMap、ArrayList、LinkedList,更加得心应手。 我希望你懂散列算法,因为这样的你在设计路由时,会有很多选择;除法散列法、平方散列法、斐波那契(Fibonacci)散列法等。 我希望你懂开源代码,因为这样的

2020-12-01 15:12:21 43

转载 写代码有这16个好习惯,可以减少80%非业务的bug

转载自掘金:https://juejin.cn/post/6899077803665260557前言每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~github地址,感谢每颗stargithub.com/whx123/Java…公众号:捡田螺的小男孩1. 修改完代码,记得自测一下改完代码,自测一下 是每位程序员必备的基本素养。尤其不要抱有这种侥幸心理:我只是改了一个变量或者

2020-12-01 14:51:37 38

转载 讲点码德!避免这些代码坏味道,努力做一名优秀的程序员

转载自掘金:https://juejin.cn/post/6900924429435502605大家闭着眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净、整洁、命名规范、注释合理、高内聚低耦合……人人都想写好代码,因为看好代码就如同看一位五官端正的女子,心情愉悦、舒畅,而看糟糕的代码就如同看见腐烂的食物,闻起来也有一股坏味道。大多数人写的代码都不能称之为好代码,一方面由于自己技能限制,另一方面也可能根本就分不清好代码和坏代码,下面笔者结合日常编码实践与大家分享一下常见的代码坏味道。坏

2020-12-01 14:41:53 561

转载 太赞了,GitHub 上标星 115k+ 的 Java 教程!

转载自掘金:https://juejin.cn/post/6901093839051128839额,大家好啊,我是浑元形意门的学员小二哥(忍住别笑)。就在五个半小时前,有个小伙伴私信我说,“哥,能推荐一些高质量的 Java 教程吗?”我回他,“我写的教妹学 Java 不香吗?通俗易懂,风趣幽默,学起来多带劲......”没等我说完,他“啪”的一下就回过来了新的信息,很快啊。“哥,你那教程才更新到第 17 讲,我前后看了不下 5 遍了,确实学到了很多。但我还想更进一步啊,赶紧点,有没有其他的教程,

2020-12-01 14:34:57 50

原创 初识Java

专题一 Java基础1.1初识Java1.1.1Java语言概述Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上,后来随着互联网的兴起,Java语言迅速崛起(Java applet 可以在浏览器中运行),成为大型互联网项目的首选语言。2009年04月20日,美国甲骨文公司74亿美元收购Sun,取得java的版权。Java 是面向对象的语言,没有面向对象编程经验的读者需要

2020-12-01 09:57:00 193 2

原创 实现算命测八字获取节日的工具类-Lunar

lunar是一个无依赖的支持阳历和阴历的日历工具库,它开源免费,有javascript、java、c#、php、python、go、typescript版本,不依赖第三方,支持阳历阴历互转,它能用来制作日历,甚至算命。目前支持公历和农历、星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道黑道日及吉凶等。支持的时间跨度:1901-01-01(庚子年冬月十一)至2099-12-31(己未年冬月二十)。

2020-11-27 11:23:13 72

原创 Java数组

专题一 Java基础1.4 数组1.4.1数组的定义和访问概念:数组就是存储数据 长度固定 的容器,保证多个数据的数据类型要一致数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。本教程将为大家介绍 Java 数组的声明、创建和初始化,

2020-11-16 16:42:45 28

原创 Java中的随机数生成方法

第一种: 使用 Math中的random()方法,生成[0, 1.0)的double类型数据 想要得到某个范围内的随机数: (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: 得到1到100的随机数(int)(1+Math.random()*(100-1+1)) 第二种:使用java.util.Random类实现 Random构造方法://两种构造方法:Random r = new Random();//不包含随机种子Random...

2020-11-16 15:38:03 58

原创 Java流程控制

break;

2020-11-16 15:09:32 60

原创 Java中的数据类型和运算符

专题一 Java基础1.2 数据类型和运算符1.2.1 变量、标识符和关键字1.变量:在程序执行过程中,其值能被改变的量称为变量。定义变量(作用):定义变量就是告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它。以及它可以存放什么样的数据,在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量,为了便于操作,给这个空间取个名字称为变量名。定义变量的规则:变量必须是一个有效的标识符;变量名不可以使用Java中的关键字;变量名不能重复,选择有意义的单词作为变量.

2020-11-16 11:35:14 100

原创 Java实现插入排序及其优化

1.算法原理插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。2. 算法步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适

2020-11-13 14:42:08 33

转载 十大经典排序算法

载自:https://www.runoob.com/w3cnote/ten-sorting-algorithm.html排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度平方阶 (O(n2)) 排序 各类

2020-11-12 15:15:43 20

原创 Java中接口与抽象类的区别

一、相同点:1.都是抽象类型2.都可以有实现方法(JDK8之前不允许)3.都可以不需要实现类或者继承者去实现所有方法(JDK8之前不行,之后接口中的默认方法不需要实现者实现)二、不同点1.抽象类不可以多重继承,接口可以(无论是多重类型继承还是多重行为继承)2.抽象类和接口反映出的设计理念不同。抽象类反映的是“is-a”关系,接口标示的是“like-a”关系3.接口中定义的变量默认是public static final 类型,且必须给其初值,所以实现类中不能重新定义,也不能改变其

2020-11-12 13:57:19 18

原创 Java实现简单选择排序

一.原理选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序

2020-11-11 19:15:01 54

原创 Java实现冒泡排序及优化

一.原理讲解    冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较,以此类推,执行完为一个趟,趟数等于比较的个数减一.二、实现思路 用二重循环实现,外循环变量设为i,内循环变量设为j。假如有n个数需要进行排序,则外循环重复n-1次,内循环依次重复n-1,n-2,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,......

2020-11-11 19:08:06 27

原创 IDEA中设置Run Dashboard

微服务项目的开发过程中,工程会非常多,经常要启动很多个服务,才能完成一项测试。启动的多了,容易开发者带来错乱的感觉,很不方便管理。在idea作为开发工具时,推荐一个很好用的功能--Run Dashboard。方法一:直接通过IDEA中调出-》设置打开Run Dashboard (View-》Tool Windows-》Run Dashboard)方法二:通过修改.idea文件夹下的workspace.xml,在其中增加如下组件<component name="RunDashboard"&

2020-11-05 10:37:08 23

原创 Spring Cloud 最新版使用 Hystrix DashBoard 问题解决

Hystrix报错:Unable to connect to Command Metric Stream检查了pom文件 和启动类的注释都没有问题 后来发现是springboot版本的问题,版本1.5之前是不需要进行配置的 但是2.x之后是需要对Hystrix进行配置的。在hystrix-service的启动类中添加/** *此配置是为了服务监控而配置,与服务容错本身无关,springcloud升级后的坑 *ServletRegistrationBean因为springbo

2020-10-28 10:05:57 285 2

转载 Java的Hutool 工具类

转载自:https://juejin.im/post/6886594116500029448群里还有一部分小伙伴表示还不知道这个开源类库,第一次听说。所以我决定写一篇文章普及下,毕竟好的轮子值得推荐啊。Hutool 的作者在官网上说,Hutool 是 Hu+tool 的自造词(好像不用说,我们也能猜得到),“Hu”用来致敬他的“前任”公司,“tool”就是工具的意思,谐音就有意思了,“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”(一个开源类库,上升到了哲学的高度,作者厉害了)。看了一下

2020-10-23 12:09:16 418

原创 maven依赖中的type和scope

scope的分类compile默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。testscope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。runntimerunntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话

2020-10-23 09:40:28 59

原创 Java实现多个线程一起并发执行

面试人员:用Java的多线程模拟一个赛马,马场上有10匹马,要求他们同时起跑设计到的Java多线程技术:CountDownLatch或者CyclicBarrier/** * <p> * <p>Title:testCountDownLatch.java</p > * <p>Description: </p > * <p>Date:2020/10/20 14:53</p > * * @author wsh

2020-10-20 16:45:33 443

原创 Java类的加载机制(类加载和初始化顺序)

Java类加载机制中最重要的就是程序初始化过程,其中包含了静态资源,非静态资源,父类子类,构造方法之间的执行顺序。这类知识经常会出现在面试题中,如果没有搞清楚其原理,在复杂的开源设计中可能无法梳理其业务流程,是java程序员进阶的阻碍。 public class CodeBlockForJava extends BaseCodeBlock { { System.out.println("这里是子类的普通代码块"); } publi

2020-10-14 14:55:28 145 2

转载 面试官看完我手写的单例直接惊呆了!

转载自掘金:https://juejin.im/post/6877202342266175496前言单例模式应该算是 23 种设计模式中,最常见最容易考察的知识点了。经常会有面试官让手写单例模式,别到时候傻乎乎的说我不会。之前,我有介绍过单例模式的几种常见写法。还不知道的,传送门看这里:设计模式之单例模式本篇文章将展开一些不太容易想到的问题。带着你思考一下,传统的单例模式有哪些问题,并给出解决方案。让面试官眼中一亮,心道,小伙子有点东西啊!以下,以 DCL 单例模式为例。DCL

2020-10-12 11:44:57 26

转载 Java中volatile详解

絮叨这一篇也算是Java并发编程的开篇,看了很多资料,但是轮到自己去整理去总结的时候,发现还是要多看几遍资料才能完全理解。还有一个很重要的点就是,画图是加深印象和检验自己是否理解的一个非常好的方法。一、Volatile怎么念?看到这个单词一直不知道怎么发音英 [ˈvɒlətaɪl] 美 [ˈvɑːlətl]adj. [化学] 挥发性的;不稳定的;爆炸性的;反复无常的复制代码那Java中volatile又是干啥的呢?二、Java中volatile用来干啥...

2020-09-25 18:11:37 58

原创 Java 静态代理、Java动态代理、Cglib动态代理

前言代理模式(Proxy Pattern),23种java常用设计模式之一。代理模式的定义:代理类对被代理对象提供一种代理以控制对这个对象的访问。代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。个人理解:在生活中我们常常把不必要的事情丢给别人去完成,而这些不必要的部分相当于他们代替我们完成的,这就相当于是代理模式。例如:1、明星与经纪人:就假设在和甲方谈商演的时候,影视明星只负责决定是否去演出,而经纪人就需要先去联系甲方并和甲方商定角色和报酬,然后将结果告诉影

2020-09-25 10:35:38 36

转载 40K+Star!Mall电商实战项目开源回忆录

转载自:https://juejin.im/post/6873254935560093709摘要最近看了下我的Github,发现mall项目已经突破40K+Star,有点小激动!记得去年8月的时候mall项目刚过20K+Star,时隔1年多已经增长到了40K+Star。今天跟大家聊聊mall项目的发展历程,希望对大家有所启发!最近情况Github上面有个Java Topic排行榜,mall项目目前排在第9位,有很多小伙伴早就发现了,这里附上地址:github.com/topics/jav

2020-09-17 15:24:56 86

原创 编程知识不错的博客网站推荐

1、掘金:https://juejin.im/2、简书:https://www.jianshu.com/3、CSDN:https://www.csdn.net/4、bugstack虫洞栈:https://bugstack.cn/5、codercc:http://www.codercc.com/backend/basic/juc/6、博客园:https://www.cnblogs.com/7、GitHub:https://github.com/8、w3school:https:/.

2020-09-17 12:38:55 64

转载 值得一看的好书

读不在三更五鼓,功只怕一曝十寒!岁月从不辜负奋斗的人,愿努力拼搏学习的你,都能收获美好的前程!承遇朝霞,年少正恰。 整装戎马,刻印风华。目录一、推荐-日常推荐优秀书籍 二、Java/Spring-16本提升基本功的书籍 三、DB-2本数据库优秀书籍 四、Redis-深入学习Redis 五、架构&设计-提升架构能力和编写优秀代码 六、号主原创书籍[免费下载]-收集优秀原创技术号主PDF书籍 七、其他系列-拓展学习技能增强个人能力 八、人性-...

2020-09-17 12:21:12 953

转载 工作两年简历写成这样,谁要你呀!

转载自:https://bugstack.cn/一、前言最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了!我要加班,我要996,我要疯狂编码,求给我个机会…在程序这条职业发展的道路上,如果想专心走技术,并不断提升自己。那么,选择进入一个有挑战项目和一个可以跟随学技术的人,是非常重要的。而这样的资源和人脉基本还是来自一些

2020-09-17 12:07:32 90

LINUX教程:.pdf

Linux初级入门的一些命令和在Linux系统下一些软件的安装教程,对于初学Linux系统的小白很好用

2020-06-02

Java基础知识总结

Java基础知识整理,非常清晰有理。

2018-11-07

空空如也

空空如也

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

TA关注的人 TA的粉丝

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