黑马程序员--Java基础加强(一)

----------------------- 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, 设置快捷键:

如:设置sysoalt+/就直接写成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学习型技术博客、期待与您交流! ----------------------

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值