关于工具
Myeclipse 是eclipse的一个插件,eclipse用java开发的
netbins跟eclipse功能差不多,但没有推广开
cule6
javac.exe 就是eclipse进程
简写,做什么的
java ee
ide-->itegrity development集成开发环境
jms
jmx
jndi
2.一个Perspective代表了若干个view的集合,如何显示各种view。
3.设置单个工程的javac和java
选择工程,右键->properties可以设置javac,右键->runasàopenrun dialog可以设置java。
4.快捷键使用技巧:
1) 设置快捷键的位置:Window->Preferences->General->keys,设置alt+/键进行内容提示时,要注意解除alt+/键原来的绑定关系,直接输入alt+/就可以找到它的绑定关系,删除绑定关系时也可以使用removebinding这个按钮。
2) 代码模板的设置位置:java->editor->Templates
3) 注释
Ctrl+Shift+/ 多行注释
Ctrl+Shift+\ 取消多行注释
4)产生构造方法:
5、单个工程设置javac与java:
设置java哪个版本来编译器(相当于javac):
window->preferences->java->compiler 设置java哪个版本来编
运行的时候(相当于java):
window->preferences->java->Installed JREs jdk 设置引入地址(只能选择一个版本)
jre:Java Runtime Environment
设置完后查看这个工程设置
设置编辑版本和引入JDK版本如果不一致,会出现 Bad version number in .class file 这个错误
运行环境:工程右键->run as->open run dialog/run configurations-> 选择JRE选项卡,看JDK的版本
高版本的java能运行低版本的javac
低版本的java不能运行高版本javac
6、切换工作间:
File->Switch Workspace-> other 来切换空间
透视图:新建工程:File->New->Project(选择java project),perspective透视图 切换到 java perspective
包名:头一位一般式公司的域名倒过来写
改工程名:工程名右键->Refactor(重建)->rename
7、补全内容快捷键配置:
window->preferences->General->Keys
输入content assist(内容助理 :补全内容)
如果要改,先选中,点击 “Unbind/Remove Command”按钮
在Binding文本框填入选定按钮(直接按键就行)
改好后点击“Apply”按钮,之后选“ok”
如果还不能用,输入设置的快捷键,把重复的解除绑定就可以了
8、程序调试 :
在程序中选断点,之后右键->Debug As->Java Applacation
之后在debug下运行
点击变量右键选Watch选项 可以看到变量值
单步(右边的箭头)
9、透视图与视图的关系:
视图:每一个小窗口就是视图
透视图:一些视图的集合
File-.Import->General->Existiong Projects into Workspace->"next "选择目录,点击finish
2)如果跟导入的工程的jar包jdk路径不一样 则需要工程右键->BuildPath->Configure Build Path... 选择 Libraries标签 ,选择JDK库,删掉
3)增加自己的 JDK库:
Add JARs...是增加一个单独的jar包(如果把jar包拷贝到工程下了,选择此项)[增加内部的jar包]
如果没有Add External JARs
Add Library增加库 好多的jar包 选择此按钮,选择User Library 选择自己要加的jar包,可以增加多个
12、静态导入
eg:
import static java.lang.Math.*;
类里面可以直接写 System.out.println(max(3, 6));
13、可变参数:
eg:
package cn.itcast.day1;
public class VariableParameter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int ... args)//若干个参数...,必须位于最后
{
int sum=0;
/* for(int i=0;i<args.length;i++)
{
sum +=args[i];
}*/
for(int arg:args)
{
sum+=arg;
}
return sum;
}
}
14、overload override区别
override->重写(=覆盖)、overload->重载、polymorphism -> 多态
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。
重写(覆盖)的规则:
1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
3、重写的方法的返回值必须和被重写的方法的返回一致;
4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
6、静态方法不能被重写为非静态的方法(会编译出错)。
overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。
重载的规则:
1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
多态的概念比较复杂,有多种意义的多态,一个有趣但不严谨的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法。
一般,我们使用多态是为了避免在父类里大量重载引起代码臃肿且难于维护。
比如父类的方法是私有的,子类方法跟父类的一模一样,不叫覆盖
回答自己很深入的东西
15、for循环加强
16、基本数据类型的自动拆箱与装箱
??什么是自动装箱拆箱
基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。
一般要创建一个类的对象的时候,会这样:
Class a = new Class(parameter);
当我们创建一个Integer对象时,却可以这样:
Integer i = 100; (注意:不是 int i = 100; )
实际上,执行上面那句代码的时候,系统为我们执行了:Integer i = new Integer(100); 此即基本数据类型的自动装箱功能。
??基本数据类型与对象的差别
基本数据类型不是对象,也就是使用int、double、boolean等定义的变量、常量。
基本数据类型没有可调用的方法。
eg: int t = 1; t. 后面没有方法。
Integer t =1; t. 后面就有很多方法可调用。
??什么时候自动装箱
例如:Integer i = 100;
相当于编译器自动为您作以下的语法编译:Integer i = new Integer(100);
??什么时候自动拆箱
自动拆箱(unboxing),也就是将对象中的基本数据从对象中自动取出。如下可实现自动拆箱:
Integer i = 10; //装箱
int t = i; //拆箱
在进行运算时,也可以进行自动装箱与拆箱
Integer iObj=3;//装箱,自动把基础类型3封装成Integer对象 赋给了iObj把
System.out.println(iObj+12);//拆箱
享元模式
Integer i1=3;//装箱成基本数据类型Integer时,会把数据缓存起来,放到缓存池里面
Integer i2=3;
//-128~127时 i1==i2
//享元模式 flyweight
System.out.println(i1==i2);