java后台
hw120219
这个作者很懒,什么都没留下…
展开
-
java两个不同对象的list copy相同的属性
java中,有两个list,list和list,AB对象的属性略有不同,现在想把A中的属性复制到B中,我们可以通过fastJOSN的方式方便的实现package com.hanshow.wise.base.operate.util;import java.util.List;import com.alibaba.fastjson.JSON;/** * 两个对象或集合同名属性赋值...原创 2019-04-26 11:17:12 · 14944 阅读 · 4 评论 -
http协议详解
三次握手第一次握手客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。这个三次握手中的开始。表示客户端想要和服务端建立连接。第二次握手TCP服务器收到请求报文后,如果同意连接,则发出确认报文...原创 2019-08-20 14:42:49 · 409 阅读 · 0 评论 -
高级java工程师面试题
1.char为什么比varchar快?varchar存储的时候前两个字节会存储整个字符串的长度,最后一个字节会存储标志符。varchar读取到内存中的时候,是最大的设置,比如varchar(200),虽然实际值存储4个字符,但是在内存还是会占用200字符。varchar如果长度过大,还会造成拆分或者分页机制。如果频繁的修改字符串的长度,varchar还要涉及重新计算长度等。总体来说,char快的...原创 2019-08-20 09:38:04 · 1078 阅读 · 0 评论 -
kafka基础知识扫盲
kafka的主题会分为多个区,生产者发送到kafka的同一主题的消息会分散到多个区,这其中有几个策略实现的原理也很简单List<PartitionInfo> partitions = cluster.partitionsForTopic(topic); return Math.abs(key.hashCode()) % partitions.size();简单来说是通...原创 2019-08-08 17:03:08 · 273 阅读 · 0 评论 -
时区 夏令时造成的问题
记录一次大坑的经过。项目在记录会员生日的时候发现在1974,1975,1979的特定月份,会员的生日信息写入到数据库会早一天。比如实际生日是1974-07-06,写入到数据库就会变成1974-07-05。因为项目是为台湾企业做的,想到是由时区引发的问题。台湾在80年代之前和大陆在1986-1991这些年间实行过夏令时,也就是说这些年份大约在4月某一天会调快一小时,9月初又会调慢一小时。写入到数据...原创 2019-07-26 18:32:26 · 2143 阅读 · 0 评论 -
session跨域及解决办法
什么是session共享在分布式系统中,所有服务器的session应该统一管理,不能如传统一般,各个服务器保存各自的session。例如单点登录问题,就用到了session共享。session共享带来的新的问题,就是如何才能session跨域。什么是session跨域客户端请求的时候,请求的服务器,不是同一个IP,端口,域名,主机名的时候,都称为跨域如果跨域,session是无法被浏览器...原创 2019-07-31 11:48:41 · 5144 阅读 · 0 评论 -
java是传值还是传引用
大家都知道,在Java中对象变量名实际上代表的是对象在堆中的地址(专业术语叫做对象引用 )。在Java方法调用的时候,参数传递的是对象的引用。重要的是,形参和实参所占的内存地址并不一样,形参中的内容只是实参中存储的对象引用的一份拷贝。如果大家对JVM内存管理中Java栈 的局部变量区 有所了解的话(可以参见《 Java 虚拟机体系结构 》),就很好理解上面这句话。在JVM运行上面的程序时,运行m...原创 2019-07-18 21:59:16 · 120 阅读 · 0 评论 -
同步 异步 阻塞 非阻塞
在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:阻塞IO流程当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据(对于网络IO来说,很多时候数据在一开始还没有到达。比如,还没有收到一个完整的UDP包。这个时候kernel就要等待足够的数据到来)。这个过程需要等待,也就是说数据被拷贝到操作系统内核的缓冲区中...原创 2019-07-05 09:50:29 · 163 阅读 · 0 评论 -
缓存为何出现及演变过程
本篇主要是个人的一些感受。在没有缓存之前,高并发下所有的请求都会直接怼到数据库,如mysql上。如果服务器是机械硬盘,则mysql的并发请求也就在300左右,如果是固态硬盘则是700左右就已经不错了。如果并发量再大一点,mysql就会抛出异常,too many connections ,也就是数据库瘫痪了。 缓存此时应运而生,缓存作为数据库的屏障,可以先挡下大部分请求。以redis缓存为例...原创 2019-06-05 14:11:49 · 253 阅读 · 0 评论 -
spring aop知识点整理
Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。Pointcut(切点):表示一组 joint point,这些 joint...原创 2019-08-12 18:46:51 · 313 阅读 · 0 评论