java数据类型

目录

数据类型

1.IDEA的使用

创建java项目

创建包

创建类

2.变量

变量的使用流程:

声明变量的3种方式:

3.数据类型

整数

小数

字符

布尔类型

引用数据类型(字符串)

4.类型转换

自动类型转换:

强制类型转换:

自动类型转换提升

5.表达式

6.运算符

算数运算符:两个操作数进行计算

赋值运算符:等号右边赋值给等号左边

关系运算符:两个操作数进行比较

逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较

三元运算符:将判断后的结果赋值给变量

7.控制台输入


数据类型

1.IDEA的使用

创建java项目

点击new projept

 

项目名称不能用中文,路径不能有中文

添加MOdules

选择java

输入Modules name

点击确定,完成项目

完成之后的样子

创建包

作用:类似于文件夹,用于管理字节码(.class)文件。 语法:package 包名; 位置:必须写在源文件的第一行。 带包编译:javac -d . 源文件名称.java (自动生成目录结构) 带包运行:java 包名.类名 (包名+类名又称全限定名) 采用域名倒置的规则:www.baidu.com.cn -> cn.com.baidu.xxx 例如:cn.com.baidu.department1.group2.project3.utility.MyUtils

创建类

2.变量

概念:计算机内存中的一块存储空间,是存储数据的基本单元。 内存就好像是酒店,当中包含了多个房间。 房间的类型有所不同(单人间、两人间...)。 每个房间都有一个唯一的门牌号。 每个房间的住客也不相同。

酒店的房间 — 变量 房间的类型 — 数据类型 房间门牌号 — 变量名 房间的住客 — 值

变量的使用流程:

声明: 数据类型 变量名; int money; //开辟整数变量空间 赋值: 变量名 = 值; money = 100; //将整数值赋予变量 注意:Java是强类型语言,变量的类型必须与数据的类型一致。

声明变量的3种方式:

1.先声明,再赋值:【常用】 数据类型 变量名; 变量名 = 值;

2.声明并赋值:【常用】 数据类型 变量名 = 值;

3.多个同类型变量的声明与赋值:【了解】 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;

3.数据类型

Java中的变量具有严格的数据类型区分。(强类型语言) 在Java语言中,任何一个值,都有其对应类型的变量。

基本数据类型有八种,不包含字符串

整数

类型字节取值范围(二进制)取值范围(十进制)
byte1字节-2^7 ~ 2^7-1-128 ~ 127
short2字节-2^15 ~ 2^15-1-32768 ~ 32767
int4字节-2^31 ~ 2^31-1-2147483648 ~2147483647
long8字节-2^63 ~ 2^63-1-9223372036854775808~9223372036854775807
//1.先声明后赋值  byte  -128~127
        byte age;//声明变量,现在没有值
        age=18;//赋值
        //2.边声明边赋值
        short num=32000;
        //3.声明多个   常用int
        int a=18,b=19,c=20;
        int e,f,g;//声明多个
        e=18;//赋值
        f=19;
        g=20;
        //声明long类型  需要在数字男后边添加l/L
        //当数字没有超过int的大小
        long h=333333333333333L;
        System.out.println(h);

小数

类型字节负数取值范围正数取值范围
float4字节-3.4E+38 ~ -1.4E-451.4E-45 ~ 3.4E+38
double8字节-1.7E+308 ~ -4.9E-3244.9E-324 ~ 1.7E+308

注意:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加“F”

//float赋值时需要加上f/F
        float score=99.5f;
        double money=9999999.9;
        //double类型可以加上d/D  一般情况下都不会去加
        double mo=999.9d;
        double moo=999.9D;

字符

类型字节取值范围(无符号数)字符编码
char2字节0 ~ 65535Unicode字符集(万国码)

Unicode字符集支持ASCII编码(美国标准信息交换码)。 Unicode中每个字符都对应一个十进制整数,从而可以使用多种方式赋值。

字符赋值:char c1 = 'A';(通过''描述为字符赋值)

整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)

进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)

//char类型赋值只能写一个字符而且必须使用单引号
        char a='a';
        System.out.println(a);
        //使用数字赋值
        char b=97;
        System.out.println(b);
        //使用16进制赋值
        char c='\u0041';
        System.out.println(c);
        char d='\"';
        System.out.println(d);

布尔类型

类型字节取值范围描述
boolean1字节true / false仅可描述“真”或者“假”

可直接赋值true / false 也可赋值一个结果为true / false的表达式 注意:Java中的boolean不能参与算数运算

boolean flag=false;
boolean flag1=true;

引用数据类型(字符串)

类型取值范围字符编码
String任何” ”之间的字面值Unicode字符序列
        System.out.println("你好!");//"你好!"就是字符串
        String  name="张三";//注意首字母是大写的
        String address="河南新乡";
        String idCard="41072715646465";//数字类型用双引号括起来也是字符串
        System.out.println("姓名:"+name);
        System.out.println("户籍:"+address);
        System.out.println("身份证:"+idCard);

4.类型转换

自动类型转换:

两种类型相互兼容。 目标类型大于源类型。小转大

        byte a=3;
        short b=4;
        int d=5;
        long e=6222222222222222222l;
        float f=7.8f;
        double h=9.9;
        boolean flag=false;
        char i=98;
        //自动类型转换
        //1.类型兼容
        // byte,short,int long 互相兼容
        short s1=a;//把byte类型的a转换成short类型
        long l1=s1;
        // float double  互相兼容
        double d1=f;//float类型 转换为double类型
        //float f1=d1;//大的数据类型无法直接转换为小的数据类型
        //byte,short,int,long 可以值接转换为float,double
        double d2=d;
        float f2=d;
        float f3=e;

