黑马程序员_基础加强一

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

 

eclipse开发工具

1.eclipseIDE开发工具介绍

(1)eclipseMyeclipse的关系:Myeclipseeclipse的插件,也就是说先安装eclipse,然后为eclipse增加一个插件,扩展其功能,让eclipse能够开发JavaEE的程序。

(2)启动Myeclipse,打开任务管理器,进程中javaw.exe,它就是jvm,启动时就会把命令行窗口关掉。如果eclipse在关闭不了的情况下,就结束javaw.exe进程。

(3)IDE开发工具都支持使用工程化方式管理一个项目的程序开发过程,一般来说一个像对独立的项目就是一个工程,一个项目中涉及的多个java文件,资源文件等用一个工程进行管理。

2.eclipse工程管理与快捷键配置

       (1)Workspace(工程)project(项目)

       (2)将一个程序的所有源文件用一个工程来组织,开发工具能对所有源文件集中管理,记住每个源文件的位置和相互关系。工程中有哪几个源文件、启动类是哪个、启动参数设置等配置信息工程中都有记录。

       (3)配置快捷键:选择工具栏中Window(窗口),Preferences(首选项)。在首选项中选择General(常规)中keys(键)中配置自己习惯的快捷键。

(4)切换工作间:选择File(文件),SwitchWorkSpace(切换工作间),other,输入工作间路径及名称确定,将重启eclipse

(5)新建项目:选择Filenew(新建),JavaProject,输入一个比较有意义的项目名称,finish。在项目中新建一个包:右击源文件,newPackage,输入一个包名,finish。在包中创建一个类:右击包,newclass,输入一个类名,可以选择是否添加主函数,还可以选择创建类的修饰符,超类,接口,是否添加主函数。重命名:右击refactorrename

3.eclipse视图管理与程序调试

       (1)透视图(Perspective):由不同若干个小窗口组成的集合。视图(View):是指某一个小窗口。

       (2)查看一个变量的值,双击变量所在行,右击Debugyes,进入Debug透视图,右击watch就可以看到变量的值。

4.配置eclispe的编译与运行环境

(1) Java程序有编译和运行两个阶段,在首选项中选择Java配置编译(Compiler)和运行(Installed JREs)工具。

       (2)高版本的Java能运行低版本的java编译的程序。但是低版本的java不能运行高版本的java程序。

5. eclispe中配置java模板代码

       (1)配置java模板代码:Window,首选项,JavaEditor(编辑),Templates(模板),进行操作。

       (2)在代码中应用:选中一段代码,右击SurroundWith(包围方式)进行选择。

6.eclipse中导入已有的工程

       (1)导入工程:将工程文件复制到想要导入的工作间文件路径下,选择FileImport(导入),GeneralExisting Project into Workspacenext,选择文件路径。

       (2)配置JRE:右击工程,选择Build pathlibrary进行操作。

 

java5的一些简单新特性

1.静态导入

       (1)普通import语句导入一个类或某个包中的所有类。

       (2)importstatic语句导入一个类中的某个静态方法或所有静态方法。

       (3)例如:语句Math.max(3,6);当导入一个import static java.lang.Math.max;时,语句可写成max(3,6);

2. 可变参数与OverLoad相关面试题

       (1)当一个方法接受的参数个数不固定时候使用可变参数。

       (2)overloadoverride区别:

              overload:重载看两个参数的个数,参数类型,与返回类型无关。

              override:重写如果父类方法是私有的,子类方法重写类方法。

       (3)可变参数的特点:

              只能出现在参数列表的最后;

              …位于变量类型和变量名之间,前后有无空格都可以;

              调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

示例:打印和。

public static void main(String[] args) {

       System.out.println(add(2,3));

       System.out.println(add(2,3,5));

}

public static int add(int x,int ... args){

       intsum=x;

       for(int i=0;i<args.length;i++)

       {

              sum+=args[i];

       }

       returnsum;

}

3. 增强for循环

       (1)语法:fortype 变量名:集合变量名){…}

       (2)注意事项:迭代变量必须在()中定义!集合变量可以是数组或实现了Iterable的集合类。

示例:将上面的for循环改成增强for的写法

for(int arg:args){

       sum+=arg;

}

4. 基本数据的自动拆装箱及享元设计模式

       (1)Integeriobj = 3;//装箱将基本数据类型装成Integer对象在赋给iobj引用变量。

              System.out.println(iobj+12);//拆箱

       (2)String s1 =new String("abc");

              Strings2 = new String("abc");

              Integeri1 = 137;

              Integeri2 = 137;//-128~127之间的数字是true

              System.out.println(i1==i2);

              System.out.println(s1==s2);//会分配不同空间

       (3)享元模式—flyweight:就是很多个小的对象,他们有很多属性相同,把他们变成一个对象,称之为内部状态。那些不同的属性,把他们变成方法的参数,称之为外部状态。

