Java基础知识

来源:互联网 发布:穿越火线抽奖软件 编辑:程序博客网 时间:2024/06/16 21:56

其实Java已经学过好几遍了,但是研究不是很透彻!

因为编写的Java代码数量不是很多,所以掌握的也不是很多,所以慢慢来吧!这篇博文就记录一些Java的小基础知识,可能会和C++类比,太简单的语法,我就不会提及了,写在这篇博客里的,需要小小研究一番,或者做一些代码测试,因此这篇博客将被持续更新,更新完结的那一天,就是我学成的那一天。

当然一个人的力量是有限的,希望广大网友有有趣的语法发现,能给这篇文章补充一下!我们一起来学习^_^ ! 


1.Java的标示符,和C++大致类似,但有不同,Java允许出现$(美元符号)和中文,也就是你在写C++时,想都不敢想的变量可以写成这样:$_你好


2.Java的一些数据类型,比如

byte(1个字节),short(2个字节){C++的short只是short int的缩写,所以是4个字节},

char(2个字节){这个和C++不同,C++只有1个字节哦},

还有long(8个字节){这个只是取名不一样,C++是long long},

boolean(1个位还是1个字节,我还不太确定,可能和机器环境有关吧) {C++里是bool,占1个字节}


3.Java中的char为什么占2个字节?因为Java使用的是Unicode字符集


4.Java中没有无符号的byte,short,int,long,而Java中的char一定是无符号的,因此并不像C++可以定义有无符号


5.Java对类型转换是很严格的,比如将long型赋给int变量,这是绝对不可以的,需要强制转换成int,因此在写常量是必须严格注意范围,比如比如超过byte最大值,即2^7-1,这样的整数十默认为int型的,因此需要强转成byte,才能赋值给byte变量,而对于超过int最大值的整数,即2^31-1,同样需要在后面加一个L告诉编译器这是个long型变量,同样float变量需要加F


6.Java定义数组时不可以写出数组大小,因此只能写成int a[],或者int []a,而只要在分配内存时,才需要写出数组大小,比如a = new int[10]


7.Java是可以用变量来指定数组大小的


8.Java的数组都有length这个属性,因此Java的char型数组不像C++,需要'\0'来标识字符串的结束,而是从[0,length-1]表示整个字符串


9.Java里没有指针概念,只有引用概念,因此数组名是一个内存地址的引用


10.Java里的移位运算,和C++实现不太一样,对于int变量 x, x<<-2在C++里解释为x>>2,而在Java里,由于x是int型,因此会对-2执行模32的运算,得到30,那么在Java里 x<<-2被解释为x<<30,再如x<<33,在Java里解释为x<<1,而在C++里解释为x<<33


11.Java中的函数传值只有值传递和引用传递,没有指针传递(因为Java没有指针的概念),所以Java在这方面也C++有些许不同,Java对于基本数据类型认为都是值传递(即在函数内部修改之后,原值仍然不变),这点和C++是一样的,但对于对象来说,Java认为对象名就是引用了,而C++还是认为是值传递,所以你就知道如果Java函数的形参是对象,那么很有可能这个对象在函数内部被修改掉了,所以你会发现在android开发中,有些函数传入了View,之后运行完函数之后这个View的形态就变了,这也是一个有利于编程的优点。但也有不利之处,如果你不想改变是对象的形参,那么只能自己在函数内部定义一个副本操作了。



0 0
原创粉丝点击