强制类型转换:

两种类型相互兼容。 目标类型小于源类型。大转小

        //1.类型兼容
        //2.大的数据类型转换为小的数据类型
        int a=1334;
        //目标类型 别名=(目标类型)原类型;
        byte b=(byte)a;
        //前置类型转换有可能会造成数据失真,所以尽量不使用强制转换
        System.out.println(b);
        //小数类型强制转换为整数,需要去点小数点后边的值
        int a2=(int)12.3;
        System.out.println(a2);

自动类型转换提升

进行算数运算时: 两个操作数有一个为double,计算结果提升为double。 如果操作数中没有double,有一个为float,计算结果提升为float。 如果操作数中没有float,有一个为long,计算结果提升为long。 如果操作数中没有long,有一个为int,计算结果提升为int。 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。

特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。

5.表达式

概念:使用运算符连接的变量或字面值,并可以得到一个最终结果。 例如: 1 + 2; int a = 3; a - 2; int b = 10; int c = 20; b * c; c / b; short d = 100; int e = 200; d > e; d <= e; ......

6.运算符

算数运算符:两个操作数进行计算

操作符描述
+加、求和
-减、求差
*乘、求积
/除、求商
%模、求余
        int a=9;
        int b=10;
        double c=11.2;
        int d=a+b;
        System.out.println(a+"+"+b+"="+d);
        //两个int相除 结果还是int
        System.out.println(a/b);
        System.out.println(b/a);
        //int和double相除 结果还是double
        System.out.println(c/a);
        System.out.println(a/c);
        //% 取余,取模
        int f=b%a;//10/9=1...1 最后的余数就是我们的结果
        System.out.println(f);
        //四位数 int num=1234;请得到每一位数字
        int num=1234;
        //int g=num....;
        int g=num%10;
        int shi=num%100/10;
        int bai=num/100%10;
        int qian=num/1000;
        System.out.println(g+" "+shi+" "+bai+" "+qian);

算数运算符:一元运算符(只有一个操作数)

操作符描述
++递增,变量值+1
- -递减,变量值-1
        int i=9;
        int k=i++;//i++  i=i+1;  先赋值后运算  第二次使用时值才会+1
        System.out.println(k);
        System.out.println(i);
        //i=10;
        System.out.println(i++ +10+ i++);
        //++i  先运算后赋值
        i=10;
        System.out.println(++i);
        i=10;
        System.out.println(++i+10+ ++i);//11+10+12
        i=10;
        System.out.println(i++ + ++i + i++ + ++i);

赋值运算符:等号右边赋值给等号左边

操作符描述
=直接赋值
+=求和后赋值
-=求差后赋值
*=求积后赋值
/=求商后赋值
%=求余后赋值
        int m=10;
        m+=3;//m=m+3;
        System.out.println(m);

关系运算符:两个操作数进行比较

操作符描述
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于
        int j=10;
        int n=11;
        //比较运算符得到的结果是boolean类型true或者false
        System.out.println(j>n);
        System.out.println(j<n);
        //==只能比较基本数据类型,引用类型的比较不建议使用
        System.out.println(j==n);
        System.out.println(j!=n);

逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较

操作符语义描述
&&与(并且)两个操作数,同时为真,结果为真
||或(或者)两个操作数,有一个为真,结果为真
!非(取反)意为“不是”,真即是假,假即是真
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入语文成绩:");
        double cScore=sc.nextDouble();
        System.out.println("请输入数学成绩:");
        double mScore=sc.nextDouble();
        //如果成绩都大于60  良  && 两个表达式都是true才能为true
        boolean  flag1= cScore>60&&mScore>60;
        System.out.println("都及格了?"+flag1);
        // ||有一个表达式为true结果为true
        boolean  flag2= cScore>60||mScore>60;
        System.out.println("至少一个及格了?"+flag2);
        // !  非
        boolean  flag3= !(cScore>60||mScore>60);
        System.out.println("一个都不及格?"+flag3);

三元运算符:将判断后的结果赋值给变量

操作符语义描述
? :布尔表达式?结果1:结果2当表达式结果为真,获得结果1当表达式结果为假,获得结果2
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入成绩:");
        double score=sc.nextDouble();
        //如果成绩大于60显示及格了,否则显示不及格
        String str=score>=60? "及格":"不及格";
        //boolean表达式? 结果A:结果B
        //当前边的表达式成立 显示结果A 不成立显示结果B
        System.out.println("成绩及格了么?"+str);

7.控制台输入

程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。 导包语法:import 包名.类名;//将外部class文件功能引入到自身文件中。 使用顺序: 导入 java.util.Scanner。 声明 Scanner 类型的变量。 使用Scanner类中对应的函数(区分类型): .nextInt(); //获得整数 .nextDouble(); //获得小数 .next(); //获得字符串 .next().charAt(0);//获得单个字符 注:如果输入了不匹配的数据,则会产生java.util.InputMismatchException

        //创建对象
        Scanner sc=new Scanner(System.in);//固定写法
        System.out.println("请输入一个数字:");
        //接收数据  (控制台输入数据)
        double d1= sc.nextDouble();
        //int i=sc.nextInt();
        //String str=sc.next();//接收字符串
        System.out.println(d1);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

斑马有点困

原创不易,多谢打赏

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

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

打赏作者

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

抵扣说明:

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

余额充值