Java小白入门教程(3)——数据类型

提纲:

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,存储你的成绩,并打印出这个变量的值。

 

已标记关键词 清除标记