1-Java基础回顾整理_03_类型、变量、运算符
1、数据类型
Java是一门强类型的开发语言,要求十分严格,所有的变量都必须先定义才能使用;
这样就造就的它的特点:安全性高,但是相对的速度就是适当的慢一些
2、Java数据类型
Java的数据类型分为两大类:基本数据类型、引用数据类型
基本数据类型(primitive type):
byte、short、int、long、float、double、char、boolean
引用数据类型(reference type):
类、接口、数组,这些都是引用数据类型,最常见的是String,它是一个类,对应的基本数据类型的包装类,也是引用数据类型
基本数据类型对应的包装类只记两个比较特殊的:Integer、Character、其他的都是首字母大写;
3、字节:
位(bit):计算机内部数据存储的最小单位,比如11001100就是一个八位的二进制数;
字节(byte):计算机中数据处理的基本单位,习惯上采用大写B的写法来表示;
位与字节的关系:1B = 8bit
字符:指计算机中使用的字母、数字、字和符号;
4、通常人们口中讲的电脑的32位和64位的区别
其实就是涉及到一个寻址能力;
64位的可以装32位操作系统和64位的操作系统,内存最多支持128G,理论上无限大;
32位的只能装32位操作系统,内存最多支持4G;
5、浮点数拓展
浮点数:float、double
切记:千万要避免使用两个浮点数来进行比较,会出现问题;
特别是银行方面,不要使用浮点类型进行计算,建议使用BigDecimal类,数学工具类来进行计算。
6、字符
所有的字符本质上还是数字;
编码,Unicode编码,2字节,0 - 65536,也就是2^16,Excel的最大长度就是65536,只是大部分人没有注意到;
u0000 - uFFFF
转义字符:
\t 水平制表符(相当于Tab,空格) \n 换行 例如:char c = '\u0061'; 最后输入的是a
7、== 与 equals的区别
当比较的是引用数据类型的时候,==比较的是地址值,当比较的是变量内容的时候,比较的是值
equals比较的是内容是否相等
8、类型转换
小数的优先级高于整数
byte,short,char -> int -> long -> float -> double
低 ---------------------------------------------------> 高
强制类型转换可能引发的问题:
内存溢出、精度损失;
当操作比较大的数时,需要注意数据溢出的问题,要考虑到进行数据类型转换
int i = 1000000000; 在JDK1.7中,有一个新特性,可以使用下划线进行分割,不会对下划线进行识别
int i = 10_0000_0000; 打印输出的还是1000000000;
当计算较大的值时,若原数据类型为int,需要转换为long,否则会出现溢出问题;
如:int i = 20; int j = 1000000000;
long num = j * ((long)i);
9、变量
Java变量是程序中最基本的存储单元,其三要素为:变量名、变量类型、作用域;
作用域:
类变量:加static关键字
实例变量(可理解为全局变量):没有static关键字
局部变量:在方法内部的变量
10、修饰符
修饰符不区分先后顺序,前后均可 如:static final double PI = 3.14;
类变量是全局可用的。
11、运算符
关系运算符:instanceof,面向对象的部分使用较多;
四则运算符:当进行四则运算的时候,要注意范围,是否需要进行类型转换,int 转换为 long、double。
一元运算符:++、--
++:自增 i++:先用再增加 ++i:先加再使用
--:自减 i--:先使用再减 --i:先减再使用
幂运算:比如求 2^3
可使用Math.pow(2,3); 数据工具类的方法进行计算
也可以使用位移符号进行计算,2 << 3,效率比较高
位运算:
&与、|或、~非、^异或
<<左移:左移一位,相当于*2
>>右移:右移一位,相当于/2
12、输出计算内容与字符串连接""
当""在计算内容前面,则后面的计算不会进行
当""在计算内容后面,则前面的计算会进行