`
qiushily2030
  • 浏览: 3721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JAVA精粹知识点

阅读更多
instanceof 用法
    AA instanceof BB  (instanceof作用:判断AA是否属于BB这个类或其子类的实例,即引用),AA只能是一个对象,BB只能是一个类名,不能为变量

(Hibernate3  get方法代替了find方法)
    hibernate中session接口的get()、load()方法区别?hibernate的查询有很多,Query,Criteria,find,get,load
  load()方法会先在缓存中找对象,如果缓存中找不到就会抛出异常;判断是否是lazy,查询数据库   返回一个实体代理类类型  充分利用内部缓存和二级缓存
  get()方法也会查找缓存,如果缓存中找不到则会查找数据库,如果再找不到就会返回null  返回的是实体类对象  忽略二级缓存

经典单实例例子
   public class ClassicSingleton {   
   private static ClassicSingleton instance = null;   
   protected ClassicSingleton() {   
      // Exists only to defeat instantiation.   
   }   
   public static ClassicSingleton getInstance() {   
      if(instance == null) {   
         instance = new ClassicSingleton();   
      }   
      return instance;   
   }   
}  

Hql查询:Oracle  临时表查询方法
     Select customer. orderList from Order order,
     (Select * from Customer ct
       where ct.customerName like ‘厦门’||'%' and ct. orderList.sise()>100
            ordery by ct. customerName;
     )customer
     Where order. orderDate between 2008-08-08 and 2009-08-08
         And order. Customer=:customer;

 
空接口,起标志作用,面向接口编程的众多优点,可管理权限等~~ 

排序list集合
ContentComparator comp = new ContentComparator();
Collections.sort(list,comp);

@Override 指明注释的方法覆盖超类的方法
@Deprecated 对不再使用的方法进行注释
@SuppressWarnings阻止编译器的警告,例:当类型不安全时
@SuppressWarnings("unused") 屏蔽java中的警告信息 如定义了变量未使用。
@SuppressWarnings("unchecked") 屏蔽java中的警告信息 如方法内部具体实现

Class c=Class.forName(args);
c.newInstance();
Package p=c.getPackage();
Field []f=c.getFields();
for(Field field : f){
   System.out.println(field.getName());
}
int m=c.getModifiers();
System.out.println(Modifier.toString(m));
Constructor[] co=c.getConstructors();
Method[] co=c.getDeclaredMethods();//得到某个类中声明的方法,不包括父类的方法
动态方法调用
在程序运行过程中间,可以动态的调用某个方法, Method类的invoke方法。
method.invoke(方法所在的对象, ?Object[ ]);//调用方法
// Object[ ]是参数数组,如果没有参数可将数组大小为0或参数为null

a:for(...){
  b:for(...){
    break a;
  }
}

接口、抽象类不能实例化 所以spring配置文件不能注入
   IConnection objIConnection = new Connection();面向接口编程的优点
   子类可以继承父类私有属性,却只能通过方法访问
   枚举是一种类,注释是一种接口


java里的所有基本类型都是按值进行传递的,所有对象都是按引用进行传递的,
不过有一个例外就是String对象,线程安全,虽然是按引用传递,但是任何修改都导致新字符串的生成!

私有的构造方法:表明类不能被实例化
  其他的私有方法:表明不能被外部的类调用

父类为抽象类时也同样会调用父类的构造方法,看来抽象类在虚拟机内部还是被实例化了。

gc只有在JVM内存不足的时候才会自动执行
A a = (A)Class.forName("pacage.A").newInstance();  等效于  A a = new A();


Java 接口
1.接口的所有方法默认都是public,abstract和non-static的
2.接口的所有变量默认都是public,static,final的.所以,接口的变量不能改值,在它的实现类里.
3.接口的实现类实现的方法必须和接口的方法抛出同样的异常,不许是子类,这和override不一样!同样,如果接口方法没有抛,实现方法也不能抛.
4.实现类实现的方法必须显式的声明成public,什么都不写都不行,啊!!!
5.接口不能声明成final,要不它怎么被实现呢(这好像又是废话啊)
6.一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的. //两个接口共有此方法

oracle 会把in 转换为 or来执行,,这样一来,,in应该没有or有效率,,但是这点效率可以忽略不计

select * from table a,table b where a.id=b.id  a b可以无关联

使用tomcat5.5.xx以上版本后,只要配置tomcat不因为类的修改重新加载容器。那么你如果只是修改了类的实现(方法体内的代码),而不是添加或删除类的方法和成员变量。

SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象
SessionFactory并不是轻量级的  一个数据库一个 一个项目一个(数据库一个)或多个

escape关键字  'ab\%cd%'escape'\' 将\后面特殊字符转义

字符窜长度为0就是指空字符串"",可以调用字符串的方法。
为null指 不指向任何对象,不能调用字符串的方法。

JNI(Java Native Interface),JAVA本地调用. 允许Java代码和其他语言写的代码进行交互 . JNI一开始是为了本地已编译语言,尤其是C和C++

JNDI(Java Naming and Directory Interface),Java命名系统接口. JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目

录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

public 修饰符会降低运行的安全性和数据的封装性

final 域(成员变量) 变量不可更改、方法不能重写,可重载、类不能被继承。

static 修饰的成员变量仅属于类的变量,而不属于任何一个具体的对象,静态成员变量的值是保存在类的内存区域的公共存储单元,而不是保存在某一个对象的内存区间。任何一个类的对象

访问它时取到的都是相同的数据;任何一个类的对象修改它时 , 也都是对同一个内存单元进行操作



修饰符总结: 类、域、方法、属性

类的访问修饰符:public、缺省类  (可访问控制符)
          abstract、最终类final  (非访问控制符)

域的控制修饰符:public、private、protected、private protected、缺省
                static、final、volatile、transient
              private protected :该类本身或子类可访问和引用。
      static 修饰的成员变量仅属于类的变量
              volatile易失(共享) 可能被几个线程所控制和修改
              transient暂时性 大概是内存中不保存。

方法的控制修饰符:public、private、protected、private protected、缺省
  abstract、static、final、native、synchronized
                  static:(不是具体类)整个类的类方法,所以不能操纵和处理非静态的成员变量....static 方法只能处理 static 的域
                  native(本地控制符) 调用其他语言
  synchronized 多线程共存的程序中的协调和同步

OOA:Object-Oriented Analysis:面向对象分析
OOD:Object-Oriented Design:面向对象设计

硬编码是指将可变变量用一个固定值来代替的方法. 例如: 硬编码:if(a==2)  不是硬编码 b=2  if(a==b)

Hibernate 是最优秀的持久性存储引擎,以至于 EJB3.0 就是基于 hibernate 开发的
hibernate 功能非常强大,其事务处理、命名查询、回调监听、简单方便的 O/R mapping 、缓存机制是任何一个其他的持久层框架无法相媲美的
          缓存、懒加载、抓取策略
hibernate是个O/R Mapping框架,物理数据映射为PO的工具。

Query query = getSession().createSQLQuery("{Call process_analog(?,?)}");
query.setParameter(0, cal);
query.setParameter(1, uuid);
query.executeUpdate(); //没有返回值
//query.list();//有返回值
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics