`
lliang54
  • 浏览: 4358 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
文章列表
session 是记录服务器会话的一个对象,他可以跟踪用户从登陆到关闭浏览器一系列动作,具体的创建代码   public void addSession(HttpServletRequest request,String key,String value){ HttpSession session = request.getSession(); session.setAttribute(key, valu ...
cookie 的作用,就是当一个浏览器通过http 请求访问一个服务器时,这个服务器会返回key/value 键值对给客户端浏览器,在servlet 中可以这样增加cookie ,tomcat的 版本是7   public void addcookies(HttpServletResponse response,String key,String value){ Cookie cookie = new Cookie(key,value); response.addCookie(cookie); }     生成cookie 对象,将对象增加到httpServletRe ...
  代码片段:      Method[] method = Pow3.class.getDeclaredMethods(); method[0].invoke(new Pow3(), 1); 此段代码通过反射获取类所定义的方法,具体流程是:通过class 的 getDeclaredMethods 方法获取类的定义的方法, @CallerSensitive public Method[] getDeclaredMethods() throws SecurityException { // be very careful not to change ...
  1, 并发编程两个关键要素:线程之间通信模式有两种,1,是共享内存,2 是消息通信,共享内存就是共享同一个变量   volatile 的内存语义是:当写入一个volatile 的变量时jmm 会把对应的值刷新到主内存中,然后通知其他线程重新读取这个值,具体实现原理是,在写入valotile 变量时会IO总线会增加一行lock#的指令,同行缓存一致性协议导致其他缓存读取的是失效的值,  使用场景:1,对变量的写操作不依赖于当前值。不用作符合操作,volatile 只能保证内存的可见性,不能保证同步性, 例如i++, 2.  该变量没有包含在具有其他变量的不变式中。例如两个变量 a ...
5.1.1 同步容器类的问题,在多线程的情况下,如,a 线程 对vector  执行 get 操作, 另外一个线程对vector 进行delete 操作,由于线程交替执行,可能有一个线程获取下标 为9 但是另外一个线程已经删除了下标为9的数据,导致数组下标越界,所以对同步容器进行复合操作,在高并发的情况下,就需要客户端加锁 5.1.2 迭代器与并发修改错误,在使用迭代器的过程中,可能会出现并发修改错误问题,例如 A线程删除了一个元素,当B线程发现计数器发生改变时,会抛出并发修改错误溢出,这个是一个jdk 的 设计,使用fail-fast ,使用快速失败模式,通知使用者已经发生异常了,在单线程的 ...
1.偏向锁,顾名思义就是偏心的意思,当一个线程访问同步块时,会在该对象头增加自己偏向锁的线程ID,以后进入该对象就可以直接进入不需要通过cas 对对象头进行加锁和解锁   偏向锁的执行流程,如,线程1 执行同步块, ...
   1.对象的可见性,是指对象的修改,对其他线程可见,具体的方法可以使用同步机制或者使用valatile 关键字防止jvm 虚拟机对指令就行重排序,为什么jvm 会对指令进行重排序,是因为重排序使得指令的执行变得紧凑 指令重排序:就是处理器处理汇编代码时,有依赖关系,导致下一个结果。需要上一个计算的结果 例如:a =b+c       d=e-f       换算成汇编:是指: lw R1b  lwR2c  sadd a R1R2       if id ex mem wb        if id  ex mem wb            if id 等待 ex m ...
Global site tag (gtag.js) - Google Analytics