Object类的方法有哪些?
1.getClass()方法final,native方法,获得运行时类型。2.hashCode()方法hashCode()方法主要用于hash表,比如HashMap,当集合要添加元素时,大致按如下步骤:1.先调用该元素的hashCode()方法,直接定位到它应该放置的物理位置上2.如果这个位置上没有
如何保证数据库和缓存的双写一致性?
前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示:1)线程A发起一个写操作,第一步delcac
想学消息队列,AMQP协议了解一下?
一、AMQP是什么AMQP(AdvancedMessageQueuingProtocol,高级消息队列协议)是一个进程间传递异步消息的网络协议。二、AMQP模型工作过程发布者(Publisher)发布消息(Message),经由交换机(Exchange)。交换机根据路由规则将收到的消息分发给与该交换
你平时是怎么用建造者模式的?
介绍我用的最多的就是实现链式赋值。前段时间写了个项目,一个类的属性那叫一个多啊。刚开始直接写一堆set代码,后来set代码实在是太多了,真心看不下去了,用建造者模式重构了一下,嗯,看起来舒服多了。基本上很多框架中都用到了建造者模式,每个Java程序员也肯定用过建造者模式,只不过你没有意识到这就是建造
mysql库不能修改为utf8mb4编码,但又想存emoji表情怎么办?
前言Emoji在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了。对于我们开发者来说,如何将Emoji存入MySql数据库或者取出来,就变成了一种必须掌握的技能了。Emoji是一种图形符号,能够很直观地反应出某种文字含
项目中的if else太多了,该怎么重构?
前言ifelse过多的话,一般都是用策略模式来进行重构,策略模式也非常的简单。先定义一个接口,各种处理分支实现这个接口,定义好条件->处理类的映射关系,然后根据条件找到响应的处理类执行即可,当有新的分支的话,只需要增加一个接口实现类,增加一个条件->映射类的映射关系即可。还是很好容易理解
.NET Core 3.0 里新的JSON API
为什么需要新的JSONAPI?JSON.NET大家都用过,老版本的ASP.NETCore也依赖于JSON.NET。然而这个依赖就会引起一些版本问题:例如ASP.NETCore某个版本需要使用JSON.NETv10,而另一个库需要使用JSON.NETv11;或者JSON.NET出现了一个新版本,而AS
做程序员的老婆,一定要注意的事情
预计阅读时间:7分钟作者|Arale来源|https://www.jianshu.com/p/492903fb7005今天来说说一位女青年的老公以及他们的事儿。如有雷同,纯属巧合。十一年前我和程序猿第一次见面,还是大一军训期间。我甚至不确定程序猿是否记得那是第一次见面。当时不小心装伪文艺参加了吉他社
Java学习进阶之路:如何用Jsoup实现爬虫技术?
1.Jsoup简述Java中支持的爬虫框架有很多,比如WebMagic、Spider、Jsoup等。今天我们使用Jsoup来实现一个简单的爬虫程序。Jsoup拥有十分方便的api来处理HTML文档,比如参考了DOM对象的文档遍历方法,参考了CSS选择器的用法等等,因此我们可以使用Jsoup快速地掌握
Java学习知识点:小白如何掌握JSP技术?
Java初级开发之jsp概述1.关于jspJavaServerPages简称jsp,从“server”这个词可以看出,这其实也是一门java服务端技术,其实可以简单的把jsp认为是servlet,一点错也没有。Jsp的实质,就是客户端需要的资源是通过jsp技术动态生成的。2.jsp的技术原理1)当客
C#中的深拷贝与浅拷贝
浅拷贝和深拷贝之间的区别:浅拷贝是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象中引用型字段的值他将反映在原始对象中,也就是说原始对象中对应的字段也会发生变化。深拷贝与浅拷贝不同的是对于引用的处理,深拷贝将会在新对象中创建一个新的和原
javascript核心之DOM操作
JS一个重要功能就是操作DOM,改变页面显示。目录:1、基本概念2、节点类型3、节点关系4、节点操作基本概念DOM全称为DocumentObjectModel,即文档对象模型,是针对HTML和XML的一个API,描绘了一个层次化的节点树,可以添加、移除和修改页面的某一部分。DOM可以将任何HTML或
javascript教程:==和===区别你真的懂了吗
js中==和===区别简单来说:==代表相同,===代表严格相同,为啥这么说呢,这么理解:当进行双等号比较时候:先检查两个操作数数据类型,如果相同,则进行===比较,如果不同,则愿意为你进行一次类型转换,转换成相同类型后再进行比较,而===比较时,如果类型不同,直接就是false.操作数1==操作数
C#通过SharpZipLib库创建压缩文件
在程序中对文件进行压缩解压缩是很重要的功能,不仅能减小文件的体积,还能对文件起到保护作用。如果是生成用户可以下载的文件,还可以极大的减少网络流量并提升下载速度。最近在一个C#项目中用到了创建压缩文件的功能,在此和同学们分享一下使用心得。SharpZipLib库既然是很重要的用能,那么如果每个人在使用
C#实现定时器的几种方案
前几天写了一篇java的定时器方案,应小伙伴的要求,今天这里一下c#实现定时器的方案。在C#里关于定时器类就有三个1、System.Windows.Forms.Timer2、System.Threading.Timer3、定义在System.Timers.Timer下面对这三个类进行讲解。Syste
JDK1.7中HashMap死环问题及JDK1.8中对HashMap的优化源码详解
一、JDK1.7中HashMap扩容死锁问题我们首先来看一下JDK1.7中put方法的源码我们打开addEntry方法如下,它会判断数组当前容量是否已经超过的阈值,例如假设当前的数组容量是16,加载因子为0.75,即超过了12,并且刚好要插入的索引处有元素,这时候就需要进行扩容操作,可以看到resi
SpringBoot 集成 WebSocket 实现前后端消息互传
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信—允许服务器主动发送信息给客户端。为什么需要WebSocket?大家都知道以前客户端想知道服务端的处理进度,要不停地使用Ajax进行轮询,让浏览器隔个几秒就向服务器发一次请求,这对服务器压
SQLException: #22001你知道这个错误码吗
java.sql.SQLException:#22001java.sql.SQLException:#22001atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)atcom.mysql.jdbc.MysqlIO.check
Java虚拟机调优 JVM优化 工作非常实用的调优技巧
JVM大体结构class文件加载-验证-准备-解析-初始化-使用-卸载一个线程一个栈,一个方法一个栈帧如何确定垃圾引用计数会有循环引用的问题正向可达从roots对象计数可以达到的对象垃圾收集算法标记清除(缺点:内存碎片化,没有连续的内存)Copying(缺点:浪费内存一般用在新生代[new])标记压
简单聊聊 TCP 的可靠性
原创:田伟然|转载于公众号杏仁技术站前言传输控制协议(缩写:TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。TCP在不可靠的IP协议之上实现了可靠性,从而使得我们不必再去关注网络传输中的种种复杂性,所谓的可靠就是让我们去信任它即可。信任归信任,可我们还是得