day03——数据类型
提纲:
1、数据类型的分类
2、8种基本数据类型
3、数据类型的转换
上节课回顾
1、第一个程序:重点
A:程序的结构,B:java程序的执行过程:编写源代码,编译器进行编译:javac,解释器执行:java
//HelloWorld.java
public 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.4E38
3.4
E1,10的1次方-->10
E2,10的平方-->100
E3,10的立方-->1000
E38,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 = '\u0041';
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、还可以将一些普通的字符,转为有特殊含义的作用
\n,\t
示例代码:
public class Test5TranserSign
{
public static void main(String[] args)
{
/*
转义字符:将字符进行转义-->语法上使用\
1、将有特殊作用的字符,转为普通的字符,不再起作用
\',\",\\
2、还可以将一些普通的字符,转为有特殊含义的作用
\n,\t
*/
char c = '\'';
System.out.println(c);
char c2 = '"';
System.out.println(c2);
System.out.println("Hello\nWor\tld");
System.out.println("C:\\Ruby\\pro");
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:普通的字符,转为有特殊作用的字符
\t,\n
65:A,97:a
boolean,布尔类型,true,false
类型转换:
- 自动转换:类型兼容,取值范围小-->取值范围大。
- 强制转换:类型兼容,取值范围大-->取值范围小。数据可能不安全,就需要强制转换
(要转的类型)数值
boolean类型不参加这些数值方面的转换
String:引用类型
双引号引起来的字符序列。"abc","helloworld"," 王二狗"
四、作业
1、课堂代码敲3遍
2、完成以下题目
A、声明字符串变量name,存储你的姓名,并打印出这个变量的值。
B、声明整型变量age,存储你的年龄,并打印出这个变量的值。
C、声明浮点型变量score,存储你的成绩,并打印出这个变量的值。
3、预习明天内容:运算符
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三目运算符
- 。。。