提纲:
1、数据类型的分类2、8种基本数据类型3、数据类型的转换
上节课回顾
1、第一个程序:重点
A:程序的结构,B:java程序的执行过程:编写源代码,编译器进行编译:javac,解释器执行:java
//HelloWorld.javapublic class HelloWorld{ public static void main(String[] args){//JVM执行程序的入口 System.out.println("Hello World..."); }}class A{}class B{}
2、类的阐述:知道
A:同一个源文件中可以定义多个类。 B:编译后,每个类都会生成独立的.class文件,文件的名字和类名是一致的。 C:一个类中,只能有一个主函数,每个类都可以有自己的主函数。 D:public修饰的类,称为公开类,要求类名必须和文件的名字一致。 E:一个源文件中,只能有一个公开类。
3、包,package:了解
作用:类似于文件夹,用于管理和区分字节码文件。 语法:package 包名; 位置:必须写在源文件的第一行。 带包编译:javac -d . 源文件名.java (自动生成目录结构) 带包运行:java 包名.类名 包名:所有的字母都小写,采用域名倒置的规则
4、编码规范
A:书写格式: 层级之间的缩进,tab键,一个制表符 一行只能有一句代码 每行语句使用;分号结束 B:注释 单行注释:// 多行注释:/*....*/ 文档注释:/**....*/ C:标识符命名:(掌握) 标识符:在写程序的时候,对类,包,变量,方法等等命名。 语法要求: 1、组成:字母,数字,_,$ 2、数字不能开头 3、区分大小写 4、不能是java中的保留字和关键字。public static void class int 约定俗成: 1、见名知意,英文单词 2、类的名字,首字母大写 3、变量名,方法名等,驼峰式命名,studentName 4、包名,全部字母都是小写 5、常量名,所有的字母都大写。
5、变量
概念:内存中的一小块空间。用于存储数据。程序执行过程中,数值可以改变。 三要素:数据类型,变量名,值 语法: 定义变量:数据类型 变量名 赋值变量:变量名 = 数值;
一、数据类型的分类
Java中的数据类型:基本数据类型和引用数据类型。
Java语言是强类型语言:对数据类型的要求很严格。声明是什么类型的变量,就要存储什么类型的数值。
二、基本数据类型
Java中的基本数据类型:4类8种2.1整数型
示例代码:
public class Test1Type{ public static void main(String[] args){ //1.创建byte类型的变量,测试取值范围 byte b = 127;//取值范围:-128~127,共(256) System.out.println(b); //2.short类型的变量, short s = -32768;//取值范围:-32768~32767,共(65536个数值) System.out.println(s); //3.int类型的变量 int i = 2147483647;//取值范围:-2147483648 System.out.println(i); //4.long类型的变量 long l1 = 9223372036854775807L;//加L表示该数值是lang类型的 System.out.println(l1); int age = 19; long l2 = 100000000L; }}
2.2浮点型
就是生活中的小数
- float类型:4个字节,32bit,定义变量的时候,数值后加f,或F
float f = 3.14f; - double类型:8个字节,64bit,默认类型
科学计数法表示:科学计数法:3.4E383.4E1,10的1次方-->10E2,10的平方-->100E3,10的立方-->1000E38,10的38次方-->10000000000...
示例代码:
public class Test2FloatAndDouble { public static void main(String[] args) { //1.单精度浮点数:float float f = 3.14f; System.out.println(f); //2.双精度浮点数:double double d = 1.23;//java中的小数,默认类型是double System.out.println(d); //科学计数法 double d2 = 2000;//int,隐含了数据类型的自动转换 System.out.println(d2); double d3 = 2000.0;//double System.out.println(d3); double d4 = 2E3;//相当于2*10的3次方 System.out.println(d4); //1.7E308,相当于1.7乘以10的308次方。17后有307个0 double d5 = 17000000000000000000000000.0;//double System.out.println(d5); //1.浮点类型:IEEE754标准。 }}
2.3 布尔类型
boolean类型:表示逻辑对和错的。取值只有两个,true(对,真),false(错,假),
示例代码:
public class Test3Boolean { public static void main(String[] args) { //定义一个boolean类型 的变量 //该类型,只有2个值:true,false boolean b1 = true; boolean b2 = false; //"表达式",就是一个式子,数值和一些运算符组成的 // 3 + 5 -->8 boolean b3 = 3 > 5;//3 > 5的计算结果:false //当给boolean类型变量赋值的时候, //可以直接赋值:true,false //也可以赋值为一个表达式:该表达式的计算结果是true或者false System.out.println(b1); System.out.println(b2); System.out.println(b3);//false }}
2.4 字符型
char,表示单个的字符,使用单引号引起来的,但本质上是个数值,因为对应的字符编码值。
Java语言采用的字符集:Unicode编码。
赋值方式一:通过''引起来的字符:'A'-->65
赋值方式二:通过编码值进行赋值:10进制的编码值,16进制的unicode编码。
示例代码:
public class Test4Character { public static void main(String[] args) { //字符类型:char,使用单引号引起来 char c = 'A'; System.out.println(c); //使用编码值进行存储 char c2 = 65;//65是字符A的编码值 System.out.println(c2); //采用unicode编码:16进制赋值 char c3 = 'A'; System.out.println(c3); char c4 = '中'; System.out.println(c4); System.out.println((int)c4);//将c4这个字符按照数值打印:其实就是该字符的编码值 char c5 = 20013; System.out.println(c5);//中 char c6 = '国';//22269 System.out.println((int)c6); char c7 = 22269; System.out.println(c7); }}
转义字符:
转义字符:将字符进行转义-->语法上使用 1、将有特殊作用的字符,转为普通的字符,不再起作用 ',", 2、还可以将一些普通的字符,转为有特殊含义的作用 ,
示例代码:
public class Test5TranserSign { public static void main(String[] args) { /* 转义字符:将字符进行转义-->语法上使用 1、将有特殊作用的字符,转为普通的字符,不再起作用 ',", 2、还可以将一些普通的字符,转为有特殊含义的作用 , */ char c = '''; System.out.println(c); char c2 = '"'; System.out.println(c2); System.out.println("HelloWorld"); System.out.println("C:Rubypro"); System.out.println(""HelloWorld""); }}
注意:String是引用类型,用于表示一个字符序列。使用双引号引起来的都是字符串的内容
三、数据类型的转换
Java这门语言,虽然是强类型语言:要求数据类型一致。 但是实际上允许我们在一定程度上可以转换:
自动转换: A:两种类型兼容 B:目标类型的取值范围 大于 源类型取值范围 强制转换: A:两种类型兼容 B:目标类型的取值范围 小于 源类型的取值范围 需要加强制转换符的语法:说明要强制转为哪种类型 (要转换的类型)数值 取值范围: byte-->short-->int-->long-->float-->double char
示例代码:
public class Test7Convert { public static void main(String[] args) { /* Java这门语言,虽然是强类型语言:要求数据类型一致。 但是实际上允许我们在一定程度上可以转换: 自动转换: A:两种类型兼容 B:目标类型的取值范围 大于 源类型取值范围 强制转换: A:两种类型兼容 B:目标类型的取值范围小于 源类型的取值范围 需要加强制转换符的语法:说明要强制转为哪种类型 (要转换的类型)数值 取值范围: byte-->short-->int-->long-->float-->double char */ short s1 = 123;// int i1 = s1;//隐含着将s1这个数值由short类型转为int,再赋值给i1这个变量 System.out.println(s1); System.out.println(i1); byte b1 = 10; int i2 = b1;//byte-->int System.out.println(i2); //byte的取值范围:-128~127之间 byte b2 = (byte)s1;//将s1由short类型,强制转为byte类型,再赋值给byte类型的变量b2 System.out.println(b2);//123 short s2 = 128; byte b3 = (byte)s2;//-128 System.out.println(b3); /* 整型:2进制 byte--->short:自动转换 byte:8位 0000 0001 short:16位 0000 0000 1000 0000 short-->byte:强制转换,因为数据存在不安全性 0000 0000 1000 0000 1000 0000 */ double d1 = 2.5; int i3 = (int)d1;//强制转换:浮点到整数:直接截取整数部分,忽略小数 System.out.println(i3); long l1 = 100L; float f1= l1; System.out.println(f1); //char 0-65535 //short -32768~32767 short s3 = -65; char c2 = (char)s3;//65-->A,-65-->? System.out.println(c2); } }
三、总结
1、数据类型:
基本类型,引用类型
4类8种:(记住,掌握,会用)
整数型:4种byte,short,int(默认),long,加L浮点型:2种float加F,double(默认)字符型:char:单引号引起来的单个字符,对应的是编码表中的编码值:0-65535。 转义字符:,将字符进行转义 A:有特殊作用的字符,转为普通的字符 ;,", B:普通的字符,转为有特殊作用的字符 ,65:A,97:aboolean,布尔类型,true,false
类型转换:
- 自动转换:类型兼容,取值范围小-->取值范围大。
- 强制转换:类型兼容,取值范围大-->取值范围小。数据可能不安全,就需要强制转换
(要转的类型)数值
boolean类型不参加这些数值方面的转换
String:引用类型
双引号引起来的字符序列。"abc","helloworld"," 王二狗"
四、作业
1、课堂代码敲3遍
2、完成以下题目
A、声明字符串变量name,存储你的姓名,并打印出这个变量的值。B、声明整型变量age,存储你的年龄,并打印出这个变量的值。C、声明浮点型变量score,存储你的成绩,并打印出这个变量的值。