笔记备忘,方便以后忘了查询(如有错误,敬请指点)
★类型: ↗基本类型 Java的类型 ↘引用类型 |
↗整形 (byte、short、int、long)
↗ 浮点型 (float、double)
★基本类型: →字符型 (char)
↘boolean型 (boolean)
★整型
位(bit) 要么是0、要么是1。
字节(Byte) 8个bit
所谓整形,只能装整数(包括正整数和负整数)
2^0→1 2^1→2 2^2→4 2^3→8 2^4→16 2^5→32 2^6→64 2^7→128 2^8→256 2^9→512 2^10→1k 2^11→2048 2^12→4096 2^16→65536 2^20→1M 2^30→1G 2^40→1T |
byte: 8位(能表示256个数)、取值范围: -128~127
short:16位(能表示65536个数)、取值范围: -32768~32767
int:32位(能表示4G个数)、取值范围: -2G~2G-1
long:64位(能表示4G个数)、取值范围很大,无需记忆
▲注意点:
A、你直接给出一个整数,整数默认是int型。
如果该整数值较小、且直接赋值给byte或short、Java也可以将它当成byte或short
B、如果你直接给出一个巨大的整数,Java不会自动把它当成long型处理
如果希望Java把该整数当成long处理,需要在整数后加L或l后缀
C、整数一共有4种表示形式:
十进制:
八进制:以0开头。 逢8进1,只能出现0~7
十六进制:以0X开头或0x开头。
逢16进1,只能出现0~9、a~f.
二进制:以0B或0b开头
逢2进1,只能出现0~1
十六进制的数,在编程中非常常用——每一位十六进制的数,恰好换算成4位二进制的数,因此非常的方便。
★浮点型
只能装带小数部分的数。
float:4位(32位) 因为内存巨便宜了出于精度考虑基本不用float了
double:8位(64位)、取值范围超级无敌大
Q1:编程时如何选择用float还是double?为什么?
A1:应该用double 因为浮点数都有精读丢失,但float丢失更严重
▲浮点型注意点:
A、你直接给出一个浮点值时,整数默认是double型。
如果你希望一个浮点值被当成float处理,必须在浮点值后添加F或f。
B、浮点数会有精度丢失
所以浮点数比较时,应该用“差值法”
C、浮点数有两种表示形式:
-小数形式。
-科学计数法。 数eN 数*10^N
3e5 = 300000 3e-2 = 0.03
只要用科学计数法,就一定是浮点数,不可能是整数。
D、有三个特殊值:
浮点数除以0,得到无穷大
正无穷大:正正得正,负负得正
负无穷大:正负得负 -Infinity
【所有正无穷大都相等;所有负无穷大都相等,但他两不相等】
非数:浮点0除以0,对负数开方会得到非数NaN(not a number)
【非数与任何数都不相等,与它自己都不相等】
★字符型
只能装单个字符(英中日韩),且单个字符要放在单引号里。
char: 2个字节(16位)
▲字符型注意点
A、字符型有3种表现形式
-单引号中放普通字符
-单引号中放转义字符 参考P52页表3.2
\b \u0008 退格符 8 \r \u000d 回车符 13 |
\t \u0009 制表符 9 |
- 用字符Unicode编号。十六进制
B、字符完全可以当成无符号整数使用。
字符当成无符号整数使用时,其实就是用该字符的编号
Java类型可分为2大类:数值型(整形、浮点型、字符型)
/***************************************
字符集:为了在计算机底层保存字符,科学家为所有字符编号,
当要保存字符时,实际上保存该字符的编号(二进制)
读取字符内容时,读取是二进制的编号,需要参照编号表
才能得到对应的字符
ASCII:只支持英文、数字、标点符号。
a~z: 97~97+25; A~Z: 65~90; 0~9: 48~57
\r: 13 \n: 10 ': 39 ": 34
GB2312:-中文字符集,同时兼容ASCII
GBK:-汉字更多
GB18030:-目前简体的字符集GBG
美国人制订了兼容全球所有国家文字的字符集:Unicode,Java用的就是这个字符集
Unicode有一些变种:UTF-8、UTF-16
一般来说,以后企业中开发推荐使用UTF-8
***************************************/
★boolean型
只有2个值:true或false。
true表示真;false表示假。
结尾留言:感谢看到这里,希望对你有略微帮助,过年变懒了,一直在零碎学习,但没发表,换软件后,可以直接复制粘贴了,果然科技改变生活σ ゚∀ ゚)σ
public class ZuoYe
{
int i1 = 123;
int i2 = 456;
int i3 = 9400;
int i4 = 4;
int i5 = 9600;
int i6 = 6;
int i7 = 9700;
int i8 = 8;
int i9 = 9900;
int i10 = 10;
int it1 = 31415;
int d;
static int it2 = 555;
//8进制赋值
int ct5 = 0111;// 1*8^2 + 1*8 + 1= 73
int ct6 = 0253;// 2*8^2 + 5*8 + 3= 171
//16进制赋值
int a3 = 0xed;//14*16 + 13 = 237
int A3 = 0b11101101; //二进制
int a4 = 0x2e;//2*16 + 14 = 46
int A4 = 0b00101110;//二进制
//转2进制就是将16进制每一位转成相对应的2进制数,
//以上a3与A3,a4与A4运算结果相同.
//浮点型
float f1=1.2f;
double d1= 3.14;
double d2 = 2e6;
float f2 = 1e5f;
//字符型
char c ='a';
char c1 = '\b';
char c2 = '\u0025';
public static void main(String[] args)
{
ZuoYe zy = new ZuoYe();
System.out.println(zy.c + zy.c1 + zy.c2);
zy.d1= zy.d1* 2 -5.3 * 1.2 -zy.d1 * 2.2;
System.out.println(zy.d1);
System.out.println(zy.d2);
System.out.println(zy.f2);
System.out.println(zy.ct5);
System.out.println(zy.ct6);
System.out.println(zy.a3);
System.out.println(zy.A3);
System.out.println(zy.a4);
System.out.println(zy.A4);
}
}