- 博客(14)
- 收藏
- 关注
原创 跳跃表的原理和实现(Java)
一、高效查找算法我们在实际开发中经常会有在一堆数据中查找一个指定数据的需求,而常用的支持高效查找算法的实现方式有以下几种:有序数组:这种方式的存储结构,优点是支持数据的随机访问,并且可以采用二分查找算法降低查找操作的复杂度。缺点同样很明显,插入和删除数据时,为了保持元素的有序性,需要进行大量的移动数据的操作。二叉查找树:如果需要一个既支持高效的二分查找算法,又能快速的进行插入和删除操作的数据结构,那首先就是二叉查找树莫属了。缺点是在某些极端情况下,二叉查找树有可能变成一个线性链表。平衡二叉树:二.
2020-09-02 22:53:53 3282 2
原创 JDK1.8新特性(五):新的日期时间 API
Java 8 在 java.time 包中包含一个全新的日期和时间 API。新的 Date API 与 Joda-Time 库具有可比性,但是并不相同。下面的示例涵盖了这个新API的最重要部分。在《阿里巴巴 Java 开发手册》中有提到,SimpleDateFormat 是线程不安全的类,一般不要定义为static变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。正例:注意线程安全,使用 DateUtils。亦推荐如下处理:private static final Thr
2020-08-18 21:42:28 276
原创 JDK1.8新特性(四):Maps
之前有提到,Maps 类型不支持 streams,Map 接口本身没有stream()方法,您可以通过map.keyset ().stream()、map.values().stream() 和 map.entryset ().stream()来在映射的键、值或条目上创建专门的流。此外,maps 支持用于执行常见任务的各种新方法。Map<Integer, String> map = new HashMap<>();for (int i = 0; i < 10; i++)
2020-08-13 22:40:52 472
转载 JDK1.8新特性(三):Stream
Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。Stream API 提供了一种高效且易于使用的处理数据的方式。一、什么是 StreamStream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水
2020-08-13 22:38:12 1339
原创 JDK1.8新特性(二):Optional 类
在我们的开发中,NullPointerException 可谓是随时随处可见,为了避免空指针异常,我们常常需要进行一些防御式的检查,所以在代码中常常可见 if(obj != null) 这样的判断。幸好在 JDK1.8 中,Java 为我们提供了一个 Optional 类,Optional 类能让我们省掉繁琐的非空的判断。下面我们先快速过一下 Optional 中为我们提供的方法:方法描述of把指定的值封装为 Optional 对象,如果指定的值为 null,则抛出 NullPoi
2020-08-09 21:52:23 204
原创 JDK1.8新特性(一):Lambda表达式
Lambda 表达式Java 8 是 Java 语言开发的一个主要版本,Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,现在已经发布了 Java 11 和 Java 13。但 Java 8 还是目前使用最多的版本,最主要的原因是能在我们编程过程中带来很多便利,特别是 Lambda 表达式和 Stream 的支持,使得程序设计更加简洁,代码量更少,能把二三十行的代码,简化到十行以内,你敢信?快用上这些新特性来试试吧。看到 GitHub 上面有个关于 Java 8 的英文仓库, 新
2020-08-09 21:49:31 250
转载 淘宝服务端高并发分布式架构演进之路
1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和...
2019-06-06 10:42:02 144
原创 Web安全测试常见漏洞解析(下)
注意:文章原创作者:健人卢,转载请注明出处 https://blog.csdn.net/lujianhao_ios/article/details/79747327本文中将涉及以下类型的安全漏洞本文中将涉及以下类型的安全漏洞SSRF跨站服务端请求伪造危害解决方案CSRF请求伪造危害解决方案SQL注入登陆场景解决方案暴力破解/重放攻击暴力破解...
2018-03-29 19:58:17 2098
原创 Web安全测试常见漏洞解析(上)
注意:文章原创作者:健人卢,转载请注明出处 https://blog.csdn.net/lujianhao_ios/article/details/79733833。本文中将涉及以下类型的安全漏洞本文中将涉及以下类型的安全漏洞权控缺失垂直越权平行越权解决方案逻辑漏洞解决方案条件竞争常见场景解决方案XSS跨站脚本攻击非持久型跨站(反射型)...
2018-03-29 15:32:54 4328
转载 Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
PO(persistant object)持久对象通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 Java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain Object)领域对象就是从现实世界中抽象出来的有形或无形的业务实体。一般...
2017-12-15 14:17:20 281
原创 HTTP状态码大全
HTTP状态码大全标准扩展码1xx Informational 信息化100 Continue 继续 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。101 Switching Protocols ...
2017-10-19 16:10:47 751
原创 理解MySQL数据库中四种连接-内连接、左外连接、右外连接、交叉连接
本文章主要对目前比较常用的SQL四种连接方式进行介绍,文笔略有粗糙,还请阅读的朋友多提些建议。四种连接方式:内连接(INNER JOIN)左外连接(LEFT JOIN)右外连接(RIGHT JOIN)交叉连接(CROSS JOIN)接下将对四种连接方式做详细的介绍首先先创建出两张下面会用到的a、b两张表。 例:a表 id name 1 张三 2 李四 3 王
2017-08-03 11:17:43 2399
原创 Java中Integer和int的区别
Integer和int的区别Integer是int提供的封装类,而int是Java的基本数据类型;Integer默认值是null,而int默认值是0;声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;Integer是对象,用一个引用指向这个对象,而int是基本类型,直接存储数值。除了知道Integer和int最基本的区别外,还需要了解一点其他关于Integer和int
2017-08-02 20:23:28 535
原创 Java数组
一维数组声明数组初始化处理数组数组作为函数的参数数组作为函数的返回值多维数组数组概述1、数组可以看成是多个相同数据类型数据的组合,对这些数据的统一管理。 2、数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 3、数组中的元素可以是任何类型,包括基本类型和引用类型。 一维数组声明 type var[]; 或type[] var; 例如:int
2017-08-02 17:12:51 223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人