- 博客(50)
- 收藏
- 关注
原创 idea中使用System.console()获取Console为null
idea中使用System.console()获取Console为null
2022-10-24 10:20:47
1091
原创 Integer a1 = 100;Integer a2 = 100;a1==a2;
Integer里面有一个IntegerCache缓存了-128-127
2022-10-14 09:26:03
284
原创 使用POI解析excel获取excel里的内容以及输出excel内容到新的excel
使用POI解析excel获取excel里的内容以及输出excel内容到新的excel
2022-06-22 09:07:05
428
原创 安全规约
1、隶属于用户个人的页面或者功能必须进行权限控制校验。(防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。)2、用户敏感数据禁止直接展示,必须对展示数据进行脱敏。(中国大陆个人手机号码显示为:137****0969,隐藏中间 4 位,防止隐私泄露。)3、用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,禁止字符串拼接 SQL 访问数据库。4、用户请求传入的任何参数必须做有效性验证。5、禁止向 HTML 页面
2021-08-26 10:38:56
139
原创 单元测试
1、好的单元测试必须遵守 AIR 原则。(A:Automatic(自动化) I:Independent(独立性) R:Repeatable(可重复))2、单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用System.out 来进行人肉验证,必须使用 assert 来验证。3、保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间决不能互相调用,也不能
2021-08-26 10:28:10
459
原创 异常日志-日志规约
1、应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。2、所有日志文件至少保存 15 天,因为有些异常具备以“周”为频次发生的特点。网络运行状态、安全相关信息、系统监测、管理后台操作、用户敏感操作需要留存相关的网络日志不少于 6 个月。3、应用中的扩展日志(如打点、临时监控、访问日志等)命名方式:appName_logType_logName.log。logType:日志类型
2021-08-26 10:07:48
343
原创 异常日志-异常处理
1、Java 类库中定义的可以通过预检查方式规避的 RuntimeException 异常不应该通过 catch 的方式来处理,比如:NullPointerException,IndexOutOfBoundsException 等等。2、异常不要用来做流程控制,条件控制。3、catch 时请分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的 catch 尽可能进行区分异常类型,再做对应的异常处理。4、捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,
2021-08-26 09:54:12
447
原创 编程规约-其他
1、在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。预编译是做些代码文本的替换工作。处理以# 开头的指令 , 比如拷贝 #include 包含的文件代码,#define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。C 编译系统在对程序进行通常的编译之前,首先进行预处理。2、velocity 调用 POJO 类的属性时,直接使用属性名取值即可,模板引擎会自动按规范
2021-08-25 18:05:54
98
原创 编程规约-注释规约
1、类、类属性、类方法的注释必须使用 Javadoc 规范。(Java 支持三种注释方式。前两种分别是 // 和 /* /,第三种被称作说明注释,它以 /* 开始,以 /结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。)2、所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。3、所有的类都必须添加创建者和创建日期。4、方法内部单行注释,在被注释语
2021-08-25 17:52:04
312
原创 编程规约-控制语句
1、在一个 switch 块内,每个 case 要么通过 continue/break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个default 语句并且放在最后,即使它什么代码也没有。2、当 switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行 null判断。3、在 if/else/for/while/do 语句中必须使用大括号。4、在高并发场景中,避免使用”等于”判断作为中断或退出的条件。
2021-08-25 17:43:18
176
原创 编程规约-OOP规约
1、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。2、所有的覆写方法,必须加@Override 注解。3、相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。{可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)}可变参数函数:又称参数个数可变函数(本文也简称变参函数),即函数参数数目可变。原型声明格式为:type VarArgFunc(type FixedArg1, type FixedAr
2021-08-25 15:03:56
232
原创 编程规约-代码格式
1、若大括号内为空,则写成{}即可,大括号中间无需换行和空格,如果是非空代码块:1) 左大括号前不换行。2) 左大括号后换行。3) 右大括号前换行。4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。2、左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;而左大括号前需要空格。3、if/for/while/switch/do 等保留字与括号之间都必须加空格。(指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)4、任何二目、三
2021-08-25 13:42:09
1576
原创 编程规约-常量定义
1、不允许未经预先定义的常量直接出现在代码中。2、在long或者Long赋值时,数值后使用大写的L。3、按常量功能进行归类,分开维护所有常量。4、常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。2) 应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。...
2021-08-25 12:05:48
162
原创 编程规约-命名风格
1、命名均不以下划线或美元符号开始,也不以下划线或美元符号结束。2、命名禁用拼音与英文混合的方式,不直接使用中文的方式。(hangzhou等国际通用名称可视同英文)3、类名使用UpperCamelCase风格,方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。4、常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚。5、抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始
2021-08-25 11:46:06
994
原创 Java核心机制之垃圾回收机制(GC)
目的在于清除不再使用的对象,当对象建立的时候垃圾收集器就开始监控对象的动态情况,垃圾收集主要是对内存的释放,创建对象的时候申请一个空间,不再使用的内存空间应回收。Java消除了程序员回收无用内存空间的职责;提供了一种系统级线程跟踪存储空间的分配情况。在JVM的空闲时,检查并释放可被释放的存储器空间;相比c++,开发人员负责要自己收回无用内存。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。GC的自动回收提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空
2021-08-21 19:57:27
182
原创 软件测试_01
B/S架构和C/S架构b/s:浏览器/服务器架构———类似淘宝、京东官网等。c/s:客户机/服务器架构———类似QQ,网易云音乐等。区别:C/S建立在专用网络上,小范围的网络环境,局域网间通过专门服务器提供连接和数据交换服务。B/S建立在广域网上,不需要专门的网络硬件环境。C/S一般面向相对固定的用户群,对信息安全控制能力强。B/S独立在局域网上,对安全的掌控能力弱,面向不可知的用户群。C/S程序由于整体性,必须整体考察,升级困难,多建立在Windows上,表现方法有限,对程序员要求较高。B/
2021-03-20 16:21:43
139
原创 css_day10
字体图标文字放大文字的特点,哪怕文字再大,都不会失真。 /* 字体图标相对于图片的优点 */ /* 1.图片放大会失真,但是字体图标不会失真 */ /* 2.字体图标更改颜色只需要控制color属性即可 */第一种方法使用字体图标 <link rel="stylesheet" href="../font/iconfont.css"> <!-- 第一步,必须要链接iconfont.css文件 --> <style>
2021-03-11 01:50:07
164
原创 css_day9
元素的显示与隐藏1.display属性 /* display: none; */ /* 元素消失,不保留位置 */ /* 工作中用的最多 */ visibility: hidden; /* 元素隐藏,保留原来的位置 */2.overflow的使用 overflow: hidden; /* 超出隐藏 */ overflow: sc
2021-03-09 22:42:05
83
原创 HTTP和HTTPS
HTTPHTTP(HyperText Transfer Protocol:超文本传输协议):是一种用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。其基于TCP/IP通信协议传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP默认工作在TCP协议的80端口,以明文方式发送内容,数据不加密,若有攻击者截取了浏览器与服务器之间的传输报文,可直接读懂其中信息。故HTTP不适合传输一些敏感信息,如密码信息等。HTTPSHTTPS(Hypertext
2021-03-09 14:59:55
2882
原创 Java框架之Spring
简介Spring是一个优秀的开源框架,使用基本的JavaBean来完成以前只可能由EJB(Enterprise Java Bean)完成的事情。JavaBean:JavaBean在一般情况下指的是实体类,是特殊的java类,基本构成就是一些字段和与之对应的 setter、getter方法,如果一个JavaBean需要在不同的JVM(Java Virtual Machine)的进程中进行传递,还需要实现Serializable接口。JavaBean与其他java类相比较独有的特征:提供一个默认的无参
2021-03-09 14:08:04
154
原创 css_day8
定位的量级标准流 一楼浮动流 二楼定位流 三楼(定位流可以覆盖浮动流,浮动流可以覆盖标准流) /* 定位元素,相互之间也有层级高低 */ /* 默认情况下,html结构代码越往后,那么层级就越高 */ /* 如果不想修改html的结构,但是也要修改盒子的层级———— z-index */ /* z-index只能控制定位元素的层级 */ /* 标准流与浮动流不能用z-index */
2021-03-08 21:28:24
73
原创 css_day7
浮动的影响 /* 在默认情况下,父盒子与子盒子都是标准流 */ /* 所以父盒子的高度由子盒子撑开 */ /* 当所有的子盒子都浮动了 */ /* 父盒子可能会失去高度 */ /* 父盒子是标准流,子盒子是浮动流 */ /* 浮动的元素不占据标准流位置 */ /* 清除浮动的影响:让父元素找回高度 */浮动的影响的解决高度法用overflow
2021-03-07 18:34:20
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人