黑马程序员_张孝祥_Java基础加强_小知识点汇总

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

Eclipse

Eclipse是一个IDE(Integrated DevelopmentEnvironment),集成开发环境。它是IBM开发的免费开源软件,使用java开发。界面使用的是SWT而非AWT+Swing。

Eclipse开发环境需要建立在jdk之上,它是基于jdk运作的,因此需要先安装jdk再安装eclipse。使用javaw.exe启动图形窗口。

MyEclipse是在Eclipse上打了增强补丁,是功能加强版。

 

其他开发工具

NetBeans ,sun公司的免费开发环境

Jbuilder ,收费

 

IDE开发工具支持使用工程化方式管理一个项目的程序开发过程。

工程中包含已包组织的class文件,以及java类库jar和一些第三方jar包,还有资源文件比如图片等,另外还有一些配置文件。

 

Eclipse配置:

英文:window--Preferences(偏好)

中文:窗口--首选项

java--compiler中可以设置使用的编译器版本

Installed JREs -- 选择运行使用的jre

 

工作空间---workspace

使用file--switch workspace来切换工作空间

 

配置快捷键:

在preferences中,如果要通用则选择general---keys,输入contentassist(内容助理),点removeBinding解除绑定,然后在binding上输入要设置的快捷键或组合快捷键,点apply(应用),如果设置了还是不能用,可能是快捷键有冲突,可以输入你要设置的快捷键,查看都绑定了哪些内容,把冲突的绑定解除掉即可。

 

注意:首选项配置是基于工作间的,不同的工作间可以使用不同的配置。

 

一个工作空间下可以有多个java工程(java project)

在包资源管理器中,点击右键--新建--java project(java项目)来创建新的java工程

 

创建一个工程时会提示是否切换到java透视图(java perspective)下。

不同的透视图对应不同的开发场景,其中包含不同的功能窗口。可以在右上角切换透视图。

 

使用右键--新建--类来创建类

使用右键refactor来重构,比如重命名、移动、抽取方法等

 

快捷键:

注释所选:Ctrl+shirt+\

单行注释:Ctrl+/

自动补全:Alt+/

生成源代码:ALT+SHIFT+S

 

静态导入:

静态导入是java 5的新特性。

 

导入不占用资源,只是告诉编译器到那里寻找使用到的类或方法。

 

import static java.lang.Math.max; //导入Math中的一个静态方法

import static java.lang.Math.*;   //导入Math中的所有静态成员

 

静态导入用于导入类中的静态成员,导入后可直接使用其静态成员而不用使用类名调用。

静态导入也有名称冲突问题,在发生冲突时,要使用全名,即依然要使用类名调用

 

静态导入的主要作用是简化书写。静态导入只能在java1.5以后使用

事实上,import也是简化书写。省去使用类的全名的麻烦,比如java.util.ArrayList。

 

可变参数列表:

可变参数是java 5的新特性

 

使用方式:

方法名(数据类型... 形参名)

 

如:

public static int sum(int... nums){

       intsum = 0;

       for(inti = 0; i < nums.length; i++){

              sum+= nums[i];

       }

       returnsum;

}

 

注意:

可变参数的具体实现还是借助数组。调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体内以数组的形式访问可变参数。

 

可变参数列表可接受空值。

 

在使用了可变参数列表的情况下,可变参数后面不可添加其他的参数。

即可变参数必须定义在最后边。

method(String str, int... i) //ok

method(int.. i, String str)  //error

 

foreach循环

也叫增强for循环,是java 5 新特性。

 

for(修饰符 元素类型元素名 : 集合表达式){

}

例如:

for(int arg : args){

       sum+= arg;

}

return sum;

 

foreach循环适用于实现了java.lang.Iterable接口的类,该接口是java5.0新添加的接口,实现了此接口的类都是可迭代的。具有一个返回迭代器的方法:Iterator<T>iterator()。实现了此接口的类一般是容器。比如数组、Collection等。注意Map没有实现Iterable接口,它没有迭代器,所以不能使用foreach循环进行遍历。

 

foreach循环与普通for循环的区别:

 

1.     foreach循环不使用索引,无法进行索引操作,这是它的一个局限性。因此它只能进行完全遍历,无法进行部分遍历。缺少了些灵活性,但是却可以更方便的遍历Set这种没有索引的集合。

2.     foreach循环无法对元素进行修改,因为他是用一个新声明的引用来接受集合中的元素。这是它的另一个局限性。

自动装箱与自动拆箱:

Auto-Boxing / Auto-Unboxing: 这也是java 5的新特性。在java 5之前虽然存在基本数据类型包装器类,但是需要手工操作拆箱装箱过程,无法进行自动类型转换。

 

Integer iger = 3;  //auto-boxing

int a = iger + 2; //auto-unboxing

 

Integer i1 = 13;

Integer i2 = 13;

System.out.println(i1 == i2); //Output :true , -128至127共享对象

 

这实际上是享元设计模式(flyweight)的一种体现---对象共享--“求同存异”。

 

享元设计模式:


Flyweight中两个重要概念--内部状态intrinsic和外部状态extrinsic

如果有很多小对象,他们有很多相同的东西,那么就可以抽取共性,把他们变成一个对象。而这些对象可能并非完全相同,那么就把这些不同的东西变成外部属性,作为方法的参数传入。 

享元模式常常包含了工厂模式。

Flyweight factory负责维护一个Flyweight池(存放内部状态),当客户端请求一个共享Flyweight时,这个factory首先搜索池中是否已经有可适用的,如果有,factory只是简单返回送出这个对象,否则,创建一个新的对象,加入到池中,再返回送出这个对象池

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值