1.基本数据类型
数值型
(1)byte
1byte=8bit 。 表示范围为:-127——127
(2)short
short=2byte=16bit。表示范围为:-32767——32767
(3)int
int=4byte=32bit。表示范围为:-2147483647——2147483647
(4)long
long=8byte=64bit。表示范围为:-9223372036854775807——9223372036854775807
注
int x=0b11;0b表示二进制。
int y=0x11;0x表示十六进制。
int z=011;0表示八进制。
java中基本类型中的数值类默认为int类型,使用long形式时要在定义long变量后加l或L。
举例:long a=10L;
浮点型
(1)float
float=4byte=32bit。表示范围:(-3.403E38~3.403E38)
(2)double
double=8byte=64bit。表示范围:(-1.798E308~1.798E308)
float和double有两种表示形式。
十进制数形式,例如 : 3.14 314.0。
科学记数法形式,如 3.14e2 3.14E2。
注
浮点型默认为double类型,使用float时要在变量后加f或F。
举例:float a=10.233F。
float :单精度,可以精确到 8 位有效数字。很多情况下,精度很难满足需求。
double :双精度,精度是 float 的两倍。
字符型
char
char=2byte=16bit。
使用规则:用单引号括起来。
例如: char c1 = 'a';
char c2 ='中 ';
由于 java 底层使用 unicode 编码 , 所以可以涵盖世界上所有书面语的字符。
char运算
char 类型是可以运算的因为 char 在字符编码表中有对应的数值。
在 JAVA 中,对 char 类型字符运行时,直接当做对应编码表的整数来对待。
char c= ‘ a ’ +1; 先将’ a ’提升为 int ,计算结果 98。
布尔型
boolean
boolean用来判断逻辑真假,结果为true或者false。
boolean 类型适于逻辑运算,一般用于程序流程控制 。
java语言中boolean 类型数据只允许取值 true 或 false 。
注意: 不可以 0 或非 0 的整数替代 false 和 true ,这点和 C 语言不同。
2.引用数据类型
(1)String
String 不是基本数据类型,属于引用数据类型。
使用一对""来表示一个字符串可,内部以包含0个、 1 个或多个字符。
声明方式 :
例如: String str = “ abcd ” ;
String name = “张三” ;
String 是 java 类库中提供的一个类 , 用类来当做字符串变量类型,类似于c语言里的字符串数组。
运算规则
1. 任意八种基本数据类型的数据与 String 类型只能进行连接 “+” 运算,且结果一定
也是 String 类型
2.String 类型不能转为其他的基本类型。
例如:
(2)接口(interface)
(3)数组([ ])
3.基本数据类型的转换
基本数据类型转换分为默认转换和强制类型转换,布尔类型不能和其他七个基本数据类型转换。
要根据其他七个基本数据类型大小来进行类型转换。
容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造
成精度降低或溢出;使用时要格外注意。
有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的
那一 种数据类型,然后再进行计算。
七个基本数据类型大小:(char,short,byte)<int<long<float<double。
char和short和byte不分大小。
(1)默认转换。(小转大:取值范围小的提升为取值范围大的)
举例:byte a=10;
int b=a;
将byte类型的变量转为int类型的变量。
(2)强制转换。(大转小:取值范围小的提升为取值范围大的) 可能出现问题
举例:float a=10.33f;
int b=(float)a;
将float转换成int,出现小数位丢失,造成精度缺失。
(1)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造
成精 度降低或溢出;使用时要格外注意。
(2) 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的
那一 种数据类型,然后再进行计算。
float比long容量大的原因:
浮点数不是简单的直接表示大小,而是按照一定的标准分配的。
其中第 1 位,符号位,即 S 。
接下来的 8 位,指数域,即 E 。
剩下的 23 位,小数域,即 M 。
也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照
上述公式计算而来,通过这个公式,虽然只用到了 4 个字节,但是浮点数却比长整型的
最大值要大。
V=(-1)^s * M * 2^E。
4.运算符
常用的运算符包括五大类。包括:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符。
(1)算术运算符:
+,-,*,/,%,++,--。
+ 运算符有三种用法:
1.加法运算,2.连接,3.正号。
需要注意:
(1)加法运算是数值+数值。
(2)连接。(数值+字符串 字符串+字符串)
++与--运算
--与++一样。
(2)赋值运算符:
=,+=,-+,*=,/=,%=。
==与=不一样,==是相等,=是赋值语句。
(3)比较运算符:
<,>,<=,>=,==,!=。
比较运算的类型都是布尔类型,要么是true要么是false。
(4)逻辑运算符:
&,&&,|,||,^,!。
&—逻辑与 | —逻辑或 !—逻辑非。
&& —短路与 || —短路或 ^ —逻辑异或。
&: 与逻辑,判断表达式两端无论真假都要进行判断。
&&: 与逻辑 ( 短路与 ) ,判断表达式左端为假右端就不需要在判断, && 相比 & 效率更高。
举例: int a=5,b=10,c=15;
if(b<a&&b<c) 结果为 false , b<a 为 false 继续判断与 b<c 结果为 false 。
if(b<a&b<c) 结果为 false , b<a 为 false 就不会再进行判断。
|:或 逻辑,判断表达式两端无论真假都要进行判断。
||:或 逻辑 ( 短路或 ) ,判断表达式左端为假右端就不需要在判断,|| 相比| 效率更高。
(5)位运算符:
&,|,^,~,<<,>>,>>>。
(1)<<左移位运算符。(空位补0,被移除的高位丢弃,空缺位补0)
(2)>>右移位运算符。(被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1)
(3)>>>右移无符号运算符。(被移位二进制最高位无论是0或者是1,空缺位都用0补)
(4)&。(二进制位进行&运算,只有1&1时结果是1,否则是0)
(5)|。(二进制位进行 | 运算,只有0 | 0时结果是0,否则是1)
(6)^。(相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1,1^0=1 , 0^1=1)
(7)~。(正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反)
举例:
5.控制语句。
(1)if。(条件语句)
(1)条件表达式必须是一个返回布尔结果的表达式,语句可以是用{}包含的语句块。
(2){}可有可没,没有的话就是默认为最近的执行if判断。
举例:
没括号时不满足if语句的判断条件靠的近的不会执行,if语句没有{}的话就是默认为最近的语句执行if判断。
(2)if else 语句。
if(条件表达式,最终返回一个布尔值){ }
if(条件表达式,最终返回一个布尔值){ }else{ }
if(条件表达式,最终返回一个布尔值){ }else if(条件表达式,最终返回一个布尔值){ }
if(条件表达式,最终返回一个布尔值){ }else if(条件表达式,最终返回一个布尔值){ }else{ }
if/else/for...语句后面即使只有一行代码也最好添加{ } 避免歧义
(3)switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。
switch(表达式){
case value1 : 代码块 [break];
case value2 : 代码块 [break];
case value3 : 代码块 [break];
default: 默认代码块;
}
表达式可以是byte、short、int、char、枚举类型、String类型;
case语句后面只能使用常量(字面量)表达式;
case后的值不能重复。
某个case分支如果没有提供break语句,则继续执行下一个case后的语句;(穿透性)。
凡是switch可以实现的功能, if语句都可以实现 反之则不一定。
编辑
6.循环语句。
(1)while循环。
变量初始化
while(条件表达式){
循环体
迭代部分
}
先判断逻辑表达式的值。 若=true.则执行其后面的语句,然 后再次判断条件并反复执行,直到条件不成立为止。
(2)do while.
do{
}while(条件表达式)
先执行语句,再判断逻辑表达式的值,若 为true,再执行语句,否则结束循环。
(3)for循环。
7.Java中的方法。
(1) java中的方法类似其他语言中的函数, 将完成某个功能的代码进行封装,为他命名,最终可以重复使用,减少代码的冗余。
方法必须写在类中(.java文件中)。
(2)方法定义:
public 访问权限。
static 静态的 直接可以使用类名调用。
void 表此方法没有返回值。
...... 方法名。
()参数列表。
{ } 方法体。
(3)return语句。
return语句。
return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
有两种格式:
return 值; //将值返回,方法必须声明有返回值。