基础知识
Posted zaijie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础知识相关的知识,希望对你有一定的参考价值。
Java是强类型语言,必须为每一个变量声明一种类型。
基础的数据类型
变量
Java每一个变量属于一种类型。声明变量时,变量所属的类型位于变量名之前。
每一个声明以一个分号结束,声明是一个完整的语句,所以必须以分号结束。
变量名必须是一个以字母开头或数字构成的序列。变量名中所有的字符都是有意义的,并且大小写敏感。变量名的长度没有限制。
在一行可以声明多个变量
//定义变量 int i; //定义多个变量 int i, j;
必须用赋值语句对变量进行显式初始化,不可使用未初始化的变量。
常量
使用final指示常量,习惯上,常量名使用大写。
某个常量可以在一个类的多个方法中使用,通常将这些常量成为类常量,使用static final定义。
运算符
数学函数与常量
Math类包含了各种各样的数学函数。
Math类为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程。如果得到一个完全可预测的结果比运行速度更重要的话,name就应该使用StrictMath类。
数值类型之间的转换
如果两个操作数中有一个是double类型,另一个操作数就会转换成double类型;
否则,如果其中一个float类型,另一个将会转换成double类型;
否则,如果其中有一个是long类型,另一个操作数将会转换成long类型
否则,两个操作数都转换成int类型。
byte转short转int转long不会 丢失信息。
char可以转换成int,并且不会丢失精度,int转换成double也不会丢失精度,float转换成double不会丢失精度。
强制类型转换可能会丢失一些信息。
关于数值比较的问题:
public class TestMath{ public static void main(String[] args){ Integer intA = 1000; Integer intB = 1000; //true System.out.println(intA.equals(intB)); //false System.out.println(intA == intB); } }
public class TestMath{ public static void main(String[] args){ Integer intA = 110; Integer intB = 110; //true System.out.println(intA.equals(intB)); //true System.out.println(intA == intB); } }
Integer 的源码中,对传入参数i做了一个if判断。在-128<=i<=127的时候是直接用的int原始数据类型,而超出了这个范围则是new了一个对象。我们知道 == 符号在比较对象的时候是比较的内存地址,而对于原始数据类型是直接比对的数据值。
以上是关于基础知识的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础