自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (2)
  • 收藏
  • 关注

原创 AQS之acquire详解

同步器之acquire:public final void acquire(int arg) {        if (!tryAcquire(arg) &&            acquireQueued(addWaiter(Node.EXCLUSIVE), arg))            selfInterrupt();    }先获取同步状态,获取成功方法就结束了

2018-01-22 16:01:08 2474 1

原创 JMM内存屏障

LL: load1 LoadLoad load2:禁止load1才做和load2操作重排序SS:store1 Store Store store2;禁止store1才做和store2操作重排序SL:store1 Store Load load2:LS:loan1 Load Store store--------------------------------------------

2018-01-05 14:10:43 614

原创

1锁粗化:为了保证多线程间的有效并发,会要求每个线程持有锁的时间尽量的短。只有这样,等待在这个锁的其他线程才能尽早的获取公共资源执行任务。但是频繁的对同一个锁不断的请求,同步 和释放也是很消耗资源的。这样性能反而会下降。因此,虚拟机在遇到连续对锁的请求的时候,会把多次请求合并和一次请求,从而减少对锁的请求同步次数,这叫做锁粗化。例如在循环体内用了sync关键字。2自旋锁:在并发时,不断的挂起和

2017-11-30 16:37:38 309

原创 多线程

避免死锁1.避免一个线程内同时获取多个锁2.避免一个线程在锁内同事占用多个资源,尽量保证每个锁只占用一个资源3.尝试使用定时锁,使用 lock.tryLock()来代替内部锁机制4.对于数据库锁,加锁和解锁必须在一个数据库连接里如何减少上下文切换:1.无锁的编发编程,多线程竞争锁的时候会引起上下文的切换,所以多线程处理数据时可以用一些办法来避免使用锁,比

2017-04-10 17:59:13 228

原创 单例模式线程安全例子

public class Singleton {      private static class SingletonHolder {      private static final Singleton INSTANCE = new Singleton();      }      private Singleton (){}      public static fin

2017-02-17 11:20:13 207

转载 java堆栈

Java堆、栈和常量池以及相关String的详细讲解(经典中的经典) 博客分类: Java综合  一:在JAVA中,有六个不同的地方可以存储数据:  1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。    

2017-02-17 11:04:16 286

原创 JVM

两个最基本的java回收算法:复制算法和标记清理算法                复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法                标记清理:一块区域,标记要回收的对象,然后回收,一定会出现碎片,那么引出                标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象

2016-08-23 11:29:23 185

转载 JAVA Reflect

在Java运行时环境中,对于任意一个类,能否知道这个类的哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflection)机制。反射给java提供了,运行时获取一个类实例的可能,这一点非常灵活,你仅仅传一个类的全限定名,就能通过反射,来获取对应的类实例,我们一般会用Class类,来调用这个被

2016-08-19 14:32:12 278

转载 SpringMVC @ModelAttribute

@ModelAttribute使用详解1.@ModelAttribute注释方法   @ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。    (1)@ModelAttribute注释void返回值的方法     @Controller  

2016-08-19 13:23:24 191

转载 Controller与Controller之间跳转

一个controller跳转到另一个controller 方式一:使用ModelAndView return new ModelAndView("redirect:/list"); 这样可以重定向到toList这个方法 方式二:返回String return "redirect:/ toList "; 其它方式:response.sen

2016-08-08 10:23:32 2961

原创 做完阿贾克斯跳转到上一页面

window.location.href=document.referrer;

2016-08-05 17:17:15 725

原创 JSP自定义标签

JSP自定义标签:编写标签对应的实现类时,需要重载BodyTagSupport类的方法:doStartTag(), doEndTag()。 自定义标签的步骤:(1)第一步:开发标签实现类。(2)第二步:编写标签描述tld文件,并将tld文件放于当前应用的/WEB-INF目录下。(3)在JSP页面中声明并调用标签。 第一步:即编写Java代码,编写标签对应的实现类时,

2015-03-15 21:29:57 260

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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