自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!...

原创 java安全编码指南之:异常处理

异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢? 一起来看看吧。

2020-09-29 09:16:16 5512 16

原创 java安全编码指南之:敏感类的拷贝

一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。

2020-09-27 09:46:37 3108 5

原创 java安全编码指南之:可见性和原子性

java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。

2020-09-25 10:57:36 5893 17

原创 看动画学算法之:环检测算法-弗洛伊德的兔子和乌龟

环检测应该是一个非常常见的算法问题,怎么判断是否有环的问题呢? 一个很简单的做法就是用HashSet来保存要遍历的数据,如果出现了重复就知道这个链表是有环的。但是这个方法需要保存遍历过的所有的元素,所以其空间复杂度是o(n)。 有没有什么方法可以不用保存之前的元素也能够判断是否有环呢? 来看...

2020-09-23 10:01:52 4211 5

原创 ECMAScript 6新特性简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 今天我们将会讲解一下ES6中引入的语法新特性。

2020-09-22 09:41:12 5691 9

原创 java安全编码指南之:输入校验

为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。 本文将带领大家探讨一下用户输入校验的一些场景。一起来看看吧。

2020-09-21 10:27:04 4746 10

原创 java安全编码指南之:堆污染Heap pollution

什么是堆污染呢?堆污染是指当参数化类型变量引用的对象不是该参数化类型的对象时而发生的。 我们知道在JDK5中,引入了泛型的概念,我们可以在创建集合类的时候,指定该集合类中应该存储的对象类型。 如果在指定类型的集合中,引用了不同的类型,那么这种情况就叫做堆污染。

2020-09-18 10:08:20 3354 5

原创 JDK15真的来了,一起来看看它的新特性

一年两次的JDK最新版本JDK15在2020年9月15日正式发布了,这次的JDK15给我们带了隐藏类,EdDSA,模式匹配,Records,封闭类和Text Block等诸多新特性。

2020-09-16 21:30:07 5376 19

原创 java安全编码指南之:字符串和编码

字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。 我们在使用字符和字符串编码的过程中会遇到哪些问题呢?一起来看看吧。

2020-09-16 09:41:28 3372 6

原创 看动画学算法之:树状数组-BIT-Fenwick Tree

Fenwick Tree也叫做树状数组,或者Binary Indexed Tree(BIT),是一个查询和修改复杂度都为log(n)的数据结构。主要给定区间,求最值,或者求和。 接下来我们来具体讲解一下Fenwick Tree的概念。

2020-09-14 09:12:56 118 6

原创 一文解开java中字符串编码的小秘密

在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。 一起来看看吧。

2020-09-12 15:28:20 3485 5

原创 java安全编码指南之:Number操作

文章目录简介Number的范围区分位运算和算数运算注意不要使用0作为除数兼容C++的无符号整数类型NAN和INFINITY不要使用float或者double作为循环的计数器BigDecimal的构建类型转换问题 简介 java中可以被称为Number的有byte,short,int,long,fl...

2020-09-10 09:55:41 4923 6

原创 看动画学算法之:线段树-segmentTree

文章目录简介最小线段树线段树的构建线段树的搜索线段树的更新线段树的复杂度 简介 什么是线段树呢?线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 线段树的每个节点都表示一个区间,而根据线段树的不同特征,线段树的节点值可以表示这个区间里的最...

2020-09-09 08:42:02 109 5

原创 java安全编码指南之:表达式规则

文章目录简介注意表达式的返回值注意避免NullPointerException数组相等的判断基础类型的封装类间的比较集合中类型不匹配Asset的副作用 简介 在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧。 注意表达式的返回值...

2020-09-08 09:22:32 3557 4

原创 java安全编码指南之:声明和初始化

文章目录简介初始化顺序循环初始化不要使用java标准库中的类名作为自己的类名不要在增强的for语句中修改变量值 简介 在java对象和字段的初始化过程中会遇到哪些安全性问题呢?一起来看看吧。 初始化顺序 根据JLS(Java Language Specification)中的定义,class在初始...

2020-09-06 08:56:11 4219 4

原创 java安全编码指南之:Mutability可变性

文章目录简介可变对象和不可变对象创建mutable对象的拷贝为mutable类创建copy方法不要相信equals不要直接暴露可修改的属性public static fields应该被置位finalpublic static final field 应该是不可变的 简介 mutable(可变)和i...

2020-09-03 09:20:15 4258 5

原创 看动画学算法之:二叉堆Binary Heap

我们坐在高高的谷堆旁边,听妈妈讲那过去的事情。听到了堆,我就想起了这首歌。 没错,今天我们要介绍一个堆,这个堆叫做二叉堆。 二叉树我们之前讲过了,就是每个节点最多有两个子节点的树叫做二叉树。而二叉堆Binary Heap是一种特殊的二叉树。

2020-09-01 11:11:44 126 4

原创 java安全编码指南之:对象构建

Finalizer Attack是什么?它和对象创建有什么关系?一起来看看吧。

2020-09-01 09:29:59 3969 6

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