Fork me on GitHub
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 49 下一页
摘要: 简介 java程序的逻辑是由一个个的方法组成的,而在编写方法的过程中,我们也需要遵守一定的安全规则,比如方法的参数进行校验,不要在assert中添加业务逻辑,不要使用废弃或者过期的方法,做安全检查的方法一定要设置为private等。 今天我们再来深入的探讨一下,java方法的编写过程中还有哪些要注意 阅读全文
posted @ 2020-10-08 09:04 flydean 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 简介 Web Storage为浏览器提供了方便的key value存储,是一种比cookie更加方便简洁的存储方式。也是诸多客户端存储方式中非常常见的一种。 一起来看看吧。 浏览器的本地存储技术 除了最早的使用cookie来进行本地存储之外,现代浏览器使用Web Storage API来方便的进行k 阅读全文
posted @ 2020-10-06 09:08 flydean 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 简介 java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。 死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。 通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。 不同的加锁顺序 我们来看一个不同加锁顺 阅读全文
posted @ 2020-10-01 08:41 flydean 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 简介 异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢? 一起来看看吧。 异常简介 先上个图,看一下常见的几个异常类型。 所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception 阅读全文
posted @ 2020-09-29 09:14 flydean 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 简介 一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。 一个简单的SensitiveObject 假如我们有下面的一个SensitiveObject,它的作用就是存储一个 阅读全文
posted @ 2020-09-28 09:54 flydean 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 简介 之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。 而解决大范围的元素排序的办法就是基数排序。 基数排序的例子 什么是基数排序呢? 考虑一下,虽然我们不能直接将所有范围内的数字都 阅读全文
posted @ 2020-09-27 09:43 flydean 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 简介 java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。 不可变对象的可见性 不可变对象就是初始化之后不能够被修改的对象,那么是不是类中引入了不可变对象,所有对不可变对象的修改都立马对所有线程可见呢? 实 阅读全文
posted @ 2020-09-25 10:54 flydean 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 简介 今天我们介绍一种不需要作比较就能排序的算法:count排序。 count排序是一种空间换时间的算法,我们借助一个外部的count数组来统计各个元素出现的次数,从而最终完成排序。 count排序的例子 count排序有一定的限制,因为外部的count数组长度是和原数组的元素范围是一致的,所以co 阅读全文
posted @ 2020-09-23 10:18 flydean 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 今天我们将会讲解一下ES6中引入的语法新特性。 ECMAScript和JavaSc 阅读全文
posted @ 2020-09-22 09:39 flydean 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 简介 为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。 本文将带领大家探讨一下用户输入校验的一些场景。一起来看看吧。 在字符串标准化之后进行校验 通常我们在进行字符串校验的时候需要对一些特殊字符进行过滤,过滤之后再进行字符串 阅读全文
posted @ 2020-09-21 10:24 flydean 阅读(1718) 评论(0) 推荐(0) 编辑
摘要: 简介 什么是堆污染呢?堆污染是指当参数化类型变量引用的对象不是该参数化类型的对象时而发生的。 我们知道在JDK5中,引入了泛型的概念,我们可以在创建集合类的时候,指定该集合类中应该存储的对象类型。 如果在指定类型的集合中,引用了不同的类型,那么这种情况就叫做堆污染。 产生堆污染的例子 有同学可能会问 阅读全文
posted @ 2020-09-18 10:10 flydean 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 简介 一年两次的JDK最新版本JDK15在2020年9月15日正式发布了,这次的JDK15给我们带了隐藏类,EdDSA,模式匹配,Records,封闭类和Text Block等诸多新特性。 一起来看看吧。 JDK15的新特性 JEP 385 Deprecate RMI Activation for 阅读全文
posted @ 2020-09-16 21:28 flydean 阅读(8992) 评论(3) 推荐(0) 编辑
摘要: 简介 字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。 我们在使用字符和字符串编码的过程中会遇到哪些问题呢?一起来看看吧。 使用变长编码的不完全字符来创建字符串 阅读全文
posted @ 2020-09-16 09:38 flydean 阅读(787) 评论(1) 推荐(0) 编辑
摘要: 简介 快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并。 而快速排序虽然也是拆分,但是拆分之后的操作是从数组中选出一个中间节点,然后将数组分成两部分。 左边的部分小于中间节点,右边的部分大于中间节点 阅读全文
posted @ 2020-09-14 09:29 flydean 阅读(639) 评论(0) 推荐(1) 编辑
摘要: 简介 在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。 一起来看看吧。 Unicode的发展史 在很久很久以前,西方世界出现了一种叫做计算机的高科技产品。 初代计算机只能做些简单的 阅读全文
posted @ 2020-09-12 15:26 flydean 阅读(534) 评论(0) 推荐(1) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 49 下一页