Lesson 2

周末重新学习了一下java,有了些新的体会

1、关于jdk, jreand  JVM:

   Jdk: java development kit,面向开发人员的java开发工具包

   Jrejava runtime environment,面向java应用程序使用者,运行环境

   JVMjava virtual machine,相当于是翻译,帮助实现跨平台,用java所写的文件先被eclipse 等编译成JVM所识别的 .class 文件,然后JVM再将该文件转换为适用于各种平台的机器码。其实java\jdk1.8.0_11\jre\bin中文件集合相当于是JVM

2、关于面向对象的三个重要属性

  Encapsulation(封装):无法直接访问类的成员变量,而是通过一些get set方法,间接访问数据域;

  Polymorphism(多态:静态绑定,动态绑定,通常通过继承来实现多态,通常通过重定义(override)父类的方法来实现,从个人理解来说,是因为子类同时可以看做是‘父类’,或子类包含父类,因此父类的引用可以指向子类的实体,并且可调用子类中重定义的函数。

  Inheritance(继承)java不允许多重继承,但可以通过定义接口(interface)来实现多重继承。

 

3、关于CLR

CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)JVM一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。

4、step into and step over

  step into就是单步执行,遇到子函数就进入并且继续单步执行;

  step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。

5、关于此次课堂中,了解到的同javac++,不太一样,或者是自己不太熟悉的总结:

1)bool类型:同java但与c++不同,c++中保存的是整形值,而c#java中都只有true false

2)Object:为所有类的基类,可以被赋予任何值;

3)装箱拆箱转换

   example

        装箱:int i = 123;

              Object obj = i; // 在堆中动态生成一个新的引用实例

        拆箱:int j = (int)obj;

4)is 运算符

:

int i = 2;

String s = “China”;

if(i is object){

   ......

}

if(s is string){

   .......

}

 

 

5)dynamic 关键字 (var)

dynamic number = 10;

Console.Writeline(number);

 

6)控制台应用程序格式化输出

Console.WriteLine({N [,M][:格式化字符串]} { ... }  ....  ,var1,var2,  ...  );

N : >= 0 ,表示输出变量的序号

M:表示输出变量的变量所占宽度和对齐方向。正数右对齐,负数则是左对齐。

格式化字符串:

或 d       十进制格式

或 e       指数格式

或 f       Fixed point 固定精度格式

或 p       Percentage 百分号格式

7)跳转中的goto语句

  for(int i 。。。)

  {

      for( int j 。。。)

      {

           if(j == 3)

           goto stop;

      }

  }

 stop Console.WriteLine(“Stop!”);

 

8)二维数组定义有区别

int [  ,  ] list;

int [  ,  ] list = new int [3][2]{ {2,3},{4,5},{6,7}};

 

练习的归并排序

 

posted @ 2015-03-23 22:19  月是故乡明95  阅读(157)  评论(1编辑  收藏  举报