黑马程序员--Java基础加强(1)


android培训、 java培训、期待与您交流! ----------------------
1:一些基本的英语简称:                                                                                            

Java ee  Java Platform,Enterprise Edition

Ide --itegrity development  environment

jms Java Message Service即Java消息服务

 jmx  JavaManagement Extensions,即Java管理扩展

jndi  JavaNaming and Directory Interface,Java命名和目录接口)

2:在elicspe 下怎么调试 :断点 debug

编译版本 的选择  preferences---java –Compiler

模版代码:java-editor-templent


3:import静态方法导入: math


4 For 循环加强

语法: for (type  变量名 :变量名集合)

{….}

注意:迭代变量名必须在()中定义;

集合变量名可以是数组或者实现了Hterable接口的集合类


5:  享元模式  flyweight

有很多很小的对象他们有很多相同的东西,可以把他们编成一个对象,有些不同变成外部的属性作为方法的参数传入,

Integer 类型转换  -128 -127 会自动保存

    Integer s1= 13;

       Integer s2 = 13;

    System.out.println(s1==s2);

 6:枚举

将大量的if else 转化为一个个独立的类

为什么要有枚举:

7:内部类:


8:反射基石-Class

Class.for Name作用 :返回字节码,返回的方式有两种:第一这段字节码曾经被加载过,在java虚拟机里面,直接返回   

第二java虚拟机没有,则用java类加载器直接去加载,把加载的缓存虚拟机里面。


9:获得字节码方法:3种

类名class 例如: System.class

对象getClass() 例如: new Date().getClass()

Class.forName(“类名”)

九个预定义Class实例对象:

数组类型的Class 实例对象:Class.isArry()

总之只要是在原程序出现的类型,都有各自的Class实例对象 如int[]

枚举类  

 

 

10Constructor类

ConStructor 代表某个类中的一个构造方法

得到某个类所有的构造方法 ConStructor[] constructor = Class.forName(“java.lang.String”).getConstructor

获得某一个构造方法

ConStructor[]  constructor= Class.forName(“java.lang.String”).getconstructor(StringBuffere.class)

//获得方法时要用到类型

实现参数的传递:String.class.getConstructor(StringBuffere.class)

.一般.创建实例对象流程:class—constructor—newobject;而

通常方式1 String str = new String (new StringBuffer(“abc”));

反射方式:String str=(String)  new Instrance (new StringBBuffer(“abc”))

//调用获得的方法时要用到上面同类型实例对象

..Class.newInstrance() 方法

String obj=(String)Class.forName(“java.lang.String”).newInstrance

该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象

 

11:Filed  

//字节码的获取应该用==

Filed(21反射)

9成员方法的反射:

得到字节码的方法,在用方法作用于对象

privatestaticvoidchangeStringName(Object obj) throwsException{

       // TODOAuto-generated method stub

       //扫描所有字段

       Field[] fields =obj.getClass().getFields();

       for(Field field: fields){

           //因为这里是字节码,所以用==比较好

           if(field.getType()== String.class){

              String oldValue = (String)field.get(obj);

              String newValue =oldValue.replace('b','a');

              field.set(obj,newValue);

           }

          

       }

///////////////////////////////////////////////

 

publicclassReflectionPoint {

 

    privateintx;

    privateinty;

    publicStringstr1 = "ball";

    publicStringstr2 ="basketball";

    publicStringstr3 ="itcast";

    publicReflectionPoint(int x,int y) {

       super();

       this.x = x;

       this.y = y;

    }

    @Override

     publicString toString(){

       returnstr1+":" +str2+":"+str3;

        

     }

}

 

10 用反射执行某个类中的main方法(23对接收数组参数的成员方法进行反射)

…写一个程序,这个程序能够根据客户提供的类名去执行该类中的main方法

11数组与object的关系极其反射类型

 

如果是一个普通对象

11: Method类

12:数组与object的关系及其反射类型


13 数组的反射:

l 具有相同维数和元素类型的数组属于同一个类型,即具有相同的 Class 实例对象。
l 代表数组的 Class 实例对象的 getSuperClass () 方法返回的父类为 Object 类对应的 Class
l 基本类型的一维数组可以被当作 Object 类型使用,不能当作 Object[] 类型使用;非基本类型的一维数组,既可以当做 Object 类型使用,又可以当做 Object[] 类型使用。

hashcode 方法作用:两个本该相同的对象被存放在不同区域,为了让相等的对象也会房子啊相同的区域,如果两个对象equal 相等,应该也让他们相等;如果两个对象不要存放在hashcod,就没有必要搞hashcode

反射作用------实现框架的功能

14:用类加载器的方式管理资源和配置方式


 

15 内省  IntroSpector-- javabean

Javabean---特殊的java类

 

Javaben person几个属性

 

12  面向接口编程:ArryList_Hashset的 比较及Hashcode分析

程序不要但是它一直在在暂用内存空间没有停止(内存泄漏)

 

hashcode 作用:两个本来相同的对象被存放在不同区域,相等的两个对象放在同一个区域,如果两个对象equals

相等那么也应该让他们Hashcode相等。如果两个对象不要相等那就不需要用Hashcode。

 
android培训、java培训、期待与您交流! ----------------------

你可能感兴趣的:(java,String,object,Integer,Class,Constructor)