IED集成化开发工具,Myeclipse,是eclipse加上插件后集成的环境
Java 中常见术语的简写:
JAVA EE -->Java Platform,EnterpriseEdition
IDE -->Integrated Development Environment (集成开发环境)
JMS -->JavaMessage Service (java消息服务)
JMX --> JavaManagement Extensions(java管理扩展)
JNDI --> JavaNaming and Directory Interface(Java命名和目录接口)
1, 工程的概念:
一般来说,一个相对对立的项目就死一个工程,jiava中涉及的多个java文件,资源文件等用一个工程进行管理
2, 切换工作间:
File -->Switch Workspace
3, 快捷键的配置:
所有工程共享的快捷键
Window -->Preferences -->General -->Keys
4, 透视图与视图的关系(Perspective与 view)
程序调试:双击设置断点,debug运行,要查看对应变量就右键Watch选项
5, 为单个工程设置java与javac
右键工程àProperties
注意:高版本java可以运行低版本javac文件,但是反过来就会出错
6, 配置java模版代码
Window -->Preferenses -->Java -->Editor -->Templates
7, 导入已有工程
一个库中可以包含多个jar文件,导入库就相当于一次导入多个jar文件
1.5新特性
8, 静态导入
Import导入一个类或包中所有类
ImportStatic 导入类中的static方法
如:import static java.lang.Math.max;
导入类中所有static方法
如:Import static java.lang.Math.*;
9, 可变参数
可变参数特点:
a)只能出现在参数列表的最后
b)…位于变量类型和变量名之间,前后有无空格都可以
c)调用可变参数额方法时,编译器为该可编参数隐含创建一个数组,子方法体中一数组的形式访问可变参数
d) 一个方法中最多只能包含一个长度可变的参数
如:
public static int add(int x,int … args){
int sum = x;
for(int i = 0;i<args.length;i++){
sum+= args[i];
}
return sum;
}
public static void test(int a,String ... books);
public static void test(int a,String[] books);
以上两个方法签名效果一样
10, for循环增强 (foreach)
如:
循环迭代books字符串数组,也可以迭代集合
String[] books
for(String book : books){
System.out.println(book);
}
注意:使用foreach循环迭代数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量进行赋值。
11, 基本数据类型的装箱与拆箱
Integer iObj = new Integer(3);
自动装箱:直接将基本数据类型赋给包装对象
Integer iObj = 3;
自动拆箱:
System.out.println(iObj+ 4);
String s1 = new String(“abc”);
String s2 = new String(“abc”);
System.out.println(s1== s2);
输出false:因为是两个对象,位置不一样
-128~127之间,比较小的整数,使用频率高,所以都是指向同一对象
Integer i1 = 7;
Integer i2 = 7;
System.out.println(i1== i2);
输出true
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1== i2);
输出false,超出一个字节大小就会分别创建对象
Integer i3 = Integer.valueOf(3);
Integer i4 = Integer.valueOf(3);
System.out.println(i3== i4);
输出true:这是Integer的静态方法,将基本数据类型转换成包装数据类型
享元模式 flyweight
flyweight解释:Flyweight是拳击比赛中的特用名词,意思是“特轻量级”,指的是51公斤级比赛,用到设计模式中就是指我们的类要轻量级,粒度要小,这才是它要表达的意思。粒度小了,带来的问题就是对象太多,所以用共享技术来解决
Ps.上面的
Integer i1= 7;
Integer i2 = 7;
System.out.println(i1 == i2);// 输出true
就是用到了享元模式,对用到特别多的对象实现共享。可减少创建的对象数量,防止因对象太多而导致内存溢出问题的出现
享元设计模式是池技术的重要实现:
定义:Use sharing to support large numbers of fine-grained objects efficiently.(使用共享对象可有效的支持大量的细粒度的对象)
细粒度对象:
内部状态:
即对象可共享出来的信息,存储在享元对象内部并不会随环境改变而改变
外部状态:
外部状态是对象得以依赖的一个标记,是随环境改变而改变的,不可以共享的状态,它是一批对象的统一标识,是唯一的一个索引值。
优点:
模式非常简单,可以大大减少应用程序创建的对象,降低程序内存的占用,增强程序的性能。
缺点:
提高了系统的复杂性,需要分离出外部状态和内部状态,而且外部状态具有固化特性,不应该随内部状态改变而改变,否则导致系统的逻辑混乱。
使用场景:
1, 系统中存在大量的相似对象。
2, 细粒度的对象都具备较接近的外部状态,而且内部状态与环境无关,也就是说对象没有特定身份。
3, 需要缓冲池的场景。