java数据类型

1:System.out.print h和 System.out.println区别

System.out.print 将双引号的内容原样输出,不换行

System.out.println 将双引号的内容原样输出,换行

转义字符

\: 就是转义字符,作用: 将后面普通的字母转换为特殊含义

\n:换行

\t: 距离前面有一个制表符位置

2:变量的作用域:

作用域是指作用范围,变量在什么范围中有效

作用范围就是离它最近的{}

局部变量:定义在方法中

成员变量: 定义在类中,方法外

3:java是一种强类型语言, 每个变量都必须声明其数据类型

Java的数据类型分为两大类:基本数据类型(primitive data type)和 引用数据类型(reference data type)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.1整型数据类型

//给变量赋值的时候,值可以为不同进制的

 int num1 = 12; //默认情况下赋值就是十进制的情况
> 
> int num2 = 012; //前面加0 这个值就是八进制
> 
> int num3 = 0x12; //前面加上0x或者0X,这个值就是十六进制的
> 
> int num4 = 0b10; // 前面加上0x或者oB, 这个值就是二进制的
> 
> System.out.println(num1);
> 
> System.out.println(num2);
> 
> System.out.println(num3);
> 
> System.out.println(num4);

3.2:浮点型

float类型又被称作单精度类型, 尾数可以精确到5位有效数字,数值有一个后缀f/F, 没有的话默认为double类型

double数值精度是float的两倍, 后缀可以加上D/d

PS:有效数字指的是从左开始第一个不为0的数到最后一个数



```java
//十进制形式

double f1 = 3.14;

//科学计数法形式

double f2 = 314E-2;

// 浮点类型的变量

float f3 = 3.142345534332f;

double f4 = 3.144555666665634;

// 注意: 最好不要进行浮点类型的比较

float f5 = 0.3F;

double f6 = 0.3;

System.out.println(f1);

System.out.println(f2);

System.out.println(f3);

System.out.println(f4);

System.out.println(f5==f6);


### 3.3:字符型


```java
char ch2 ='A';

System.out.println(ch2);

char ch3 ='4';

System.out.println(ch3);

char ch4 ='中';

System.out.println(ch4);

char ch5 ='?';

System.out.println(ch5);

// 在java中无论: 字母,数字,中文都是字符类型的常量, 都占用2个字节,

char ch6 =' ';

System.out.println(ch6);

// 字符类型,单引号引起来的单个字符

System.out.println("-----------------------");

char ch1 ='\n';

System.out.println("aaa"+ch1+"bbb"); // 换行

System.out.println("aaa\tbbb");  // 制表符

System.out.println("aaa\bbbb");  // \b 向前退一格

System.out.println("aaa\rbbb");  // \r 将光标到本行开头;回车

System.out.println("\"java\"");  // \"将双引号原样输出  \'将单引号原样输出  \\ 将\原样输出

false

输出结果

A

4

中

?

aaa

bbb

aaa bbb

aabbb

bbb

"java"

char ch1 ='A';

System.out.println(ch1); //A

System.out.println(ch1 +90); //155

System.out.println(155-ch1); //90

// char 类型我们看到的样子就是它本身的字面常量, 但是底层在进行计算的时候,实际是按照一个码机械能计算的

// 这个码就是ASCII

//之前说char类型是按照unicode码表进行存储的,Unicode兼容了ASCII码, Unicode的前128位置ASCII


```java
char ch2 ='中';

System.out.println(ch2);

System.out.println(ch2+90); //20103

System.out.println(20103);//90

//转换

int num1 = (int)ch2;

System.out.println(num1);

char ch = (char)20013;

System.out.println(ch);

char ch5 =20013;

System.out.println(ch5);

结果

A

155

9020103

20103

20013

中

中

//面试题

```java
char ch6 ='2'+2;

System.out.println(ch6); //4

3.4 布尔型


boolean flag =5==9;

String f ="你好";

System.out.println(f);

System.out.println(flag);  //false

3.5数据类型转换

/*

类型的级别(从低到高的)byte, short,char -->int–>long–>float–>double

级别用来做什么?当一个表达式中有多种数据类型的时候,要找出当前表达中级别最高的那个类型,然后其余的类型都转换为

当前级别最高的类型进行计算*/

double d2 =12 +1294L +8.5F +3.81 +‘a’;

System.out.println(d2); // 1415.31

/*

在进行运算的时候:

左=右:直接赋值

左<右:强转

左>右: 直接自动转换*/

// 以下情况属于特殊情形,对于byte,short, char 类型来说,只要在他们的表数范围中,赋值的时候就不需要进行强转,直接赋值即可

byte b =12;

System.out.println(b);//12

byte b2 = (byte)270;

System.out.println(b2); //14    原因是因为byte只支持8位       

3.6 final关键字
i

import java.util.Scanner;

/**

* @Auther: heguihui

* @Date: 2021/2/28-02-28-14:53

* @Description: PACKAGE_NAME

* @Version: 1.0

*/

public class final_test {

public static void main(String[] args) {

// 一个变量被final修饰,这个变量就变成了一个常量,这个常量的值就不可变了

        // 这个常量就是字符常量, 字符常量的名字全部大写(约定熟成)

        final double PI =3.14;

        // 使用扫描器Scanner

        Scanner sc =new Scanner(System.in);

        System.out.print("请输入一个半径:");

        int r = sc.nextInt();

        double c =2*PI*r;

        System.out.println(c);

    }

}

4 数据类型转换

a. 自动类型转换
b.强制类型转换
c. 类型提升

4.1:自动类型转换

如果系统可以自动把一种类型的值赋给另一种类型,称为自动数据类型转换,一般是表数范围小的类型赋值给范围大的类型,好比把小瓶子倒入大瓶子, 但是整数王浮点型转换时,可能有精度损失
在这里插入图片描述
注意:1.直接 0.0 位double类型 2.运算中小心数据溢出float型需要写成0.0f

4.2 强制类型转换

把大瓶子的水倒入小瓶子中

long longValue = 1000L
int i = (int)longValue

4.3 类型提升

当一个算数表达式包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升
提升规则:

  1. byte char short 自动提升至int
    2.整个表达式的数据类型自动提升至表达式中的最高数据类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值