第二章_数据类型

一、标识符

标识符可以简单的理解成一个名字。
在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。
一个正确的标识符需要遵循以下规则:

  1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符

  2. 不能以数字开头。如:123name不合法

  3. 标识符严格区分大小写。如:tmooc 和 Tmooc是两个不同的标识符

  4. 标识符的命名最好能反映出其作用,做到见名知意

  5. 标识符不能是Java的关键字

二、关键字

在Java中,有一些单词被赋予了特定的意义,一共有53个关键字
这53个单词都是全小写,其中有两个保留字:const和goto
在这里插入图片描述

三、变量与常量

在JAVA中,我们需要记录一些数据,但这些数据的值是不固定的,总在变,
我们可以把这些数据理解为变量。

我们通过三个元素来描述变量:变量类型 变量名以及变量值

int  age  =  18;   //声明int类型的变量并赋值

String tel ;  //声明String类型的变量

在程序运行过程中,值一直不会改变的量成为常量。
练习:输出个人信息

需求: 在控制台打印: java架构师今年20岁,月薪100000.99,感慨java是世界上最好的语言

public class Test1_Info {

   //1.创建程序的入口函数
   
   public static void main(String[] args) {


      System.out.println("欢迎来到Java世界,可爱的程序猿~");

     

      /**定义变量的规则: 数据类型 变量名 变量值*/

      String name = "李逵";

      int age = 18;

      double salary = 100000.99;


      System.out.println("我叫"+name);

      /**如果是在中间进行拼接,用 " "+变量+" " 的格式*/

      System.out.println("java架构师"+name+"今年"+age+"岁,月薪"+salary+",Java是世界上最好的语言");

   }

四、数据类型

在这里插入图片描述

基本类型介绍(八种)

标题在这里插入图片描述

字符类型
【1】Java中使用单引号来表示字符常量,字符型在内存中占2个字节。

char
类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

【2】转义字符:

在这里插入图片描述

五、扩展:进制转换问题

1Byte = 8 bits (1字节 = 8 位)

1KB = 1024Bytes 1MB = 1024KB 1GB=1024M
【1】二进制转换为十进制:
二进制: 1101

1*2^3  +   1*2^2   +  0*2^1  +     1*2^0

= 8 + 4 + 0 + 1
= 13

【2】十进制转换为二进制:
十进制 13

在这里插入图片描述

【3】八进制转换十进制:
八进制: 16

18^1 + 68^0
= 8 + 6
=14

【4】十进制转换为八进制:
十进制14:
在这里插入图片描述

【5】八进制转换为十六进制:

把十进制当做一个中转站:

八进制—》十进制—》十六进制

实际上根本不用自己转换这么麻烦:我们可以直接用系统中提供给我们的计算器:
在这里插入图片描述

六、学习Scanner接收键盘输入

import java.util.Scanner;



 * 需求:求出指定半径圆的面积

 * 公式:圆的面积:π*r*r


public class Test3_CircleArea {

   public static void main(String[] args) {

      //1.提示用户输入要计算的半径值:

      System.out.println("请输入您要计算的半径值:");

      //2.定义变量r用来保存半径值

      //接收用户输入的半径值

      //Scanner使用时需要导包:import java.util.Scanner;

      double r = new Scanner(System.in).nextDouble();

     

      //3.根据用户在键盘上输入的半径值计算圆的面积

      double circleArea = 3.14*r*r;

      //4.打印计算完毕的结果

      System.out.println("圆的面积为:"+circleArea);

   }

七、变量交换

import java.util.Scanner;

 * 需求:接收用户输入的两个值,假设a=2,b=1,并将这两个变量的值进行互换


public class Test4_ValueExchage {

   //0.创建入口函数main()

   public static void main(String[] args) {

      //1.提示并接收用户输入的两个值

      System.out.println("请输入a的值:");

      int a = new Scanner(System.in).nextInt();

      System.out.println("请输入b的值:");

      int b = new Scanner(System.in).nextInt();

      //2.查看用户输入的原来的值

      System.out.println("a的值:"+a);

      System.out.println("b的值:"+b);

    

      //3.定义第三个变量用来值交换

      int t ;

      //t = 1;//把数字1交给变量t保存

      t = a;//把变量a中保存的值交给变量t来保存

      a = b;//把变量b中保存的值交给变量a来保存

      b = t;//把变量t中保存的值交给变量b来保存

     

      //4.把交换后的两个变量的值打印在控制台

      System.out.println("交换后,a的值为:"+a);

      System.out.println("交换后,b的值为:"+b);

   }

在这里插入图片描述

基本类型的字面值(5条)

1、整数字面值是int类型byte1 short2 int4 long8 float4 double8

int x = 99999;//对,右面数据的字面值是int类型

int x = 99999999999;//错,右面数据的字面值是int类型,但是已经超出int的取值范围。

2、 byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b1=127;//对,可以用范围内的值直接赋值

byte b2=128;//错,超出byte范围

3、浮点数的字面值是double类型

double r =3.14;//对,小数字面值类型就是double

float r =3.14;//错,右面的数据字面值是double,float是4字节存不下double类型的数据

4、字面值后缀L D F

long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可

float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型

double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

5、进制前缀

0b   - 标识这是2进制 ,:0b0101

0    - 标识这是8进制, 8进制是三位,: 023

0x   - 标识这是16进制,: 0x0001

\u   -标识这是char类型,属于16进制

基本类型的类型转换

【1】什么是类型转换:
在赋值运算或者算数运算的时候,要求数据类型一致,就要进行类型的转换

【2】类型转换的种类:
自动转换,强制转换
在这里插入图片描述
小到大(隐式转换)

byte m = 120;

int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用

float  f = 3.2f; double d = f; -->可以执行

大到小(显示转换、强制类型转换)

int x = 999;

byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换

容量大的类型转换为容量小的类型时必须使用强制类型转换。

  1. 转换过程中可能导致溢出或损失精度
例如:int  i =128;  
	 byte b = (byte)i; //打印的结果是-128

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
  1. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
例如:float a = 32.9f; 
	 int b =(int) a;    //打印的结果是32  
  1. 不能对boolean类型进行类型转换。
口诀:

小到大,直接转  大到小,强制转  浮变整,小数没


  --------------------------------------->  

byte,short,char—> int > long—> float > double 

运算规则(5条)

1、计算结果的数据类型,与最大数据类型一致

System.out.println(3/2);//1,int/int,得到的结果类型还是int

System.out.println(3/2d);//1.5,int/double。得到的结果是double

2、 byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;

byte b = 2;

byte c = (byte)(a+b);

//a+b会自动提升成int类型,右面得运算结果就是int大类型

//给左面的byte小类型赋值,不可以,需要强转。

3 、整数运算溢出

整数运算,类似于一个钟表,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米?3亿m/s

//溢出的现象:

//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。

System.out.println(300000000L*60*60*24*365);

4、 浮点数运算不精确

1-0.8 (这是一个现象,后续会学习解决方案)

5、浮点数的特殊值

Infinity 无穷大  3.14/0

NaN  not a number   0/0.00.0/0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如青春如烈火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值