----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
Java基础加强(一)
(一) Java相关单词含义:
Java EE: Java平台企业版(Java PlatformEnterprise Edition),
IDE: 集成开发环境(itegrity development environment)
JMS: Java消息服务(Java MessageService)
JMX: Java管理扩展(JavaManagement Extensions)
JNDI: Java命名和目录接口(JavaNaming and Directory Interface)
(二) eclipse工程管理与快捷键配置
1, 编译器:查看编译java程序的文件版本:windows---preference---java---compiler
2, 运行程序:查看执行java程序的jdk版本:windows---preference---java---installedJREs
友情提示:
高版本的java能运行低版本的javac编译的程序。一般情况下,我们就直接使用MyEclipse中默认的版本,让编译与运行的java程序的jdk一致即可。
3, 设置快捷键:
如:设置syso加alt+/就直接写成System.out.println();
该配置方式是:windows---preference---general---keys,在方框中输入Content Assist(内容助理),如果已经有默认的绑定快捷键,需要先将其解除(解除方式是:选中该行,点击remove binding),然后在binding(捆绑)中输入alt+/(注意是alt键,并不是手动输入键盘中的字母)
友情提示:
(1) 如果设置了该快捷键,但是却不行的话,还有一种情况就是快捷键冲突,这个时候就需要将其他的快捷键解除关系就可以了。
(2) 该快捷键支持该开发工具所有的开发项目并不一定仅仅支持java程序也可以支持html等等
(三) Eclipse视图管理与程序调试(面试题:考察你调试代码的能力与经验)
1, 在需要调试的代码前面有一条形框,双击该条语句对应的端点。
如:调试变量
右击---debug as---java application—确定(有一个提示:切换到debug透视图)---选择该变量(寻找到自己刚才所建的窗口)---选择watch(鼠标右击)---step over(左上角,含义:执行一次)---切换视图(继续编写程序)
(四) 在eclipse中配置java模板代码
1, 如:模板try finally
windows---preference---java---editor---templates---new---name(在name中输入tryf)---pattern(写入需要的代码块如下)---ok
try{
${line_selection}
}finally{
${cursor}
}
友情提示|:line_selection:是需要被检测的代码内容;cursor:光标闪烁的位置
(五) 在eclipse中导入已有的工程
1, 将需要导入的工程放到工作台下
File---import---existing projects intoworkspace(存在的工程)---next---browse(选择工作台下的文件)---finish
友情提示:
问题:当导入工程的jdk与开发工具中的jdk的安装目录不一样时,有可能会导致程序运行异常。
解决方法:选中工程---buildpath---configure build path---libraries---选中工程中的jdk---remove---add library---jre system library---根据提示选择对应的jdk---finish
(六) 静态导入语编译器语法设置
1, 静态导入
(1) import语句可以导入一个类或者某个包中的所有的类
//import staticjava.lang.Math.max;
import staticjava.lang.Math.*;
public classTest {
public static void main(String[] args) {
//System.out.println(Math.max(33,1));
System.out.println(max(33, 1));
System.out.println(abs(23 -45));//求绝对值
}
}
友情提示:在开发中,我们建议导入该类下的静态方法,不建议调用一个类中所有的方法。
(2) import static语句导入一个类中的某个静态方法或所有静态方法
(七) 可变参数与overload相关面试题解析
1, 可变参数的特点:
(1) 只能出现在参数列表的最后
(2) ···位于变量类型和变量名之间,前后有无空格都可以
(3) 调用可变参数的方法时,编译器为该参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
如下案例:
public classTest {
public static void main(String[] args) {
int sum=add(3,4,5);
System.out.println("sum="+sum);
}
public static int add(int a,int ...args){
int sum=a;//注意sum的初始化值要为a,后面循环是从args开始的
for(int i=0;i<args.length;i++){
sum+=args[i];
}
return sum;
}
}
2, 面试题:说说overload vs override
(1) overload:重载(同一个类中,方法名相同,参数的类型或者参数的个数不同)
注意:两个参数的列表和个数完全一样,返回值不一样,这样不是重载
(2) override:覆写(当一个的功能需要扩展时,子类继承父类,并继续使用父类中的方法,建立自己的特有方法,这样可以使用覆写来完成)
注意:当父类中的方法被private修饰时,子类就不能覆盖父类中的方法,此时就不叫覆写,因为,子类根本就不知道父类中拥有该类的方法。
(八) 增强for循环
1, 将for循环的语句利用增强for来体现
public class Test {
publicstatic void main(String[] args) {
intsum=add(1,2,3,4);
System.out.println("sum="+sum);
}
publicstatic int add(int a,int ... args){
intsum=a;
/* for(int i=0;i<args.length;i++){
sum+=args[i];
}*/
//将上述的方法改成使用增强for循环语句来完成
for(intarg:args){//定义一个变量arg,迭代出args中的所有的元素
sum+=arg;
}
returnsum;
}
}
友情提示:
(1)迭代变量必须在()中定义
(2)集合变量可以使数组或实现了Iterable接口的集合类
(九)基本数据的自动拆装箱以及享元设计模式
1,基本数据的自动拆装箱
public class AutoBox {
publicstatic void main(String[] args){
IntegeriObj=3;//装箱:将3封装成对象
System.out.println(iObj+12);//拆箱:将iObj拆成基本数据类型int型,再参与运算
Integeri1=127;
Integeri2=127;
Integeri3=128;
System.out.println(i1==i2);//true
System.out.println(i1==i3);//false
}
}
友情提示:当该数据在一个字节(-128~127之间的时候),就会被缓存起来,存在一个池子里面,下一次又要将一个数字装成Integer对象的时候,先查看池子中有没有该数据,有的话就直接拿来使用,这样便节省了内存空间。
享元设计模式(flyweight):
有很多小的对象,他们有很多的属性相同,把它们看成是一个对象,那些不同的属性把他们看成是方法参数,称之为“外部状态”,那些相同的属性看成是这个对象的内部状态。
应用场景:(1)在windows中,创建许多的文件夹,每一个文件夹都有相同的图标,它就是一个对象。(2)装箱,该数字在一个字节之内,相同的数据封装成对象存储到池中,等下一次封装对象是相同的数据的时候就可以直接拿来使用,不需要在重新开辟空间的了,节省内存空间。
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------