首先我们来认识一段java代码
public interface HelloWorld {
public static void main(String[] args)
//public static void main是main函数的意思,相当于C语言中的int main\void main(括号内外的写法固定);
// 其中括号中的string【】表示一个数组,string表示数组类型(字符串)
{
System.out.println("你好,世界");
//java中的输出语句
}
}
通过c语言的知识积累和注释,我们不难看出这段代码中的main方法及输出语句,由此我们开始java语言的正式学习
part1 java中的数据类型
整数类型
说明:在以前c语言中的书写代码经常会出现同样的代码在不同的编译器中运行会产生不同的结果或产生错误,这可能由于是C语言中的数据类型的表数范围和字段长度在不同编译器中有所差异,说明C语言不具备可移植性;但在java语言中由于其数据类型具有固定的表数范围和字段长度,且在java虚拟机中运行,故其不受到具体操作系统影响,即是java操作系统具有可移植性
1,由于不同整数数据类型间的差异,我们定义时要选择合适的数据类型
例如:
2,由上代码可以看出当使用byte数据类型定义超过127的数字时系统会报错 , 对于long类型的数据类型数据的定义我们需要在常量后面进行'l'或‘L’
代码:
3,对于java中不同进制数字的表示及输出:
以上输出结果为十进制形式
浮点类型
1, 浮点数类型也可以表示整数,但整数类型不能表示浮点数;
2,当使用float类型定义浮点数时,需要在数据后面加‘f’或‘F’;
3,对于浮点数据类型的使用时我们要注意其数据的精度要求,选择合适的数据类型
对于以上代码及其输出结果,我们可以看出当选择的浮点型数据类型不足以满足数据的精度时就会产生数据传输的缺失
4,由3可以看出来float和double在使用中是存在一些问题的,故在实际工作中我们一般采用其他方式解决浮点数问题
本质为二进制小数向十进制转换的问题
例如:
对于以上问题我们有以下解决办法:
这样可以得到正确的结果0.3
boolean类型
具体使用如下
char类型
string类型
对于单个字符我们可以使用char类型来进行声明,但当我们使用字符串时我们一般使用string
对于string表示字符串,其底层逻辑与C语言一致,都是利用数组
如上我们就可以这样求回溯租的长苏字符串的长度,也就数组的长度
对于字符串之间的连接运算,代码展示如下:
基本数据类型的转换
对于容量小的数据类型转换成容量大的数据类型
如上可以看出,当小容量数据专为大容量数据时,无需特殊操作,克可直接进行转化
对于大数据容量数据类型转为小数据容量数据类型
直接进行数据转换就会存在问题,那就需要强制类型转换
如上,只要进行强制类型转换就可以实现大容量数据类型到小容量数据类型,但是我们可以发现,数据在类型转换后数值大小发生变化
原因:这是由于数据类型容量不足导致,例如当int a=12345转到byte型值变化为57,因为byte型只具有2个字节,每个字节占据8个bit位,只有16个位,当数据超出16位二进制表示范围时候,计算机只会取该数据在二进制后16位所表示的值进行输出(浮点数强制转换为整数后还会失去小数部分)
运算符
算数运算符
加法
如上,可以发现加法运算可以是数据之间的相加,也可以是字符串的连接
对于-,* ,/,%运算,与c语言相同
自增自减运算
比较运算符
对于== ,!=,可以用于数值与数值之间,boolean型与boolean型之间,引用类型与引用类型之间
>,<,>=,<=都只能用于数值与数值之间
逻辑运算符
例如上面两行代码,由于使用&和&&的差异
第一个运行结果为“x=2,y=2”
第二个运行结果为“x=2,y=1”
!运算符为取反的意思
^运算符,相同为真,不同为假
赋值运算符
故1式会进行报错
条件运算符
位运算符
对于‘<<’和‘>>’分别为左移运算符和右移运算符(箭头朝向)
<<——左移一位相当于*2(移位以后低位补0)
>>——右移一位相当于/2(带符号的位移,移位以后正数高位补0,负数高位补1)
>>>——无符号的右移,移位后高位默认补0
注:正数在计算机中以原码形式存在,负数在计算机中以补码形式存在
对于‘&’‘|’‘^’它们既可以进行逻辑运算,也可以进行位运算