黑马程序员--高新技术<一>eclipse开发工具及相关知识加强

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

第一节 eclipse开发工具简述

一、概述:

1、eclipse是运行在java基础上的工具。

2、常用术语缩写:

1)IDE:Itegrity Development Enviroment,集成开发环境

2)JavaEE:javaEnterprise Edition:java企业版开发工具。

3)JMS:Java MessageService,Java消息服务,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序间,或分布式系统中,发送消息,进行异步通信。

4)JMX:Java ManagementExtensions,Java管理扩展;是一个为应用程序、设备、系统植入管理功能的框架。

5)JNDI:Java Nameingand Directory Interface:Java命名和目录接口。

6)JDBC:Java DataBase Connectivity:Java数据库连接。

3、Myeclipse和eclipse的区别:

1)Myeclipse:是elipse的插件,用于开发javaEE的平台,为其打补丁,扩展其功能,可以开发JavaEE程序即web项目,但是现在Myeclipse也集成了eclipse的功能,可直接使用Myeclipse。

2)eclipse:是开发java的一款专业的IDE(集成开发环境),以前需要Myeclipse才能开发JavaEE程序,现在的eclipse的版本也可以不用再安装Myeclipse插件,直接可以开发JavaEE项目。

二、eclipse开发工具介绍:

1、project(工程):

1)一个工程包含有:包,jar包,资源文件,java源文件等内容。

2)将一个工程的所有源文件用一个工程来组织,开发工具能对所有源文件集中管理,记住每个源文件的位置和相互关系,配置信息等都在工程中有记录。

2、preferences(首选项):

在workspace(工作间)中配置,将会影响到它下面所有的工程,一个工作间包含多个工程,不同透视图就是几个小窗口的集合。

3、在eclipse下如何查看变量值:

在变量处打个断点--->Debug透视图,调试运行--->选中变量,右键选watch(观察),就可以看到了。

4、perspective(透视图)和view(视图)的关系:

view:每一个小窗口就是一个视图。可通过window下的show view调出相应的视图。

perspective:透视图就是若干个小窗口的集合。

5、导入已有工程:

1)将其他工作间中的工程拷贝到当前工作间所在的文件夹下。

2)在eclipse中右击工程--->导入--->浏览选择当前工作间目录下拷贝过来的工程。

6、配置JDK环境:

右击工程--->BuildPath --->Libraries(库)--->移除导入的工程的JDK库,增加自己的库。

注:

Add JARs是增加打个Jar包,

如果Jar包不在当前工程文件夹中,用Add Exernd JARs

如果Jar包在当前工程文件夹中,用Add JARs

增加一个库相当于增加很多Jar,这是一个打包的过程。

 

第二节 JDK1.5新特性

一、静态导入 importstatic简述:

1、import语句:是导入一个类或某个包中的所有类。

2、import static语句:导入一个类中的某个静态方法或所有静态方法。

//import static java.lang.System.out;//引入静态成员
import static java.lang.System.currentTimeMillis;
import static java.lang.System.out;
import static java.util.Arrays.asList;

import java.util.List;
public class Demo1 {

	public static void main(String[] args) {
		out.print("aa");
		out.println();
		out.println();
		long time = currentTimeMillis();
		System.out.println(time);
		
		String s[] = {"a","b","c"};
		List list = asList(s);
		System.out.println(list);
	}	

}

二、增强for循环:

1、语法:for(type 变量名 : 集合变量名){statement}

2、注意:迭代变量必须定义在()中,集合变量可以使参数或实现Iterable接口的集合类,变量类型前可加修饰符,如final(可被局部内部类访问到)。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Test;
//增强for循环
public class Demo3 {
	//数组
	@Test    //ctrl+1
	public void test1(){
		String s[] = {"a","b","c"};
		for(int i=0;i<s.length;i++){
			System.out.println(s[i]);
		}
		
		for(String ss:s){
			System.out.println(ss);
		}
		
	}
	@Test
	//List
	public void test2(){
		List l = new ArrayList();
		l.add("aa");
		l.add("bb");
		l.add("cc");
		
		Iterator it = l.iterator();
		while(it.hasNext()){
			String s = (String)it.next();
			System.out.println(s);
		}
		
		
		for(Object obj:l){
//			String s = (String)obj;
//			System.out.println(s);
			System.out.println(obj);
		}
	}
	//传统方式遍历Map
	@Test
	public void test3(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		while(it.hasNext()){
			String key = (String)it.next();
			String value = (String) map.get(key);
			System.out.println(key+"="+value);
		}
	}
	
