小学生家长网站建设需求,做网站关键词,网站建设摊销,阿芹网站建设——每一种数据都定义了明确的数据类型#xff0c;在内存中分配了不同大小的内存空间#xff08;字节#xff09;
思维导图 一.整数类型
1.什么是整数类型 —— 用int、short、byte、long存储的整数值就是整数类型
2.整数的类型 类型 所占的字节数 数值…——每一种数据都定义了明确的数据类型在内存中分配了不同大小的内存空间字节
思维导图 一.整数类型
1.什么是整数类型 —— 用int、short、byte、long存储的整数值就是整数类型
2.整数的类型 类型 所占的字节数 数值范围 byte 1字节 -128 ~ 127 short 2字节 -2^15 ~ 2^15-1(-32768 ~ 32767) int 4字节 -2^31 ~ 2^31-1 long 8字节 -2^63 ~ 2^63-1 3.一个小case快速了解整数类型
public class Test {public static void main(String[] args) {//整数的类型byte a 10;//占用1个字节(byte)的内存空间用于存储10short b 20;//占用2个字节(byte)的内存空间用于存储20int c 30;//占用4个字节(byte)的内存空间用于存储30long d 40;//占用8个字节(byte)的内存空间用于存储40//输出值System.out.println(a);//10System.out.println(b);//20System.out.println(c);//30System.out.println(d);//40}
}
4.整型的细节讨论 1Java各整数类型有固定的数值范围和字节数不会受操作系统(OS)的影响这样就保证了Java的可移植性 2Java整型的常量值默认为int类型若是声明了long型的变量的数值则数值后面可加上l / L表明这是一个long型的数值 public class Test {public static void main(String[] args) {//Java整型的常量值默认为int类型若是声明了long型的变量的数值则数值后面可加上l / L//long num 10;//10默认为int类型若是想要10为long型则在后面加l/Llong num 10L;System.out.println(num);}
} 3若是整型的高类型想要转化到低类型则需要强制类型转换 强制类型转换格式低数据类型变量 (低数据类型) 高数据类型的变量 public class Test {public static void main(String[] args) {//若是整型的高类型想要转化到低类型则需要强制类型转换long num 10;byte n 10;//n num;//错误不能直接把long型的值转换为byte的值n (byte) num;//进行强制类型转换}
} 4各数据类型给该数据类型的变量进行赋值的时候赋的值不能超过该数据类型的数值范围 public class Test {public static void main(String[] args) {//各数据类型给该数据类型的变量进行赋值的时候赋的值不能超过该数据类型的数值范围//byte 100;//错误超过了byte的数值范围//short b 300010;//错误超过了short的数值范围//int c 2111100000000000;//错误超过了int的数值范围}
} 二. 浮点类型
1.什么是浮点型 —— 用float、double存储的数值就是浮点类型
2.浮点数的类型 类型 所占的字节数 数值范围 float 4字节 -3.403e38 ~ 3.403e38 double 8字节 -1.798e308 ~ 1.798e308 注浮点数在机器中存放的形式浮点数 符号位 指数位 尾数位 3.一个小case快速了解浮点型
public class Test {public static void main(String[] args) {float data 1.314f;//data申请了4个字节的空间存储1.314double num 13.14;//data申请了8个字节的空间存储13.14//输出System.out.println(data);//1.314System.out.println(num);//13.14}
}
4.浮点数的细节讨论 1Java浮点数的类型有固定的数值范围和字节数不受具体操作系统的影响 2Java中浮点型常量默认是double类型若声明了float型使用数值给float型变量赋值的时候数据值需加上f / F 3通常情况下应使用double类型因为它的精度更高 public class Test {public static void main(String[] args) {//Java中浮点型常量默认是double类型若声明了float型使用数值给float型变量赋值的时候数据值需加上f / Ffloat num 10.13f;//10.13默认是double类型想要10.13变成float型需要在10.13后面加f / Fdouble data 13.14;//输出值System.out.println(num);//10.13System.out.println(data);//13.14}
} 4浮点型常量有两种表示形式 i.十进制数形式5.12、6.123、7.1345 ii.科学计数法形式4.12e3 (4.12*10^3)、3.145e-5 (3.145*10^-5) public class Test {public static void main(String[] args) {//十进制数形式5.12、6.123、7.1345float num1 5.12f;double num2 6.123;//科学计数法形式4.12e3 (4.12*10^3)、3.145e-5 (3.145*10^-5)float data1 4.12e3f;double data2 3.145e-5;}
} 5浮点数不要轻易做比较若要比较则需要使用Math.abs()进行比较【浮点数的比较方式】 public class Test {public static void main(String[] args) {double num1 2.7;double num2 8.1 / 3;System.out.println(num1 num2);//false//使用Math.abs()比较if (Math.abs(num1 - num2) 0.000001) {System.out.println(true);//true}}
} 三.字符类型
1.什么是字符型 —— 用char类型储存单个字符的值就是字符型字符要用 包含起来
2.一个小case快速了解字符型
public class Test {public static void main(String[] args) {char ch1 我;//ch1使用了两个字节的内存空间储存‘我’char ch2 l;//ch2使用了两个字节的内存空间储存‘l’char ch3 o;char ch4 v;char ch5 e;char ch6 中;char ch7 国;//输出System.out.println( ch1 ch2 ch3 ch4 ch5 ch6 ch7);//我love中国}
}
3.字符型的细节讨论 1字符型常量是使用单引号 包括起来的单个字符 2Java中允许使用转义字符 \ 来将后面跟着的字符转变了特殊的字符 public class Test {public static void main(String[] args) {//字符型常量是使用单引号( )包括起来的单个字符char ch a;char c b;//Java中允许使用转义字符 \ 来将后面跟着的字符转变了特殊的字符char n1 \n;//换行char n2 \b;//退格char n3 \r;//回车char n4 \t;//制表符}
} 3在Java中char的本质是一个整数在输出char对应变量的值时得到的结果是unicode码对应的字符 public class Test {public static void main(String[] args) {//在Java中char的本质是一个整数在输出char对应变量的值时得到的结果是unicode码对应的字符char ch1 a;char ch2 中;char ch3 国;char ch4 h;//输出对应的unicode码对应的值System.out.println((int) ch1);//97System.out.println((int) ch2);//20013System.out.println((int) ch3);//22269System.out.println((int) ch4);//104}
} 4可以直接给char类型赋在其数值范围内的整数值在输出的时候会按照对应的unicode字符输出 5char类型是可以进行运算的相当于整数因为它们有对应的unicode码 public class Test {public static void main(String[] args) {//可以直接给char类型赋在其数值范围内的整数值在输出的时候会按照对应的unicode字符输出//char ch1 12223344;//错误赋的值超过了char类型的数值范围char ch1 1234;char ch2 105;System.out.println(ch1);//ӒSystem.out.println(ch2);//i//char类型是可以进行运算的相当于整数因为它们有对应的unicode码char n1 a n;char n2 b c;System.out.println(n1);//ÏSystem.out.println(n2);//Å}
} 四.布尔类型
1.什么是布尔类型 ——只有true(真)和false(假)两个值的类型叫做布尔类型布尔类型只能取true和false两个值
2.一个小case快速了解布尔类型
public class Test {public static void main(String[] args) {boolean b1 false;//boolean至占用一个字节boolean b2 true;//boolean b3 null;//错误不能取除了true和false外的其他值//输出System.out.println(b1);//falseSystem.out.println(b2);//true}
}
3.
3.一个小case快速了解自动类型转换
public class Test {public static void main(String[] args) {char ch a;int num 10;num ch;//发生了自动类型转换把char类型转换到了int类型float data1 3.14159f;double data2 3.123;data2 data1;//发生了自动类型转换把float类型转换到了double类型data2 num;//把int型提升到double型//输出System.out.println(num);//97System.out.println(data2);//97.0}
}
4.自动类型转换的细节讨论 1有多种数据类型的数据进行混合运算时系统首先自动将所有数据转换成精度最高的数据类型然后再进行运算 public class Test {public static void main(String[] args) {//有多种数据类型的数据进行混合运算时系统首先自动将所有数据转换成精度最高的数据类型然后再进行运算char ch a;byte num1 10;short num2 100;int num3 1000;long num4 ch num1 num2 num3;//char,byte,short,int类型进行运算将所有数据转换为int类型进行运算//输出System.out.println(num4);//1207int data1 10;float data2 1.314f;double data data1 data2 1.3;//先将所有的数据转换为double类型再进行运算//输出System.out.println(data);//12.614000129699708}
} 2把精度大的数据类型赋给精度小的数据类型时会报错 public class Test {public static void main(String[] args) {//把精度大的数据类型赋给精度小的数据类型时会报错double num1 1.13;//float num2 12.13;//错误12.13默认是double类型但num2是float类型不能从double转到floatint data 0;//char ch data;//data是int类型不能直接从int类型转换到char型}
} 3byte、short和char类型之间不会相互自动转换 public class Test {public static void main(String[] args) {byte b1 10;short b2 12;char ch a;//byte、short和char类型之间不会相互自动转换//ch b1;//错误//ch b2;//错误//b1 ch;//错误//b2 ch;错误}
} 4byteshortchar三者之间可以互相运算但是再运算时需要转换为int类型进行计算 public class Test {public static void main(String[] args) {byte b 12;short num 120;char ch a;byteshortchar三者之间可以互相运算但是再运算时需要转换为int类型进行计算int data b num ch;System.out.println(data);//229}
} 5boolean类型不与任何类型进行运算 public class Test {public static void main(String[] args) {boolean res true;//boolean类型不与任何类型进行运算//int ret res 10;//错误//double sum 1.314 res;//错误//char sum1 a res;//错误}
} 6自动提升规则表达式的结果自动提升为操作数中最大的类型 5.2 强制类型转换
1.什么是强制类型转换 ——强制类型转换是自动类型转换的逆过程将精度大的数据类型转换为精度小的数据类型在使用时要加上强制类型转换符()但是可能会导致精度丢失或精度溢出 2.一个小case了解强制类型转换
public class Test {public static void main(String[] args) {//强制类型转换int num (int) 1.3;//把double类型的值1.3强制转换为int类型int data1 67;byte data2 (byte) data1;//把int类型data1转换为byte类型char ch (char) data1;//把int类型的data1转换为char类型//输出System.out.println(num);//1System.out.println(data2);//67System.out.println(ch);//C}
}
3.强制数据类型的细节讨论 1当高精度的数据类型变成低精度的数据类型时就需要使用强制类型转换 2强制类型转换只会对离()最近的操作数有效若是想要提高所有的操作数则需要使用小括号()提高优先级 public class Test {public static void main(String[] args) {//当高精度的数据类型变成低精度的数据类型时就需要使用强制类型转换//使double类型变成int类型double num1 13.14;int num2 10;num2 (int) num1;//使double转向了intSystem.out.println(num2);//13//强制类型转换只会对离()最近的操作数有效若是想要提高所有的操作数则需要使用小括号()提高优先级//int data (int)1.3 2.3 3.3;//错误(int)只对1.3起作用而2.33.3还是double类型//使用()提升优先级int data (int) (1.3 2.3 3.3);System.out.println(data);//6}
} 3char类型可以保存int的常量值但不能保存int的变量值需要使用强制类型转换 public class Test {public static void main(String[] args) {//char类型可以保存int的常量值但不能保存int的变量值需要使用强制类型转换char ch 120;//可以直接使用int的常量值int num 100;//ch num;//不能直接保存int的变量值ch (char) num;//强制类型转换System.out.println(ch);//d}
} 4byte、short和char类型在进行运算时当做int类型处理 public class Test {public static void main(String[] args) {//byte、short和char类型在进行运算时当做int类型处理byte b 10;short s 12;char ch 23;int num b s ch;System.out.println(b s ch);//45System.out.println(num);//45}
} 六.基本数据类型和字符串类型(String)的转换
1.什么是字符串类型 ——使用 号包括起来的一串字符叫做字符串Java中字符串有特定的数据类型String
2.一个小case快速了解String类型
public class Test {public static void main(String[] args) {//字符串常量需要使用包括起来使用String命名的变量叫做字符串变量String str1 我;String str2 爱;String str3 中;String str4 国;//输出System.out.println(str1 str2 str3 str4);//我爱中国}
}
3.为什么需要使用字符串类型和基本数据类型的相互转换 1基本数据类型转String类型基本数据类型 2String类型转基本数据类型通过基本数据类型的包装类调用parseXXX方法 i.String类型转byte类型Byte.parseByte(); ii.String类型转short类型Short.parseShort(); iii.String类型转int类型Integer.parseInt(); iv.String类型转long类型Long.parseLong(); v.String类型转float类型Float.parseFloat(); vi.String类型转double类型Double.parseDouble(); vii.String类型转boolean类型Boolean.parseBoolean(); public class Test {public static void main(String[] args) {int num 100;double data 100.1314;boolean b true;//基本数据类型转String类型基本数据类型 String s1 num ;//100字符串的100String s2 data ;//100.1314字符串的100.1314String s3 b ;//true字符串的100.1314//输出System.out.println(s1 s2 s3);//100100.1314true//String类型转基本数据类型通过基本数据类型的包装类调用parseXXX方法String str1 12;String str2 123;String str3 165;String str4 17766;String str5 13.1456;String str6 17.2345;String str7 false;//String类型转byte类型Byte.parseByte();System.out.println(Byte.parseByte(str1));//12,整数的12不是字符串的12//String类型转short类型Short.parseShort();System.out.println(Short.parseShort(str2));//123,整数的123不是字符串的123//String类型转int类型Integer.parseInt();System.out.println(Integer.parseInt(str3));//165//String类型转long类型Long.parseLong();System.out.println(Long.parseLong(str4));//17766//String类型转float类型Float.parseFloat();System.out.println(Float.parseFloat(str5));//13.1456//vi.String类型转double类型Double.parseDouble();System.out.println(Double.parseDouble(str6));//17.2345//String类型转boolean类型Boolean.parseBoolean();System.out.println(Boolean.parseBoolean(str7));//false}
}
4.String类型和基本数据类型转化的细节讨论 1在String转化为基本数据类型的时候要确保String类型能共转化为有效的数据 2若是转化的格式不正确则会抛出异常 注异常是程序运行中可能发生的特殊情况它会导致程序的终止并可能产生不可预料的结果。异常的出现可能是由于程序的错误、硬件的故障或者其他不可预知的原因。当异常发生时程序会停止执行并且会产生一个异常信息以提供更多的信息以便程序员可以尽快修复错误。 public class Test {public static void main(String[] args) {//在String转化为基本数据类型的时候要确保String类型能共转化为有效的数据//若是转化的格式不正确则会抛出异常String str happy;int data Integer.parseInt(str);//错误happy不是整数类型的值不能转化//System.out.println(data);//会抛出异常}
} 七.标识符的命名规则和规范
1.什么是标识符 ——Java中对各种变量、方法和类等命名时使用的字符序列称为标识符
2.标识符的命名规则 1由26个英文字母大小写数字0-9_和$组成 2数字不能开头 3不可以使用关键字和保留字但能包含关键字和保留字 4Java中严格区分大小写标识符长度无限制但是建议在64个字符以内 5标识符不能包含空格 3.标识符的命名规范 1包名组成报名的所有字母都小写 2类名、接口名多个单词组成时使用每个单词首字母大写其余字母小写 3变量名、方法名多个单词组成时第一个单词首字母小写其它单词首字母大写 4常量名所有字母都要大写多个单词时使用下划线_连接 4.关键字 class interface enum byte short int long float double char boolean void true false null if else while do for switch case default break continue return private protected public abstract final static synchronized extends implements new this super instanceof try catch finally throw throws package import native strictfp transient volatile assert 5.保留字 ——现在的Java版本尚未使用但以后的版本可能会作为关键字使用 byValue cast future generic inner operator outer rest var goto const