五山口老法师

仰望星空,脚踏实地!

网络:XSS和HttpOnly

1.什么是HttpOnly? 如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript,...

2019-03-28 22:56:30

阅读数 99

评论数 0

海量数据处理:BitMap

利用Java里的BitSet位集合实现: 有四十亿个扣扣号,拿来一个扣扣号,最快速查找? 一、问题描述: 1.在42亿个qq号码中,如何使用O(1)时间复杂度去查找一个QQ号是否存在。 2.qq号的位数小于13位,存储着42亿QQ号的内存不得超过600MB. 二、位图排序思想 由于待排...

2019-03-28 22:07:41

阅读数 53

评论数 0

多个线程同时运行,顺序打印问题

输入一串字符串;开启三个线程;分别在输入的字符串后面打印 "_A" "_B" "_C" 输出结果。 输入:hello 输出:hello_A_B_C 思路:使用Callable 可以返回对应的打印,再在原字符串的基础上拼接。 1)使...

2019-03-27 09:47:28

阅读数 70

评论数 0

动态规划:连续子数组的最大和

解答过程: 使用动态规划 F(i):以array[i]为末尾元素的子数组的和的最大值,子数组的元素的相对位置不变 F(i)=max(F(i-1)+array[i] , array[i]) res:所有子数组的和的最大值 res=max(res,F(i)) 如数组[6, -3, -2...

2019-03-26 17:17:27

阅读数 52

评论数 0

Java集合:Hashtable源码分析

1. 概述 上次讨论了HashMap的结构,原理和实现,本文来对Map家族的另外一个常用集合HashTable进行介绍。HashTable和HashMap两种集合非常相似,经常被各种面试官问到两者的区别。 对于两者的区别,主要有以下几点: HashMap是非同步的,没有对读写等操作进行锁...

2019-03-23 11:25:35

阅读数 23

评论数 0

JVM:锁机制

理解锁的基础知识 如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在...

2019-03-22 11:36:08

阅读数 64

评论数 0

二分查找2

二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找。 二分查找很好写,却很难写对,据统计只有10%的程序员可以写出没有bug的的二分查找代码。出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死...

2019-03-21 16:10:43

阅读数 31

评论数 0

数据库:数据库死机和掉电时如何让恢复数据

在数据库读写过程中突然死机或者断电的情况下,如果事先都做好了备份,在故障发生时可以将备份数据同步到当前数据库主机。 做备份的时候,尽量不要将备份的数据和当前数据库数据放置在同一个物理磁盘上,应当存储在另一主机物理盘上。以免硬盘出故障,备份也损坏。 还有就是发生这种情况的时候,如果内存中有很多重...

2019-03-21 10:00:04

阅读数 86

评论数 0

Java集合:Integer.parseInt() && String.substring()

2019-03-20 16:23:27

阅读数 91

评论数 0

Java集合:set的遍历方式

对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); ...

2019-03-20 16:11:55

阅读数 70

评论数 0

IO多路复用:select/poll/epoll

select int select (int maxfds,fd_set * readfds,fd_set * writefds,fd_set * errorfds,struct timeval* timeout) 返回值:有变化的描述符,返回值大于零,且为描述符个数;等于零,超时或者没有变化...

2019-03-19 21:29:16

阅读数 40

评论数 0

网络:窗口控制下的重发机制、流量控制

在没有使用滑动窗口之前,超时重发机制大概是这样子的: 根据数据包的RTT和时间偏差计算出粗略的RTO,当一个数据包发送之后,在RTO时间内还没有返回确认ACK时,发送端就认为该数据包已经丢失,并进行重传。 这里有两种情况: 1)数据包真真切切地没有被接收端接收到。 2)数据包已经被接受但是...

2019-03-19 19:04:48

阅读数 52

评论数 0

内存对齐

首先要知道,CPU读取内存中的数据书按照块来读取的。而这个块的大小可以是2的n次方。 设想一下,如果在一块内存中,首地址存放的是char类型,占一个字节,紧接着存放一个4字节的int类型。那么当CPU要以4字节的块大小读取这个int类型的值,那么需要先读取0~3字节,再读取4~7字节,然后剔除0...

2019-03-14 15:32:48

阅读数 57

评论数 0

CPU中的寄存器

在CPU中至少要有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)。这些寄存器用来暂存一个计算机字,其数目可以根据需要进行扩充。 1.数据寄存器 数据寄存器(Data Register,DR)又称数据缓冲...

2019-03-14 13:05:30

阅读数 58

评论数 0

框架:Servlet的生命周期

Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示 Servlet的生命周期包含了下面4个阶段: 1.加载和实例化 2.初始化 3.请...

2019-03-12 08:27:57

阅读数 32

评论数 0

SpringAOP静态代理和动态代理

代理模式应用于SpringAOP。 传统的静态代理会产生很多代码冗余。目标类和代理类共同实现接口的方法。当我们一个类有很多方法要委托给代理进行执行的时候,或者当我们的目标类有新增了接口的实现方法时,就要不断的修改代理类。这是不合理的,甚至当这些方法的代理逻辑都相同的时候,就会重复很多代码。 为...

2019-03-11 10:42:11

阅读数 39

评论数 0

多线程:同步和异步的优缺点比较

异步的使用场景: 1、不涉及共享资源,或对共享资源只读,即非互斥操作 2、没有时序上的严格关系 3、不需要原子操作,或可以通过其他方式控制原子性 4、常用于IO操作等耗时操作,因为比较影响客户体验和使用性能 5、不影响主线程逻辑 同步的使用场景:不使用异步的时候 同步的好处: 1、...

2019-03-10 23:40:34

阅读数 141

评论数 1

多线程:多线程优缺点、应用场景

首先说下多线程出现的原因: 为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作(IO密集时,cpu利用率会下降)时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等 多线程...

2019-03-10 23:35:25

阅读数 79

评论数 0

Java集合:Collection和Map

Collection是Java集合的一个接口,其实现类有Set、List等; Collections是集合的工具类,提供了一系列的静态方法,如排序、搜索等; 说说collection里面有什么子类。 (其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set) list和...

2019-03-10 22:07:41

阅读数 24

评论数 0

海量数据处理:在100亿个数中找出top 1000

经典的TOP K问题,借助堆排序进行 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(1000...

2019-03-10 14:45:03

阅读数 80

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