	@Test//增强for遍历map方式一
	public void test31(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set keys = map.keySet();
		for(Object obj:keys){
			String key = (String)obj;
			String value = (String) map.get(key);
			System.out.println(key+"="+value);
		}
		
	}
	//传统方式遍历Map
	@Test
	public void test4(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		Set me = map.entrySet();
		Iterator it = me.iterator();
		while(it.hasNext()){
			Map.Entry m = (Map.Entry)it.next();
			String key = (String) m.getKey();
			String value = (String)m.getValue();
			System.out.println(key+"="+value);
		}
		
	}
	@Test//增强for循环遍历map方式二
	public void test41(){
		Map map = new LinkedHashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		
		for(Object obj:map.entrySet()){
			Map.Entry me = (Map.Entry )obj;
			String key = (String) me.getKey();
			String value = (String)me.getValue();
			System.out.println(key+"="+value);
		}
		
	}
	@Test//增强for的一些细节
	public void test5(){
		int arr[] = {1,1,1};
		for(int i:arr){
			i = 10;
		}
		//循环时改元素的值必须使用传统方式
//		for(int i=0;i<arr.length;i++){
//			arr[i] = 100;
//		}
		System.out.println(arr[0]);
	}
	@Test
	public void test6(){
		List list = new ArrayList();
		list.add("p");
		for(Object obj:list){
			obj = "ppp";
		}
		System.out.println(list.get(0));
	}

三、可变参数:(方法的重载)

特点:

1、只能出现在参数列表的最后。

2、用…这三个点表示参数可以有很多,且这三个点位于变量类型和变量名之间,前后有无空格皆可。

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

示例:

import org.junit.Test;

//可变参数
public class Demo4 {
	//计算任意数量的整数的和
	public int sum(int ...args){//可变参数就当做数组来用
		int sum = 0;
		for(int i:args){
			sum+=i;
		}
		return sum;
	}
	@Test//如何使用带有可变参数的方法
	public void test1(){
		int result = sum(1,2,3,4);
		System.out.println(result);
	}
	@Test
	public void test2(){
		int values[] = {1,2,3,4,5};
		int result = sum(values);
		System.out.println(result);
	}
	public String aa(String s2,String...s1){
		return null;
	}
}

四、基本数据类型的自动拆箱与装箱:

1、自动装箱:Integer iObj = 3;

2、自动拆箱:iObj + 2;

3、对于基本数据类型的说明:整数在-128 ~ 127之间的数,包装成Integer类型对象,会存入常量池中的缓存,再创建同一个对象的时候,会直接使用前一个已有的值,因为这些小数值使用的频率很高,所以这些数值需要如此的使用以优化内存。

import java.util.ArrayList;
import java.util.List;

public class Demo2 {

	public static void main(String[] args) {
		List list = new ArrayList();
		int i = 10;//Integer 
		list.add(new Integer(i));
		
		//5.0的做法
		int j = 100;
		list.add(j);//实际上编译器把基本类型的j自动调用了new Integer(10),传递给集合
		
		//遍历
		int k = (Integer)list.get(1);//自动拆箱
		System.out.println(k);
		//注意的问题
//		Integer ii = null;
//		int l = ii;
//		System.out.println(l);
		System.out.println("-------------------------");
		
		Boolean b1 = true;
		Boolean b2 = true;
		System.out.println(b1==b2);
		
		Integer i1 = 100;
		Integer i2 = 100;
		System.out.println(i1==i2);
		
		Integer i3 = 129;
		Integer i4 = 129;
		System.out.println(i3==i4);
		
		Float f1 = 0.1f;
		Float f2 = 0.1f;
		System.out.println(f1==f2);
	}

}

4、享元模式(flyweight):

1)概述:如果很多很小的对象,他们有很多相同的属性,那么就可变为一个对象使用,这些属性称为内部状态,还有些不同的属性,作为方法参数植入,这些称为外部状态。这种优化内存,只创建一个对象的模式,称之为享元模式。

2)应用:

(1)word中输入英文字母,可创建26对象,每个对象值是出现的位置不同(坐标),所以可用一个对象调用位置的方法:如,字母i:i.display(intx,int y),将高度重复使用的char类型的字母i封装成一个对象使用。

(2)图标:window下的文件夹图标,只哟名称这个属性不同,包含了很多其他相同的属性,那么可以应用享元模式。

3)valueOf(int x):Integer中静态方法,讲一个整数转换为Integer,即把基本数据类型变为包装类。


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、&lt;a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net" target="blank"> http://edu.csdn.net</a>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值