`
文章列表

Spring之AOP篇

Spring之AOP篇: AOP框架是Spring的一个重要组成部分.但是Spring IOC 并不依赖于AOP,这就意味着你有权力选择是否使用AOP,AOP作为Spring IOC容器的一个补充,使它成为一个强大的中间件解决方案。 一、AOP(Aspect-Oriented Programming)     AOP ...
在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要有什么区别?它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。那么为什么会 ...
JBPM简介   JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache Lice ...
    内部类 本文主要参照网上的一些相关文章、以及thinking in java 第三版,对java里面的内部类进行了一个较为详细的总结 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员
删除数据库中表的某些相同的某些记录 OR 查找数据库的表中的相同记录 一、删除数据库中表的某些相同的某些记录 delete from tablename where only_Id not in(select min(only_id) from tablename group by sameName) 二、选出相同记录的SQL语句 AND 删除 ...
1.类加载器概述 类加载器是一个对象,是负责加载类.在JVM是通过类加载器的调用LoadClass方法加载类对象. 类加载器结构: 1. 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的[null] 2. 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类[ExtClassLoader] 3. 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPAT ...
  Overload 是重载的意思,Override 是覆盖的意思,也就是重写。 重载Overload 表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。 重写Override 表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限 ...
这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。 作用域      当前类    同一package    子孙类     其他package public         √               √                  √             √ protected   √              √                   √             × friendly       √              √                    ×           ...
1. if(username.equals(“zxx”)){} username可能为null。如果为null就是null.equals("xyz"),会出现NullPointerException异常。正确的应该是“xyz”.equals(username) 2. int x = 1; return x==1?true:fals 如果要返回boolean, 那么可以直接return x==1, (x==1这个表达式本来就返回boolean)
  Math 类中提供了三个与取整有关的方法:ceil 、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil 的英文意义是天花板,该方法就表示向上取整, Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor 的英文意义是地板,该方法就表示向下取整,Math.ceil(11.6)的结果为11,Math.ceil(-11.6)的结果是-12;最难掌握的是round 方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5 后再向下取整,所以,Math.round(11.5)的结果为 ...
int 是java 提供的8 种原始数据类型之一。Java 为每个原始类型提供了封装类,Integer 是java为int 提供的封装类。int 的默认值为0,而Integer 的默认值为null,即Integer 可以区分出未赋值和值为0 的区别,int 则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0 的区别,则只能使用Integer。在JSP 开发中,Integer 的默认为null,所以用el 表达式在文本框中显示时,值为空白字符串,而int 默认的默认值为0,所以用el 表达式在文本框中显示时,结果为0,所以,int 不适合作为web 层的表单数据的类型。 ...
不可以。因为非static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static 方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static 方法中发出对非static 方法的调用,那个非static 方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static 方法内部不能发出对非static 方法的调用。
  在语法定义上的区别:静态变量前要加static 关键字,而实例变量前则不加。 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。 例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar 变量,并且每创建一个实例对象,这个staticVar 就会加1;但 ...
  ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那 ...
      char 型变量是用来存储Unicode 编码的字符的,unicode 编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode 编码字符集中,那么,这个char 型变量中就不能存储这个特殊汉字。补充说明:unicode 编码占用两个字节,所以,char 类型的变量也是占用两个字节。
Global site tag (gtag.js) - Google Analytics