文章目录
基本数据类型
和其他程序语言一样,基本数据类型java中只有8个:
int , long , float , double , char , byte,boolean,short
需要注意的是,在不同的系统和不同位数的机器上,一个基本数据类型所占存储空间可能不同
字节和取值范围的关系
1字节(byte) = 8位(bit)
简单的计算方法:假如n表示字节数,则取值范围的记忆方法为==-2^(8n) 到 2^(8n)-1==
但是实际上,这是计算机使用补码进行储存
整型(int)
类型 | 储存需求 | 取值范围 |
---|---|---|
int | 4字节 | -231~231-1 |
short | 2字节 | |
long | 8字节 | |
byte | 1字节 |
java中没有任何无符号形式的整型类型
在java中,所有的数值类型所占据的字节数量与平台无关,而c和c++中与平台有关
浮点类型
类型 | 储存需求 | 取值范围 |
---|---|---|
float | 4字节 | |
double | 8字节 |
后缀有F或f的是float类型,其余的都是double类型,一般double类型更为常见。
NaN:不是一个数字
char类型
char类型的字面量值要用单引号括起来,遵循Unicode编码
特殊的转义字符
转义序列 | 名称 |
---|---|
\b | 退格 |
\t | 制表 |
\n | 换行 |
\r | 回车 |
’\‘" | 双引号 |
’\‘’ | 单引号 |
\‘\’ | 反斜杠 |
boolean类型
只有2种:true&false
整型值和布尔值不能进行转换
包装类
int对应Integer,double对应Doube等
总而言之:如果我们定义一个int类型的数,只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型,但如果要像
对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用
的方法。自认为java作为一们面向对象的语言,我们在声明一个变量时最好声明为对象格式,这样更有利于你对面向对象的理解。
变量
变量初始化
声明一个变量之后,必须用赋值语句对变量进行显示初始化
常量
java中,使用final指示常量;c++中,用const指示常量。
java中,通常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量,用static final设置一个类常量
运算符
+,-,*,/,%
注意可以用”/“和”%“来得到数字位数上的各个值
如:352
352%10=2;35%10=5;3%10=3;
352/10=35;35/10=3;3/10=0;
这就实现了数字的分离
数值类型之间的转换
隐式类型转换:准寻一定的法则
显式类型转换(强制类型转换):
如:
double x = 9.997;
int nx = (int) x;
进行四舍五入可以用Math.round方法
自增与自减操作
前自增:先完成+1
后自增:使用变量原来的值
int a = 1;
int b = 1;
a++;
b++
System.out.print("输出结果是:"+a+","+b)
输出结果是2,1
关系和boolean运算符
判 等:==
判不等:!=
逻辑与:&& 逻辑或:|| (按照短路方式)
三元操作符:?:
(如果条件为true,下面的表达式
condition?expression1:expression2
就为第一个表达式的值,否则为第二个)
位运算符
& : “and”
| : “or”
^ : “xor”
~ : “not"这些运算符按位模式处理
位运算符号主要针对2个二进制数的位进行逻辑运算
如果是10进制,则会先转换为二进制
”>>”:将位模式左移
“<<”:将位模式右移
”>>>"用0填充高位
优先级
枚举类型
情景:变量的取值只在一个有限的集合内如:
enum Size { SMALL,MEDIUM,LARGE,EXTRA_LARGE };
Size s = Size.MEDIUM;
默认从第一个元素到依次往后赋值为:0,1,2.。。。。
如果其中一个被赋值,后面的被赋值为依次+1
枚举其实可以实现类,在面向对象过程中使用广泛
java枚举的常用方法
字符串(String)
java允许用“+”来进行2个字符串的拼接,而且当一个字符串与一个非字符串进行拼接的时候,后者会被转换成字符串。
如:
System.out.print("1+1="+1+1);
1+1=11
这里我们得到的并不是我们想要的2,而是得到11,就是因为是一个字符串和非字符串的拼接。
我们如果要进行截取一个字符串可以用String类中的substring方法
如:
String greeting = "Hello";
String s = greeting.substring(0,3);
System.out.print("结果是:"+s);
结果是:Hel
还有一点十分重要的是:String声明的字符串是不可修改的,String类并没有提供修改字符串的方法。但是这却有一个优点:编译器可以让字符串共享 但是只有字符串常量是共享的,而+或substring等操作产生的结果并不共享
而且字符串的声明不会产生内存遗漏,因为java自带有垃圾回收机制,如果一块内存不再使用了,系统会自动将其回收
但是如果要字符串能够修改,可以调用StringBuffer类,最好不要用StringBuilder类,原因可以Google
检验字符串是否相等
使用equals方法:s.equals(t)
正确就返回true,错误就返回false
注意!字符串之间的比较千万不能用= =来判断
因为= = 只是检测两个字符串是否放在同一位置。
空串与Null串
空串“”是长度为0的字符串
Null串是一种值,将String变量存放null值,表示目前没有任何对象与该变量关联
如果要检查一个字符串既不是null也不是空串,需要用到:
if( str != null && str.length() !=0 )
这里必须要先检查str不为null
String API
常用的api参看这里String Api