Java基础 快速学习(一)

    作者:课课家教育更新于: 2019-06-24 16:49:00

    大神带你学编程,欢迎选课

      一、表达式

      1.算术表达式 略 与c++一致;

      2.关系表达式 写法与c++一致,需要注意的还是boolean问题 其运算结果不是0也不是1;

      3.条件表达式 cond? expr1:expr2; 写法同c++,需要注意的还是boolean问题 cond必须是boolean;

      4.逻辑表达式 同c++;

      二、数据类型

      1.整数:byte,short,int,long 分别对应1,2,4,8字节长度

      数据的范围和写法 与 C++一致

      byte a=1;

      int b=2;

      注意:java中是没有unsigned类型 这个需要和C++区别 也就是说Java中的数都是有符号的

      2.浮点数:double ,float

      这个与c++基本一致 ,区别在于 float 常量的语法更加严格一些 。

      在java中 float a=1.235f; 如果没有后边的f就会报错

      在C++中 float b=1.235; 如果没有后边的f 编译器会发出警告 ,说 double 截断成 float ,并没有报错。因为在c++中 浮点常量默认为double ,如果希望是float,则需要加f。

      3.布尔类型:boolean 有两个字面常量true ,false

      注意:java中boolean类型与int类型是不可以通用的!boolean就是它,不是c++中所谓的0与非0;

      三、语句

      java语句和c++语句基本一致 ,需要注意的还是 boolean问题

      1.if

      boolean a=true;

      if(a)

      {

      // .......

      }

      2.for

      for(int a=0;a<10;a++)

      {

      // .. do something

      }

      3.while

      while(true)

      {

      //......

      }

      4.switch

      int cc=1;

      switch (cc)

      {

      case 1:

      a++;

      break;

      case 2:

      a++;

      break;

      }

      PS:C++中如果switch分支超过4个的话,编译器会对其进行优化,使其效率高于4个连续if语句,才能发挥出switch的正真优势(vs编译器,其他编译器可能不同)。具体优化细节,感兴趣的请百度。那么Java中它的效率如何,作者并不太知道,因为在初学,就为读者和自己留的问题吧。

      四、类的基本特性

      1.类的语法

      在Java中类是很简单的 ,与c++也略有区别

      区别【1】成员变量 每个变量前 加访问控制 。

      【2】成员函数 每个函数前 同样加访问控制

      【3】可以直接给成员变量赋值初始化

      package my;

      public class Example

      {

      public int id=0;

      public int s=1;

      //成员函数

      public int getid()

      {

      return this.id;

      }

      public int setid(int id)

      {

      this.id=id;

      return 0;

      }

      public int print()

      {

      System.out.println(this.id);

      return 0;

      }

      }

      注意:类名要同文件名,且每个文件中仅有一个类!

      2.类的构造函数

      【1】与类同名

      【2】无返回值

      【3】可以重载

      package my;

      public class Example

      {

      public int id=0;

      public int s=1;

      //成员函数

      public Example()

      {

      id=10;

      }

      public Example( int a)

      {

      id=a;

      }

      public int getid()

      {

      return this.id;

      }

      public int setid(int id)

      {

      this.id=id;

      return 0;

      }

      public int print()

      {

      System.out.println(this.id);

      return 0;

      }

      }

      注意 :java中是没有析构函数的 ,java中存在垃圾回收机制。如需做清理工作,直接自己实现一个成员函数并且在需要的时候调用

      五、垃圾回收机制

      当一个对象不在被引用时,该对象将被gc回收

      public void t()

      {

      Example ex=new Example()

      ex.print()

      }

      当t()退出后 创建的对象就失去作用

      关于垃圾回收的比较详细的理解 参考这篇文章

      关于回收机制,随着我对Java的理解深入 也会单独做一篇理解

      五、数组对象

      Java中数组是对象! what? 没错 在c++中 数组是复合类型,不过在STL中也提供了类似的模板类 vector 不过这个类付出的代价的效率稍低,c++11中array提供了同数组一样的效率且更加安全

      在Java中 所有的对象都必须new来创建

      int [] a=new int [10];

      int [] b={1,2,3,4};

      注意:数组用c++数组同样支持下标访问读写,标号0~n-1

      当然,还有一系列的成员。。。

      注意:数组对象的创建,仅仅是创建了N个对象的null指针

      Example[] v=new Example[10];

      if(v[0]==null)

      {

      System.out.println("空");

      }

      六、垃圾回收机制

      当一个对象不在被引用时,该对象将被gc回收

      public void t()

      {

      Example ex=new Example()

      ex.print()

      }

      当t()退出后 创建的对象就失去作用

      关于垃圾回收的比较详细的理解 参考这篇文章

      关于回收机制,随着我对Java的理解深入 也会单独做一篇理解

课课家教育

未登录