- 博客(31)
- 收藏
- 关注
原创 MySQL高级笔记及脑图资料
最近在学习周阳老师的MySql高级,发现官网的资料只有pdf,所有在网上搜集的资料,整理下来。百度网盘地址:链接:https://pan.baidu.com/s/1sHMQRvnVrRtSmkPDVneMXw提取码:zfpp...
2020-01-03 17:42:33 11626 23
原创 idea版spring5.1.x源码环境搭建及demo
哈哈哈,不想一直当一个curd工程师,最近复习了反射、动态代理等知识,准备学习下spring源码。工具:IntelliJ IDEA 2019.1.3 、Jdk1.8.0_171、Gradle4.91.spring5.1.x源码地址:https://github.com/spring-projects/spring-framework/tree/5.1.x建议下载zip,会快一点2.G...
2020-03-29 16:50:20 844
原创 基于JDK的动态代理实现
前言必须具备反射相关知识,Spring AOP、IOC都是基于动态代理实现的,如果要学习Spring源码最好学习下动态代理。JDK 动态代理代理设计模式的原理:使用一个代理将对象包装起来,然后使用代理对象取代原始对象。任何对原始对象的调用都要经过代理对象代理。由代理对象决定是否以及何时将方法调用转到原对象上。动态代理动态代理是指客户通过代理类来调用其他对象的方法,并且是在程序运行时根...
2020-03-27 14:30:30 314
原创 git查看和删除远程分支
git branch -a 查看所有分支包括远程分支(红色部分)git branch 查看所有本地分支git push origin --delete 分支名 删除远程分支git branch -d 分支名 删除本地分支(不能在当前分支删除)git branch -D 分支名 强制删除本地分支...
2020-01-09 17:12:03 268
原创 IntelliJ IDEA 中Scanner在Junit下控制台不能输入的解决方式
问题在idea中使用单元测试,Scanner控制台输入无效。idea版本:2019.1.3junit版本:1.4.12解决方式:help =====》Edit Custom VM Options加上: -Deditable.java.test.console=true亲测可用,切记一定要在idea中更改这个配置,不然可能会无效。还有一种解决方式就是将Test里面的东西放入ma...
2019-12-23 19:20:02 2586 4
原创 Springmvc踩坑之org.springframework.http.converter.HttpMessageNotReadableException异常
当在get方法用@RequestBody会报org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing可以用@RequestParam注解代替
2019-09-19 22:09:38 2027
原创 高质量java代码笔记---建议10.不要在本类中覆静态导入的变量和方法
如果和静态导入的方法和常量同名,就会覆盖了静态导入的方法和常量,导致结果不一样package suggest.s10;import static java.lang.Math.PI;import static java.lang.Math.abs;/** * 建议10: * 不要在本类中覆静态导入的变量和方法 * @author Jerry * @create 2019-...
2019-09-17 20:30:52 97
原创 高质量java代码笔记---建议09.少用静态导入
Java5引入了静态导入语法(import static),其目的是为了减少字符输入量,提高代码可阅读性不使用静态导入:public class Client { /** * 计算圆面积 * @param r 半径 * @return */ public static double calCircleArea(double r){ ...
2019-09-17 20:29:17 144
原创 高质量java代码笔记---建议08.不要被旧语法困扰
" : " 语法是C中的旧语法goto,Java已经摒弃了public class Client { public static void methodA(){ System.out.println("方法A执行了"); //C中的goto语法,Java已经摒弃,用break,continue替代,但是保留了goto关键字 methodA:...
2019-09-17 20:25:23 133
原创 高质量java代码笔记---建议07.警惕自增陷阱
首先看代码:public class Client { public static void main(String[] args) { int count1=0; int count2=0; int num=10; for (int i=0;i<num;i++){ count1=count1+...
2019-09-17 20:24:14 132
原创 高质量java代码笔记---建议06.覆写变长方法也循规蹈矩
覆写(重写)必须满足的条件:重写方法不能缩小访问权限参数列表必须与被重写方法相同返回类型必须与被重写方法的相同或是其字类重写方法不能抛出新的异常,或者超出父类范围的异常,但是可以抛出更少、更有限的异常,或者不抛出异常。public class Client { public static void main(String[] args) { //向上转型 形参...
2019-09-17 20:20:24 112
原创 高质量java代码笔记---建议05.别让null值和空值威胁到变长方法
示例代码:public class Client { public void methodA(String str,Integer... itgs){ } public void methodA(String str,String...strs){ } public static void main(String[] args) { ...
2019-09-16 17:53:13 99
原创 高质量java代码笔记---建议04.避免带有变长参数的方法重载
在项目和系统开发中,为了提高方法的灵活度和可复用性,我们经常要传递不确定数量的参数类型,在jdk5之前常用的设计技巧就是把形参定义成Collection类型或其子类类型,或者数组类型,这种方法的缺点就是需要对空参数进行判断和筛选,比如实参为null值和长度为0的Collection或数组。而Java5引入变长参数(varags)就是为了更好地提高方法的复用性,让方法的调用者可以“随心所欲”地传递实...
2019-09-16 17:49:48 113
原创 高质量java代码笔记---建议03.三元操作符的类型务必一致
三元操作符是if-else的简化写法,在项目中使用它的地方很多,也非常好用,但是好用又简单的东西并不代表就可以随便用public class Ternary { public static void main(String[] args) { int i=80; String s1=String.valueOf(i<100?90:100); ...
2019-09-16 17:45:37 110
原创 高质量java代码笔记---建议02.莫让常量蜕变成变量
常量值务必在运行期保持不变代码如下:public class Const { public static void main(String[] args) { System.out.println("常量会变:"+Consts.RAND_CONST); }}/*接口常量*/interface Consts { //这还是常量吗? publ...
2019-09-16 17:40:59 90
原创 高质量java代码笔记---建议01.不要在常量和变量中出现易混淆的字母
包名全小写,类名首字母大写,常量全大写并用下划线分隔,变量采用驼峰命名法则(Camel Case)命名等,这些都是最基本的Java编码规范,但是在变量的声明中要注意不要引入容易混淆的字母。public class Client { public static void main(String[] args) { long i=1l; //结...
2019-09-16 17:32:34 155 1
原创 Java常用类之时间API
JDK8之前的时间API1. java.lang.System类中的currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差 @Test public void test01(){ long currentTimeMillis = System.currentTimeMillis(); //...
2019-09-04 21:48:29 232
原创 String、StringBuffer、StringBuilder的区别?
区别String (JDK1.0) : 不可变字符序列 底层使用char[]存储StringBuffer (JDK1.0) : 可变字符序列、效率低、线程安全 底层使用char[]存储StringBuilder (JDK1.5) : 可变字符序列、效率好、线程不安全 底层使用char[]存储注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和String...
2019-09-03 20:59:43 135
原创 单例设计模式
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像经典的棋谱,不同的棋局,我们用不同的棋谱“套路”。所谓类的单例设计模式,就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将该类的构造方法的访问权限设置...
2019-09-02 20:58:04 65
原创 ArrayList源码分析
List接口的特点有序、可重复“动态数组” 替换原生数组JDK api 中常用的List接口的实现类有 ArrayList 、LinkedList 、Vector相同点: 都实现了List接口,存储有序、可重复的数据不同点:ArrayList 是List接口的主要实现类 , 线程不安全,效率高。底层用Object[] elementData存储数据LinkedList 对...
2019-09-02 19:41:28 62
原创 带标签的break和continue的使用
break关键字用于结束当前循环举例说明:package flowcontrolstatement;/** * break 跳出当前循环(if不是循环) * continue 跳出当次循环 * @author Jerry * @create 2019-09-01 11:18 */public class BreakContinue{ public static void...
2019-09-01 12:04:04 215
原创 四、mybatis映射文件之自动映射
全局setting设置autoMappingBehavior默认是PARTIAL,开启自动映射的功能。唯一要求是列名和javaBean属性名一致如果autoMappingBehavior设置为null则会取消自动映射数据库字段命名规范POJO属性符合驼峰命名法,如A_COLUMN —>aColumn,我们可以开启驼峰命名映射功能,mapUnderscoreToCameCase=tru...
2019-08-26 23:53:06 352
原创 四、Mybatis映射文件
映射文件指导着Mybatis如何进行数据库曾删改查,有着非常重要的意义。文件头:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-...
2019-08-25 23:58:52 86
原创 mybatis异常之There is no getter for property named 'xxx' in 'class xxx'
异常org.apache.ibatis.reflection.ReflectionException:There is no getter for property named ‘xxx’ in ‘class xxx’原因: 一般是 动态sql中 if test= " " 中出现参数不对应得情况mapper文件中入参参数与bean(model)中属性不对应如果不是1中得原因,那就是m...
2019-08-25 23:22:40 413
原创 Mybatis参数处理
单个参数:mybatis不会做特殊处理,直接#{参数名} 取出参数值多个参数:mybatis会做特殊处理. 多个参数会被封装成一个map, key:param1...paramN value:传入参数的值 异常:org.apache.ibatis.binding.BindingException: Parameter ...
2019-08-22 22:08:58 158
原创 mybatis踩坑之org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)异常
一般工程解决方案检查mapper映射文件的namespace检查mybatis核心配置文件的 < mapers> package路径是否对应检查映射文件与接口里面的方法是否对应去掉映射文件的空格或者中文注释resultType或者parameterType是否对应Maven项目解决方案由于maven项目在src/main/java中只编译java文件,其他的文件会...
2019-08-21 23:19:24 979
原创 springcloud微服务
什么是微服务?微服务化就是把服务微小化。微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行独立启动或销毁,拥有自己独立的数据库。我所理解的微服务强调的是服务大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭义的看...
2019-08-20 23:32:11 67
原创 敏捷开发学习
何为敏捷项目管理顾名思义,“敏捷”代表快速响应,快速行动。“快”即它的核心,而敏捷项目管理在很多方面都很好地诠释了“快”。当面对项目范围不明确,且相关方需求快速变化的环境时,敏捷项目管理的理念显然是非常适用的。敏捷团队还要求团队成员必须积极主动、有沟通和合作精神、可以进行自我管理。在这样的团队中工作,每个团队成员的技术能力、沟通能力、表达能力和领导力也都能得以快速提高并成为团队中的核心成员。...
2019-08-19 23:17:55 214
原创 随笔-01
拖沓了许久,终于开始静下心来写博客了。毕业一年了,好的坏的经历了这么多,浮躁的心终于开始沉了下来。记得去年离职的时候,带我的师傅说让我多记笔记,多写博客,说他工作十余年最后悔的事情就是没有写博客,觉得丢失了一笔巨大的财富。所以让我一定要养成写博客的习惯,一定要写好笔记,这样学过的知识才会变成自己的财富。希望在接下来的日子里,每天至少写一篇博客,记录点点滴滴。“No great aspirati...
2019-08-18 23:32:55 128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人