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

----------------------------------------------------------------
本系列文章:





  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值