java
文章平均质量分 91
niejiangnan9235
实习生一枚
展开
-
jvm浅析
jvm的区域划分--------运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。1.程序计数器:线程私有,占有空间比较小。2.虚拟机栈:线程私有的,生命周期与线程相同,用于存贮局部变量表,原创 2017-07-18 11:57:49 · 244 阅读 · 0 评论 -
java 并发包
Java集合及concurrent并发包总结1.集合包 集合包最常用的有Collection和Map两个接口的实现类,Colleciton用于存放多个单对象,Map用于存放Key-Value形式的键值对。 Collection中最常用的又分为两种类型的接口:List和Set,两者最明显的差别为List支持放入重复的元素,而Set不支持。List最转载 2017-07-18 10:40:43 · 275 阅读 · 0 评论 -
jdk 1.8的一些新特性
此篇介绍了9个比较主要的,未完待续.......一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码代码如下:interface Formula { double calculate(int a); def转载 2017-07-18 10:36:07 · 329 阅读 · 0 评论 -
解决hashmap线程啊安全问题的三个解决方案
三种解决方案推荐第三种解法,第二种效率太低一般情况下直接抛弃1.Hashtable替换HashMapHashtable 是同步的,但由迭代器返回的 Iterator 和由所有 Hashtable 的“collection 视图方法”返回的 Collection 的 listIterator 方法都是快速失败的:在创建 Iterator 之后,如果从结构上对 Hashtable转载 2017-07-18 10:33:07 · 699 阅读 · 0 评论 -
关于hashmap线程安全问题产生的浅析
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable转载 2017-07-17 16:42:57 · 387 阅读 · 0 评论 -
@RequestMapping 和@RequestParam
1.@RequestParam A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String--> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理原创 2017-07-20 17:31:44 · 387 阅读 · 0 评论 -
ioc以及Aop涉及到的设计模式
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。主要用到的设计模式有工厂模式和代理模式。IOC就是典型的工厂模式,通过sessionfactory去注入实例。AOP就是典型的代理模式的体现。用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间原创 2017-07-20 17:29:50 · 1961 阅读 · 0 评论 -
spring ioc原理解析
首先,我先对之前所看案例进行一个总结: 1.spring是一个容器框架,可以配置各种bean,并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),时候用即可,IOC(inverse of control )控制反转:所谓控制反转,就是把创建对象(bean),和维护对象(bean)的关系的权利从程原创 2017-07-20 17:28:58 · 244 阅读 · 0 评论 -
spring aop原理解析
1.aop( aspect oriented programming ) 面向切面(方面)编程,是对所有对象或者是一类对象编程,核心是( 在不增加代码的基础上, 还增加新功能 )2.aop原理+案例编程说明:步骤:定义接口编写对象(被代理对象=目标对象)编写通知(前置通知目标方法调用前调用)在beans.xml文件配置配置 被代理对象=目标对原创 2017-07-20 17:27:13 · 254 阅读 · 0 评论 -
单例模式的线程安全问题
面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。 单例的目的是为了保证运行时Singleton类只有唯一的一个实例,最常用的地方比如拿到数据库的连接,Spring的中创建BeanFactory这些开销比较大的操作,而这些操作都是调用他们的方法来执行某个特定的动作。 很容易,顺手写一个《Java与模式》中的第一个例子:原创 2017-07-20 17:25:02 · 255 阅读 · 0 评论 -
ThreadLocal
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,原创 2017-07-20 17:18:46 · 174 阅读 · 0 评论 -
String StringBuffer StringBuffer的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常原创 2017-07-20 17:17:34 · 333 阅读 · 0 评论 -
悲观锁和相比synchronized,ReentrantLock增加了一些高级功能,主要有以下3项:等待可 中断、可实现公平锁,以及锁可以绑定多个条件
悲观锁与乐观锁 1.概念解析乐观锁与悲观锁不是指具体的什么类型的锁,而是指看待并发同步的角度。悲观锁认为对于同一个数据的并发操作,一定是会发生修改的,哪怕没有修改,也会认为修改。因此对于同一个数据的并发操作,悲观锁采取加锁的形式。悲观的认为,不加锁的并发操作一定会出问题。乐观锁则认为对于同一个数据的并发操作,是不会发生修改的。在更新数据的时候,会采用尝试更新,不断原创 2017-07-21 16:02:44 · 2074 阅读 · 0 评论