Java基础 快速学习(一)

注意: 本系列博客是在作者已经有一年多的C++经验的基础上学习Java的个人总结,可能并不适合所有看到这篇博客的人。

一、数据类型

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;

二、表达式

1.算术表达式 略 与c++一致;
2.关系表达式 写法与c++一致,需要注意的还是boolean问题 其运算结果不是0也不是1;
3.条件表达式 cond? expr1:expr2; 写法同c++,需要注意的还是boolean问题 cond必须是boolean;
4.逻辑表达式 同c++;

三、语句

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("空");
}

欢迎访问个人技术网站:http://www.breeziness.cn/
转载请注明出处 小风codec --- www.breeziness.cn

你可能感兴趣的:(Java基础 快速学习(一))