7 师太,老衲把持不住了

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 187

Java序列化的工作机制

【原创】远洋号2020-09-09 09:54:48关于序列化JDK内置同步器的实现类经常会看到java.io.Serializable接口,这个接口即是Java序列化操作,这样看来序列化也是同步器的一种机制。本节将深入剖析Java中的序列化机制,并看看AQS同步器的序列化,掌握序列化机制才能完整理解JDK内置的同步工具的实现。在程序中为了能直接以Java对象的形式进行保存,然后再重新得到该Java对象,我们需要序列化能力。序列化其实可以看成是一种机制,即按照一定的格式将Java对象的状态转..

2020-09-21 17:12:46

java 软硬拷贝

1. 软拷贝就是复制对象的值;一般是java.lang.Object 类里面的clone() 方法;2. 硬拷贝是复制这个对象所有的东西,如果该对象引用了其他对象,则引用也会改变到复制的新对象那边。一般硬拷贝是使用序列化,然后再反析出来;(把对象写到流里面的过程叫序列化过程,从流中读取对象的过程叫反序列化过程)transient 修饰的不能序列化,也就不能硬拷贝。代码:首先是软拷贝的例子:public class CloneTest1 {public static void ma.

2020-09-21 16:50:03

强人“锁”难,MySQL到底有多少锁?

追逐仰望星空2020-09-04 17:09:05推荐学习真真香!耗时大半个月收整全套「Java架构进阶pdf」没白费 全网独家的“MySQL高级知识”集合,骨灰级收藏,手慢则无前言读锁写锁意向锁,表锁行锁页面锁。在学习Java并发编程的时候,肯定少不了学习锁。最常见的就是synchronized,锁的概念不是很好理解,有的地方说是锁住了一段代码,有的地方说是锁住了一个对象。弄得初学者都是丈二和尚——摸不着头脑。抛开这些结论性的说法,说一下我对锁的理解(不管是Java中的锁还是数据.

2020-09-21 16:04:57

9种 分布式ID生成方式

科技缪缪2020-08-26 12:03:44一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的.

2020-08-31 17:04:51

电商系统延时任务机制源码分享

JAVASHOP需求分析:在JavaShop电商系统中,各种促销活动都有开始时间和结束时间,想要让一个活动在预定的时间开始或结束,使用定时任务轮询,存在耗性能并且不能在准确的时间点开始或结束的缺点,为了可以在指定的时间执行,要求使用延时任务思路:延时任务:指定某日期执行某自定义任务思路为采用Rabbitmq中的死信转移队列的技术点实现。第一步向一个队列(具有xxxx属性)发送消息,这个队列的消息可以指定失效时间当失效发生时rabbbitmq会将此消息转移到另外的一个普通对列中,.

2020-08-31 16:43:13

Redis的分布式布隆过滤器是什么原理?

【原创】老顾聊技术2020-08-07 23:01:58欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工问题老顾先来举个常会问到的面试题:现有50亿个电话号码,现有10万个电话号码,如何要快速准确的判断这些电话号码是否已经存在?上面的问题可以细化一下,也就是50亿个电话号码在数据库中,现在要快速、准确的判断提供的10万个电话号码是否存在。我们小伙伴们是否脑子中会有以下方案:1、通过数据库查询:实现快速有点难。2、数据预放到内存集合中:50亿*8字节大约40G,内存..

2020-08-13 17:35:31

老伙计,关于JDK并发包,这些不为人知的秘密你知道多少?

Java架构师阿谷2020-08-06 09:45:10为了更好地支持并发程序,JDK内部提供了大量实用的API和框架。同步控制说到同步控制,最先想到的便是synchronized关键字,这是一种最简单的控制方法, 它决定了一个线程是否可以访问临界区资源。配合wait()方法和notify()方法可以达到线程等待和通知的作用。而同步控制的另一种方式便是使用重入锁。重入锁可以完全替代关键字synchronizedReentrantLock使用示例:使用重入锁可以保护临界区资..

2020-08-10 10:20:55

事务隔离级别中的可重复读能防幻读吗?

Java知音2020-03-14 13:23:49前言每次谈到数据库的事务隔离级别,大家一定会看到这张表。其中,可重复读这个隔离级别,有效地防止了脏读和不可重复读,但仍然可能发生幻读,可发生幻读就表示可重复读这个隔离级别防不住幻读吗?我不管从数据库方面的教科书还是一些网络教程上,经常看到RR级别是可以重复读的,但是无法解决幻读,只有可串行化(Serializable)才能解决幻读,这个说法是否正确呢?在这篇文章中,我将重点围绕MySQL中可重复读(Repeatable rea..

2020-08-07 18:34:55

数据量很大,分页查询很慢,有什么优化方案?

点击关注 ????我是程序汪7月10日来源:cnblogs.com/youyoui/p/7851007.html 准备工作 一般分页查询 使用子查询优化 使用 id 限定优化 使用临时表优化 关于数据表的id说明 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面

2020-07-31 18:32:42

缓存穿透及解决方案

原创黑马程序员2020-07-21 13:45:44缓存只是为了缓解数据库压力而添加的一层保护层,当从缓存中查询不到我们需要的数据就要去数据库中查询了。如果被黑客利用,频繁去访问缓存中没有的数据,那么缓存就失去了存在的意义,瞬间所有请求的压力都落在了数据库上,这样会导致数据库连接异常。针对缓存穿透的常见解决方案有以下两种:方案1: 对于数据库中不存在的数据, 也对其在缓存中设置默认值Null, 为避免占用资源, 一般过期时间会比较短方案2: 可以设置一些过滤规则, 如布隆过滤器方案1..

2020-07-31 17:33:01

并发扣款,如何保证数据的一致性?

1024课堂2020-07-23 09:35:01继续解答星球水友提问。===沈老师,我们有个业务,同一个用户在并发“查询,逻辑计算,扣款”的情况下,余额可能出现不一致,请问有什么优化方法么?===扣款的业务场景是怎样的?用户购买商品的过程中,要对余额进行查询与修改,大致的业务流程如下:第一步,从数据库查询用户现有余额:SELECT money FROM t_yue WHERE uid=$uid;不妨设查询出来的$old_money=100元。第二步,业务层实施业务逻辑计.

2020-07-31 14:06:01

14个Java并发容器,你用过几个?

咔咔侃技术2019-11-10 11:34:00前言不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。上面提到的线程安全容器都在java.util.concurrent包下,这个包下并发容器不少,今天全部翻出来鼓捣一下。仅做简单介绍,后续再分别深入探索。并发容器介绍Concurren.

2020-07-30 16:22:12

Redis两种持久化机制RDB和AOF详解(面试常问,工作常用)

【原创】愚公要移山2020-01-03 16:22:40redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。在这里假设你已经了解了redis的基础语法,某字母网站都有很好的教程,可以去看。基本使用的文章就不写了,都是一些常用的命令。下面针对这两种方式来介绍一下。由浅入深。一、持久化流程既然redis..

2020-07-30 15:54:30

原来redis这么简单,跟着文章操作一遍你就会了

柠檬班软件测试2019-10-30 14:05:31原来redis这么简单,跟着文章操作一遍你就会了!一、Redis简介Redis是一个开源的使用ANSI C语言编写的Key-Value数据库,是一种应用非常广泛的NoSQL数据库,性能极高,拥有出色的读写速度,适用性非常的广。因此也被广泛应用在中大型的项目中,可以在某些特定应用场景下替代传统数据库,可以巧妙地实现一些特定的功能:session共享、购物车等待。近期有部分同学说公司项目中使用用了redis,需要掌握一些的基本使用,那么这.

2020-07-30 14:35:15

一口气说出 6种 延时队列的实现方案,大厂offer稳稳的

迪士尼在逃程序员2020-05-08 20:49:06下边会介绍多种实现延时队列的思路,文末提供有几种实现方式的 github地址。其实哪种方式都没有绝对的好与坏,只是看把它用在什么业务场景中,技术这东西没有最好的只有最合适的。一、延时队列的应用什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。延时队列在项目中的应用还是比较多的,尤其像电商类平台:1、订单成功后,在30分钟内没有支付,自动取消订单.

2020-07-30 11:55:10

面试中被问到HashMap的结构,1.7和1.8有哪些区别,彻底懵了

Java知音2020-02-25 11:54:31一、真实面试题之:Hashmap的结构,1.7和1.8有哪些区别不同点:(1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。(2)扩容后数据存储位置的计算方式也不一样:在JDK1.7的时候是直接用hash值和需要扩容.

2020-07-30 09:57:11

为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?

Mint6方志朋作者:Mint6blog.csdn.net/Mint6/article/details/78363761阿里巴巴Java规范:方法【edit】需要在Transactional注解指定rollbackFor或者在方法中显示的rollback。1.异常的分类先来看看异常的分类error是一定会回滚的。Exception是异常,他又分为运行时异常RuntimeException和非运行时异常 可查的异常(checked exceptions): E..

2020-07-28 15:41:36

拼多多面试官没想到ThreadLocal我用得这么溜,回答无死角

【原创】三太子敖丙2020-07-27 09:29:21开场白张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试。我丢,什么情况怎么刚投递出去就有人约我面试了?诶。。。真烦啊,哥已经不在江湖这么久了,江湖还是有哥的传说,我还是这么抢手的么?太烦恼了,帅无罪。暗自窃喜的张三来到了某东现场面试的办公室,我丢,这面试官?不是吧,这满是划痕的Mac,这发量,难道就是传说中的架构师?张三的心态一下子就崩了,出来第一场面试就遇...

2020-07-28 14:05:45

说一下公平锁和非公平锁的区别?

三太子敖丙2020-03-24 16:26:21前言上次我们提到了乐观锁和悲观锁,那我们知道锁的类型还有很多种,我们今天简单聊一下,公平锁和非公平锁两口子,以及他们在我们代码中的实践。正文开始聊之前,我先大概说一下他们两者的定义,帮大家回顾或者认识一下。公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。优点:所有的线程都能得到资源,不会饿死在队列中。 缺点:吞吐量会下降很多,队列里面除了第一个线程,其他的线程都会阻塞,cpu唤醒阻.

2020-07-28 10:16:29

深入理解Java中的AQS

目录AQS概述 AQS中的独占模式 非公平锁的加锁流程 非公平锁的释放流程回到顶部AQS概述​ AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我们通过AQS的类图先看一下大概,下面我们总结一下AQS的实现原理。先看看AQS的类图。​(1)AQS是一个通过内置的FIFO双向队列来完成线程的排队工作(内部通过结点head和tail记录队首和队尾元素,..

2020-07-28 09:49:35

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取