Fork me on GitHub
摘要:简介 区块链是一种防篡改的共享数字分布式账本,可记录公共或私有对等网络中的交易。分布式账本分布到网络中的所有成员节点,以加密散列链接的块的顺序链,永久记录网络中对等点之间发生的资产交换的历史记录。 区块链的广为人知是从比特币开始的,但是区块链不是比特币,区块链只是比特币底层的技术基础。比特币可以看做 阅读全文
posted @ 2020-05-21 07:02 flydean 阅读(251) 评论(1) 推荐(0) 编辑
摘要:简介 自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Spring作为一个轻量级的J2EE应用框架,就是针对EJB的复杂特性而设计的,最后毫无疑问,Spring凭借它的简洁,可理解性和可用性赢得了最后的胜利。 Spring从最初的xml配置到后面的注解配置,一直都在不断的进步, 阅读全文
posted @ 2020-05-20 06:59 flydean 阅读(240) 评论(0) 推荐(0) 编辑
摘要:简介 是什么让java世界变得更好,程序员变得更友爱,秃头率变得不是那么的高,让程序员不必再每天996,有时间找个女朋友? 是Spring。 是什么让企业级java应用变得简单易懂,降低了java程序员的进入门槛,导致了现在遍地都是java程序员的窘境? 是Spring。 是什么从无冕之王变成了事实 阅读全文
posted @ 2020-05-20 06:45 flydean 阅读(749) 评论(0) 推荐(0) 编辑
摘要:java作为第一大编程语言,可谓源远流长,一代又一代的java程序员前仆后继走在java学习的路上。java程序员的学习之路在2020年又有什么变化呢?本文详细附上了每一个部分所需知识的教程链接地址,并会持续更新,希望能够和大家一起进步! 阅读全文
posted @ 2020-04-13 10:20 flydean 阅读(1677) 评论(1) 推荐(0) 编辑
摘要:简介 对于现代浏览器来说,为了提升效率和处理更加复杂的客户端操作,通常都需要将数据存储在客户端,也就是本地磁盘上。那么这个存储有没有什么限制?如果数据存满了之后,如何进行数据的淘汰和置换? 一起来看看吧。 常用的客户端存储方式 客户的存储方式都有哪些呢? 我们看一下比较常用的几种方式: Indexe 阅读全文
posted @ 2020-10-21 08:43 flydean 阅读(98) 评论(1) 推荐(1) 编辑
摘要:简介 在java中,除了单个使用Thread之外,我们还会使用到ThreadPool来构建线程池,那么在使用线程池的过程中需要注意哪些事情呢? 一起来看看吧。 java自带的线程池 java提供了一个非常好用的工具类Executors,通过Executors我们可以非常方便的创建出一系列的线程池: 阅读全文
posted @ 2020-10-20 09:42 flydean 阅读(138) 评论(0) 推荐(0) 编辑
摘要:简介 java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢? 一起来看一看吧。 start一个Thread Thread中有两个方法,一个是start方法,一个是run方法,两个都可以调用,那么两个有什么区别呢? 先看一下start方法: 阅读全文
posted @ 2020-10-19 09:17 flydean 阅读(147) 评论(0) 推荐(1) 编辑
摘要:简介 在很久很久以前,我们是怎么创建Spring Boot的docker image呢?最最通用的办法就是将Spring boot的应用程序打包成一个fat jar,然后写一个docker file,将这个fat jar制作成为一个docker image然后运行。 今天我们来体验一下Spring 阅读全文
posted @ 2020-10-16 08:58 flydean 阅读(337) 评论(0) 推荐(0) 编辑
摘要:简介 双重检测锁定模式是一种设计模式,我们通过首次检测锁定条件而不是实际获得锁从而减少获取锁的开销。 双重检查锁定模式用法通常用于实现执行延迟初始化的单例工厂模式。延迟初始化推迟了成员字段或成员字段引用的对象的构造,直到实际需要才真正的创建。 但是我们需要非常小心的使用双重检测模式,以避免发送错误。 阅读全文
posted @ 2020-10-14 08:58 flydean 阅读(109) 评论(0) 推荐(0) 编辑
摘要:简介 注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。 SQL注入 什么是SQL注入呢? SQL注入的意思是,用户输入了某些参数,最终导致SQL的执行偏离了程序设计者的本意,从而导致越权或者其他类型的错误。 也就是说因为用户输入的原因,导致SQL的涵义 阅读全文
posted @ 2020-10-12 09:05 flydean 阅读(130) 评论(0) 推荐(0) 编辑
摘要:简介 在java多线程环境中,lock和同步是我们一定会使用到的功能。那么在java中编写lock和同步相关的代码之后,需要注意哪些问题呢?一起来看看吧。 使用private final object来作为lock对象 一般来说我们在做多线程共享对象的时候就需要进行同步。java中有两种同步方式,第 阅读全文
posted @ 2020-10-10 08:55 flydean 阅读(183) 评论(0) 推荐(0) 编辑
摘要:简介 linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。 linkedList的构建 linkedList是由一个一个的节点构成的。而每个节点只需要存储要保存的数据和下一 阅读全文
posted @ 2020-10-09 09:30 flydean 阅读(273) 评论(1) 推荐(1) 编辑
摘要:简介 java程序的逻辑是由一个个的方法组成的,而在编写方法的过程中,我们也需要遵守一定的安全规则,比如方法的参数进行校验,不要在assert中添加业务逻辑,不要使用废弃或者过期的方法,做安全检查的方法一定要设置为private等。 今天我们再来深入的探讨一下,java方法的编写过程中还有哪些要注意 阅读全文
posted @ 2020-10-08 09:04 flydean 阅读(110) 评论(0) 推荐(0) 编辑
摘要:简介 Web Storage为浏览器提供了方便的key value存储,是一种比cookie更加方便简洁的存储方式。也是诸多客户端存储方式中非常常见的一种。 一起来看看吧。 浏览器的本地存储技术 除了最早的使用cookie来进行本地存储之外,现代浏览器使用Web Storage API来方便的进行k 阅读全文
posted @ 2020-10-06 09:08 flydean 阅读(241) 评论(0) 推荐(0) 编辑
摘要:简介 java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。 死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。 通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。 不同的加锁顺序 我们来看一个不同加锁顺 阅读全文
posted @ 2020-10-01 08:41 flydean 阅读(113) 评论(0) 推荐(0) 编辑
摘要:简介 异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢? 一起来看看吧。 异常简介 先上个图,看一下常见的几个异常类型。 所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception 阅读全文
posted @ 2020-09-29 09:14 flydean 阅读(205) 评论(0) 推荐(0) 编辑
摘要:简介 一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。 一个简单的SensitiveObject 假如我们有下面的一个SensitiveObject,它的作用就是存储一个 阅读全文
posted @ 2020-09-28 09:54 flydean 阅读(173) 评论(0) 推荐(0) 编辑
摘要:简介 之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。 而解决大范围的元素排序的办法就是基数排序。 基数排序的例子 什么是基数排序呢? 考虑一下,虽然我们不能直接将所有范围内的数字都 阅读全文
posted @ 2020-09-27 09:43 flydean 阅读(220) 评论(0) 推荐(0) 编辑
摘要:简介 java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。 不可变对象的可见性 不可变对象就是初始化之后不能够被修改的对象,那么是不是类中引入了不可变对象,所有对不可变对象的修改都立马对所有线程可见呢? 实 阅读全文
posted @ 2020-09-25 10:54 flydean 阅读(125) 评论(0) 推荐(0) 编辑