- 博客(7)
- 收藏
- 关注
原创 tomcat 7 下 session 的实现详解
session 是记录服务器会话的一个对象,他可以跟踪用户从登陆到关闭浏览器一系列动作,具体的创建代码 public void addSession(HttpServletRequest request,String key,String value){ HttpSession session = request.getSession(); session.setAttri...
2017-09-27 16:18:29
419
原创 tomcat 服务器下的cookie 实现 详解
cookie 的作用,就是当一个浏览器通过http 请求访问一个服务器时,这个服务器会返回key/value 键值对给客户端浏览器,在servlet 中可以这样增加cookie ,tomcat的 版本是7 public void addcookies(HttpServletResponse response,String key,String value){ Cookie cook...
2017-09-27 14:58:04
2027
原创 反射的原理粗略分析
代码片段: Method[] method = Pow3.class.getDeclaredMethods();method[0].invoke(new Pow3(), 1);此段代码通过反射获取类所定义的方法,具体流程是:通过class 的 getDeclaredMethods 方法获取类的定义的方法, @CallerSensitive publi...
2017-09-27 11:14:24
120
原创 java 内存模型
1, 并发编程两个关键要素:线程之间通信模式有两种,1,是共享内存,2 是消息通信,共享内存就是共享同一个变量 volatile 的内存语义是:当写入一个volatile 的变量时jmm 会把对应的值刷新到主内存中,然后通知其他线程重新读取这个值,具体实现原理是,在写入valotile 变量时会IO总线会增加一行lock#的指令,同行缓存一致性协议导致其他缓存读取的是失效的值,...
2017-07-25 13:28:37
74
原创 《java 并发编程实战》基础构建笔记
5.1.1 同步容器类的问题,在多线程的情况下,如,a 线程 对vector 执行 get 操作, 另外一个线程对vector 进行delete 操作,由于线程交替执行,可能有一个线程获取下标 为9 但是另外一个线程已经删除了下标为9的数据,导致数组下标越界,所以对同步容器进行复合操作,在高并发的情况下,就需要客户端加锁5.1.2 迭代器与并发修改错误,在使用迭代器的过程中,可能会出现并发修...
2017-07-21 09:47:50
66
原创 java并发编程艺术笔记1
1.偏向锁,顾名思义就是偏心的意思,当一个线程访问同步块时,会在该对象头增加自己偏向锁的线程ID,以后进入该对象就可以直接进入不需要通过cas 对对象头进行加锁和解锁 偏向锁的执行流程,如,线程1 执行同步块,检查对象头的位置是否存在当前的线程ID,有就直接进入,如果没有,就cas 替换掉mark head 对象头,将对象头的偏向锁的线程ID设置为自己的,然后执行同步体,如果此时也线程...
2017-07-21 09:47:21
105
原创 《java 并发编程实战》对象共享笔记
1.对象的可见性,是指对象的修改,对其他线程可见,具体的方法可以使用同步机制或者使用valatile 关键字防止jvm 虚拟机对指令就行重排序,为什么jvm 会对指令进行重排序,是因为重排序使得指令的执行变得紧凑指令重排序:就是处理器处理汇编代码时,有依赖关系,导致下一个结果。需要上一个计算的结果例如:a =b+c d=e-f 换算成汇编:是指: ...
2017-07-21 09:42:15
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人