java5的枚举(enum

1.枚举:定义一个类型,以后这个类型定义的值只能是我以前规定好的值,如果不是那些值,编译器就不能通过,在编译时就告诉你不合法。

2.枚举是一种特殊的类,其中每个元素都是该类的一个实例对象。其中也可以定义构造方法,成员变量,普通方法和抽象方法。

3.注意:枚举的成员方法或变量等放在枚举元素的前面,否则编译器报错。

4.带构造方法的枚举:构造方法必须定义成私有的。如果有多个方法,就调用默认的构造方法。

5.枚举只有一个成员时,就可以作为一种单例的实现方式。

示例:定义一个WeekDay的枚举。

public enum WeekDay{

       SUN(),MON(),TUE,WED,THI,FRI,SAT;//元列表后面有东西就加分号,没有可以不加。

       privateWeekDay(){System.out.println("first");}//定义一个构造方法

       privateWeekDay(int day){System.out.println("Second");}//指定参数列表

}

示例:定义一个交通灯枚举。

public enum TrafficLamp{

       RED(30){

              public  TrafficLamp nextLamp(){

                     returnGREEN;

              }

       },

       GREEN(45){

                     publicTrafficLamp nextLamp(){

                            returnYELLOW;

                     }

       },

       YELLOW(5){

                     public  TrafficLamp nextLamp(){

                            returnRED;

                     }

       };

       publicabstract TrafficLamp nextLamp();

       privateint time;

       privateTrafficLamp(int time){this.time = time;}

}

java5的注解(Annotation

1.注解相当于一种标记,在程序中加了注解就等于为程序打上可某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无任何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。

2.@SuppressWarning:压缩警告

       @SuppressWarnings("deprecation")

       publicstatic void main(String[] args) {

              System.runFinalizersOnExit(true);

}

2.@Deprecated:标记某个方法过时。

       @Deprecated

       publicstatic void sayHello(){

              System.out.println("hi,传智播客");

       }

3.@Override:子类覆盖父类方法。

@Override

       publicboolean equals(Object obj)

示例:演示注解属性

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD,ElementType.TYPE})

public @interface ItcastAnnotation {

       Stringcolor() default "blue";

       Stringvalue();

       int[] arrayAttr() default{3,4,5};

       MetaAnnotationAnnotationAttr() default @MetaAnnotation("sss");

}

 

@ItcastAnnotation

(AnnotationAttr=@MetaAnnotation("flx"),color="red",value="abc",arrayAttr={1})

public class AnnotationTest {

       publicstatic void main(String[] args) {

              if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){

ItcastAnnotation annocation =

 (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);

                     System.out.println(annocation);

                     System.out.println(annocation.color());

                     System.out.println(annocation.value());

                     System.out.println(annocation.arrayAttr().length);

                     System.out.println(annocation.AnnotationAttr().value());

              }

       }

}

java5的泛型

1.泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时会去除掉“类型”信息,使程序运行效率不受影响,对于参数化的泛型类型,getClass()方法的返回值和原始类型完全一样。由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合中加入其它类型的数据。

集合中的泛型

2.ArrayList< E >类定义和ArrayList<Integer>类引用中涉及术语:

       整个称为ArrayList< E >泛型类型。

       ArrayList<E>中的E称为类型变量或类型参数。

       整个ArrayList<Integer>称为参数化的类型。

       ArrayList<Integer>中的Integer称为类型参数的实例或实际类型参数。

       ArrayList<Integer>中的<>typeof

       ArrayList称为原始类型。

3.参数化类型与原始类型的兼容性:

参数化类型可以引用一个原始类型对象,编译报告警告。

eg:Collectoin<String> c = newVector();

原始类型可以引用一个参数话类型的对象,编译报告警告。

egCollection c = new Vector<String>();

4.参数化类型不考虑类型数的继承关系:

egVector<String> v = new Vector<Object>();//

   Vector<Object> v = new Vector<String>();//

5.在创建数组示例时数组的元素不能使用参数化类型。

6.泛型中?通配符

泛型限定:上限,下限

extendsNumber >必须是Number的子类。

superInteger >必须是Integer的父类。

限定通配符?总是包括自己,不能把?给一个具体类型,可以把具体类型给一个?。

7.类型推断取交集

eginteger float > number     integer String>Object

方法中的泛型

8.普通方法、构造方法和静态方法中都可以使用泛型。用于放置泛型的类型参数的尖括号应出现在方法的其他所有修饰符之后,在方法的返回类型之前,也就是紧邻返回值之前,按照惯例类型参数通常用单个大写字母表示,可以有多个类型参数,在定义他们的尖括号中用逗号隔开。

egpublic static <K,V> V getValueK key{returnmap.get(Key);}

类中的泛型

1.如果类的实例对象中的多处都要用到同一个泛型参数,即这些地方引用的泛型类型要保持同一个实际类型时,这时候就要采用泛型类型的方式进行定义,也就是类级别的泛型。

eg:public calss GenericDao<T>{

private T field;

public void save(T obj){}

public T getByld(int id){}

}

2.注意:在对泛型进行参数化时,类型参数的实例必须是引用类型,不能是基本类型。当一个变量声明为泛型时,只能被实例变量和方法调用(还有内嵌类型)而不能被静态变量和静态方法调用。因为静态成员是被所有参数化的类所共享的,所以静态成员不应该有类级别的类型参数。

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值