Java
mcfcronaldo
这个作者很懒,什么都没留下…
展开
-
Java中抽象类和接口的适用场景
1、抽象类abstract class的应用场景 一句话,在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它。最常见的有: A. 定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。 B. 某些场合下,只靠纯粹的接口不能满足类与类之间...原创 2018-03-16 17:50:51 · 2698 阅读 · 0 评论 -
SpringMVC+Mybatis 多数据源配置
方案最开始的做法因为我们的项目用的是Mybatis作为ORM框架,在其配置文件中可以配置数据源信息,原始配置如下:spring-mybatis.xml<!-- 引入配置文件 --><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholde...原创 2018-03-28 14:18:49 · 246 阅读 · 0 评论 -
Spring+Mybatis 多数据源配置
同一applicationContext.xml中:1,配置多个数据源(采用连接池c3p0,直接jdbc连也行)数据源1:dataSource1<bean id = "dataSource1" class= "com.mchange.v2.c3p0.ComboPooledDataSource" lazy-init = "default"><property name="drive...原创 2018-03-28 13:59:25 · 310 阅读 · 0 评论 -
Java多线程中同步与死锁
1.线程同步多线程引发的安全问题一个非常经典的案例,银行取钱的问题。假如你有一张银行卡,里面有5000块钱,然后你去银行取款2000块钱。正在你取钱的时候,取款机正要从你的5000余额中减去2000的时候,你的老婆正巧也在用银行卡对应的存折取钱,由于取款机还没有把你的2000块钱扣除,银行查到存折里的余额还剩5000块钱,准备减去2000。这时,有趣的事情发生了,你和你的老婆从同一个账户共取走了4...原创 2018-03-23 20:37:20 · 166 阅读 · 0 评论 -
Java多线程产生死锁的条件以及解决方法
摘自《Thinking in Java》:死锁产生的原因:1.互斥条件。任务使用的资源至少一个是不能共享的。2.至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源。3.资源不能被任务抢占。任务必须把资源释放当做普通事件。4.必须有等待循环。要发生死锁,上述条件必须全部都满足;所以要防止死锁的话,只需要破坏其中的一个即可。在程序中,最容易防止死锁的方法是破坏第四个条件~...原创 2018-03-23 20:30:32 · 233 阅读 · 0 评论 -
浅谈Java泛型中的extends和super关键字
泛型是在Java 1.5中被加入了,这里不讨论泛型的细节问题,这个在Thinking in Java第四版中讲的非常清楚,这里要讲的是super和extends关键字,以及在使用这两个关键字的时候为什么会不同的限制。 首先,我们定义两个类,A和B,并且假设B继承自A。package com.wms.test;import java.util.ArrayList;import java.u...原创 2018-03-16 23:47:48 · 144 阅读 · 0 评论 -
Java中==、equals和hashcode的区别
1、==java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.引用类型(类、接口、数组) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比...原创 2018-03-16 10:47:58 · 151 阅读 · 0 评论 -
Java中 int与integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象1.Java 中的数据类型分为基本数据类型和复杂数据类型int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.2.初始化时: int i =1;Intege...原创 2018-03-16 11:34:01 · 157 阅读 · 0 评论 -
Java 自动装箱与拆箱
这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆:java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱,解包装称为拆箱);其实按照我自己的理解自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合java的面向对象;例如用int来举例://声明一个Integer对象Integer num = ...原创 2018-03-16 11:52:25 · 138 阅读 · 0 评论 -
详解Java内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一个非常有用的特性但又比较难理解使用的特性。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String name ; private int age; public String getNam...原创 2018-03-16 15:20:11 · 106 阅读 · 0 评论 -
Spring在普通类中使用自动注入Bean
在Spring中,我们会在Controller层使用自动注入的Service层,在Service层使用自动注入的Dao层,如果想在普通的类中使用自动注入Service或者是Dao层时,可以这样做:1、在相应的类上加上@Component注解@Component注解将我们的类实例化到Spring容器中,这样的方式其实就是相当于xml配置文件中的<bean id="" class=""/>...原创 2018-03-29 15:59:38 · 590 阅读 · 0 评论