java
文章平均质量分 79
Crazy高
坚持创新,勇于面对问题,追求自在,追求个性化
展开
-
spring boot 默认配置三个深坑,一个比一个耗时
1、dispatcherServlet 是懒加载的2、数据库链接是懒加载的3、linux 下真随机数生成器设置 spring.mvc.servlet.load-on-startup=1启动方法拿个 dao 的 bean,跑个小查询加启动参数 -Djava.security.egd=file:/dev/./urandom...原创 2020-04-11 16:16:36 · 383 阅读 · 0 评论 -
常见错误码及定义
错误码暂定都是5位数字,并配有相应的英文解释。错误码为 0 表示成功,其他都表示错误。错误码按模块按功能场景分级分段,前三位错误码表示模块,第四位表示模块下的功能。举例,商城系统里有交易模块和商品模块,则可以这样划分:401开头的表示交易模块,402开头的表示商品模块,4011开头的表示交易模块里的下单场景需要用到的错误码,4021表示商品模块下的添加商品场景里需要用到的错误码。如果某个场景...转载 2019-11-19 11:51:01 · 5946 阅读 · 0 评论 -
NPE问题
NPE,指为基本类型的数据返回null值,防止NPE是程序员的基本休养。所有NPE的场景:返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE。public int f() { return Integer 对象; } 如果为null,自动解箱抛NPE。数据库的查询结果可能为null。集合里的元素即使isNotEmpty,取出的数据元素...原创 2019-06-18 11:21:57 · 11788 阅读 · 0 评论 -
JDBC数据库连接池详解
引言近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的早期,主要使用的技术是CGI﹑ASP﹑PHP等。之后,Sun公司推出...原创 2019-06-20 16:07:56 · 324 阅读 · 0 评论 -
如何生成token值
Token 值是将请求源串以及 Secret 通过 MD5 算法生成的,用来提高传输过程参数的防篡改性。 token 值的生成共有 2 个步骤:构造源串,生成 token 值。 1. 构建源串 a.获取要请求 URI(统一资源标识符,即域名后面的地址串 示例:/openapi/service/vss/preview/getPreviewParamByCameraUuid);...原创 2018-09-06 11:04:09 · 25220 阅读 · 1 评论 -
设计模式之桥接模式
举个例子,男孩送女孩礼物,礼物有两个维度,根据以下区分:按样貌可以分为温暖型、狂野型按具体礼物种类分为戒子、鲜花如果男孩要送女孩温暖型的戒子,或者狂野型的鲜花,那应该怎么实现呢?1、定义礼物类public abstract class Gift { protected GiftImpl impl;}2、定义具体礼物类public abstract class...原创 2018-06-05 11:52:04 · 210 阅读 · 0 评论 -
Java反射机制详解
目的:由于Java的各种框架大多都会用到反射机制,因此了解反射机制非常必要。 先看Java程序的运行过程,类加载机制: 通过ClassLoader将XXX.class类Load到内存中CodeSegment里面,运行环境找到main方法开始执行,遇到一个类load一个类,并非一次性加载。静态块不管new几次都只执行一次,动态块每new一个对象,就执行一次。 详细的Load过程可以根据...原创 2018-03-02 14:55:33 · 248 阅读 · 0 评论 -
Java多线程详解
线程基本概念线程是一个程序内部的顺序控制流 也就是说线程是一个程序里不同的执行路径,理解这个概念就足够了。 线程和进程的区别每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销。线程可以看成轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。多进程:操作系统能同时运行多个任务(程序)。多线程:在同一个应用...原创 2018-03-08 22:51:57 · 3737 阅读 · 0 评论 -
设计模式之责任链模式
假设有一条消息:"大家好!我是王尼玛:),欢迎收看尼玛直播。<script>一个傻B的经常犯的错误,系统不正常。" 笑脸需要被替换,script脚本也需要被替换,“系统”、“傻B”等敏感词也得被替换,那么我们应该如何处理这样的需求呢? 简单的实现: 在确定的过滤规则上,我们可以这样实现,但我们想要的结果是,将来这条信息可以动态添加或删除一些未知的过滤条件,并且支持排序,那...原创 2018-03-07 18:20:12 · 197 阅读 · 0 评论 -
使用IntelliJ IDEA 配置Maven(入门)
转载来源下载Maven 官方地址:http://maven.apache.org/download.cgi下载解压并新建一个本地仓库文件夹解压新建本地仓库2.配置本地仓库路径 打开此文件 这里写图片描述3.配置maven环境变量点击更改设置 点击环境变量 新建M2_HOME 配置Path 查询是否配置成功4.在IntelliJ IDEA中配置maven 打开-Fi转载 2017-09-22 10:54:43 · 476 阅读 · 0 评论 -
Java环境变量及Dos编译
第一,添加环境系统变量Path,用户变量只对当前用户起作用,为了支持所有用户,所以添加系统变量 第二,添加系统变量classpath,添加jdk路径,例如:C:\Program Files\Java 第三,命令行下,echo %path% 查看(输出)环境变量配置 第四,编译Java程序,javac HelloWord.java (注意:Java文件名和类名一致) 第五,运行Java程序,J原创 2017-08-06 14:06:32 · 285 阅读 · 0 评论 -
Java入门名词,关键字解释
对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体 类是用来创建同一类型的对象模板 局部变量需要初始化,成员变量不初始化,系统会给默认值 final关键字: final的变量值不能被改变,成员变量和局部变量(形参) final的方法不能被重写 final的类不能被继承IO流流的分类:根据流向可以分为:InputStream/OutputStream输入/输出...原创 2017-08-06 14:34:44 · 363 阅读 · 1 评论 -
Java内存的一点理解, 静态方法和实例方法的区别及使用场景
注意:变量指基本数据类型非对象,局部变量不能被静态修饰 1、(静态)成员变量存放在data segment区(数据区),字符串常量也存放在该区 2、非静态变量,new出来的对象存放在堆内存,所有局部变量和引用地址存放在栈内存 3、方法(包括静态方法)存放在code segment(方法块),存放代码片段,且只存放一次public class Cat { //private static原创 2017-08-06 13:40:56 · 14835 阅读 · 2 评论 -
Eclipse快捷键大全
eclipse 查看变量或方法在什么地方被调用的快捷键 选中方法名,点鼠标右键,菜单里有个”打开调用层次结构 ( Open Call Hierarchy )“,选中或者按下快捷键Ctrl+Alt+H,就在下面栏目里能看到调用的树形结构了。 或者: 1.双击选中变量或者方法 2.键盘上Ctrl+shift+G组合键原创 2017-08-17 11:16:31 · 160 阅读 · 0 评论 -
Android 单元测试介绍
1、JUnit 最基础、应用最为广泛的单元测试框架 2、Mockito Java中最流行的mock(模拟)测试框架,只能mock出public 3、PowerMock 可以mock静态、final、private方法的框架 4、编写测试用例JUnit是什么?JUnit用于编写和运行可重复的自动化测试开源框架,保证代码按预期工作Junit有哪些作用?1、断言测试预期结果 2、测试功能共享通用的原创 2017-02-09 12:10:24 · 333 阅读 · 0 评论 -
Android 内存释放与泄漏的一点理解
例如class A: A a = new A(); a 是引用,new A()是实例,实例是需要分配内存 如果引用a没有赋值,那么引用a就相当于null,因此引用是不会占用内存,当实例new A()没有任何被引用指向,那new A()会被GC回收例如class B implements Callback: 当B需要调用请求数据的方法,且需要传Callback的实现时,那么B的实例将被方法内的原创 2017-02-08 15:50:24 · 277 阅读 · 0 评论 -
CheckStyle-IDEA插件在Android Studio或IntelliJ IDEA的使用
第一步 下载CheckStyle-IDEA插件以下是已经安装的情况未安装请先安装(点击Browse repositories–>再搜索CheckStyle–>找到CheckStyle-IDEA–>再点击Install–>自动安装完成后重启AS) 第二步 导入规则文件找到Other Settings –>点击Checkstyle–>再点击Configuration File的加号 先填写规则描述名原创 2017-02-07 12:01:10 · 3216 阅读 · 0 评论 -
迭代时注意的问题
迭代的时候,不能对此集合做更新或删除操作例如:List<String> famous = new ArrayList<String>(); famous.add("liudehua"); famous.add("madehua"); famous.add("liushishi"); famous.add("tangwei"); for (String s原创 2016-09-26 18:16:17 · 672 阅读 · 0 评论