Java-基本数据类型使用

这一个章节我是建议大家,上机自己写写,不知道这几天,大家把Java运行的环境配置好了没有?

至于写代码的工具,你随意,自己用的顺手就行。

先从最小的byte开始

不知道大家还记不记前面写的第一个Java程序,是怎么执行的,是不是通过入口方法mian()进入程序,再执行程序。

所以,要先写一个入口方法,一般入口方法会写在,执行类/是测试类(就是Test类),以idea为例,新建项目

点击进入以后,我们现在就用不同的Java项目就行,一般在写项目的时候,会用到Maven,这个到时候再说。记住在Project SDK选择你安装的jdk,我这里用的1.8。点击下一步,起一个项目名字。

项目新建完成以后,就像这样,我们的代码一般是写在src下,在Java文件夹中右击新建我们写Java代码的地方如图中所示,一般采用域名倒着写,这是啥意思?

如:com.jinanbazirou         

com表示商用的,还有org的等等,这个大家自己查一下,像政府的怎么表示,医院的、学校的

然后是公司名。我这写的“济南把子肉”


在我们新建的这个包里面,创建咱们要用到的类,我的执行类是Test,要执行的代码主要放在Xiexhewan,注意类的名字要大写,要用英文(我这里先用拼音演示),这个要遵循阿里巴巴开发手册的规范,养成好的习惯(很重要)

整数型

那么我们试试写一个简单的加法计算程序,先不要想这么多,先让程序跑起来,再优化

public class Tool {
    public static void main(String[] args) {
        Tool tool = new Tool();
        int sum = tool.sum(11, 2);
        System.out.println(sum);
    }
    public int sum(int a,int b){
        return a+b;
    }
}

其实干活的主要是sum方法,我们是通过main(),建对象调用的。现在先不要想这么多,先将代码写在main方法里面能执行再拿出来,那么问题来了,怎么改一下,让代码执行起来有一样的效果?

public class Tool {
    public static void main(String[] args) {
            int  a = 1;
            int  b = 2;
            int sum = a+b;
            System.out.println(sum);
        }
}

上面是一个简单的加法测试,我们在上面的这个基础上修改并测试,发现基本数据类型之间的关系

上面的每一句代码不用我在解释了吧     咱们直接干

将上面的a、b的类型改为byte行不行?自己测试一下(运行程序点击绿色的小箭头)

​public class Tool {
    public static void main(String[] args) {
            byte  a = 1;
            byte  b = 2;
            int sum = a+b;
            System.out.println(sum);
        }
}

这是没有问题的                结果等于3

将a+b的和sum改为byte类型可以吗?可以这么写吗?byte sum=a+b;  为什么?

byte不可以,short可以吗?        long可以吗?  思考一下为什么有的行有的不行? 自己测试一下

测试完是不是发现了一个规律,sum的类型方式大于等于int(在内存中字节数)都能,只要小于int(在内存中字节数)的都不行。为什么?

是小于等于int的整数类型在计算的时候默认会转化为4个字节进行运算,想一下,一只42码的脚能穿43或者45码的鞋子,他能穿上34码的鞋子吗?就是这个道理

 public static void main(String[] args) {
            int a = 1;
            byte  b = 2;
            long sum = a+b;
            System.out.println(sum);
        }

上面的这个是对还是错?错,为什么?对,sum是几?

public static void main(String[] args) {
            char a = 97;
            byte  b = 2;
            long sum = a+b;
            System.out.println(sum);
        }

上面这又是对还是错?等于几呐?

   public static void main(String[] args) {
            char a = 'a';
            byte  b = 2;
            long sum = a+b;
            System.out.println(sum);
        }

这个呐?能这么写吗?

字符型

定义:char qq= 'a';         这个打印出来无疑是   a      char qq= '章';?试一下,是不是“章”

整点不一样的

我能不能将qq的值定义成 “张三” ?

不能 , 为什么不能?char只能定义一个字符,无论是英文还是汉字

 byte w = 50;
 byte t = 47;
 char r = w+t;

能这么写吗?为什么?

是不能的,w和t会自动转换成什么在计算?

是先转换成int类型在进行计算,那么计算完的结果是一个int的类型,占4个字节大小,char是几个字节大小(两个),怎么让他行呐?

char r = (char) (w+t);        和你的答案一样吗?这是强转,硬塞,比较暴力,所以不太好,先记住
            char a = 100;
            System.out.println(a)
            char a1='a';
            char a2='b';
            int s=a1+a2;
            System.out.println(s);

这两个出什么?自己猜一下,再试试

记住:大胆猜想,小心验证

浮点型

这等于多少?为什么?精度之前说,这就是不使用它来算钱

 public static void main(String[] args) {
            float f=2;
            System.out.println(f);
        }

等于:2.0,因为是浮点型,所以有小数位

1.0,同上面的

  public static void main(String[] args) {
            int a = 1;
            float f = a;
            System.out.println(f);
        }

分别看一下这三个结果是多少?

 public static void main(String[] args) {
            int a = 10/3;
            float f = a;
            float f1=10/3;
            float f2=(float) 10/3;
            System.out.println(f);
            System.out.println(f1);
            System.out.println(f2);
        }

f=3.0        :在int a = 10/3,会将结果默认向下取整,所以是3

f1=3.0        :这个是和上面的一样的,先计算10/3,再将10/3的结果转换成int在对f1赋值,所以是3.0

f2=3.3333333        :我们将计算出的结果直接强转为float类型,再将值赋值给f2,所以是3.3333333,这个时候就能看出float精度,是不是误差挺大的,用这个计算载人航天,那就太**!

int、long、float之间的联系:

       public static void main(String[] args) {
            int a = 11;
            long b= 12;
            float f1 = a;
            float f2 = b;
            System.out.println(f1);
            System.out.println(f2);
        }

上面的对吗?为什么?在之前的章节里面有提到

int和float都是四个字节,为什么long可以放到float中?这个自己看一下前面章节

          double p = 12;
          float f1 = p;
          System.out.println(p);

这样可以吗?

是不是有一种规律

byte<shortI(char)<int<long<float<double,是不是可以向--->这个方向直接强转,反方向得强转

float v = 12f;  这是一般使用float是的样子,不然默认是double

double的精度

            double v1 =(double) 10/3;
            System.out.println(v1);

结果:3.3333333333333335(16位)

布尔型

 public static void main(String[] args) {
           boolean b1=true;
           boolean b2 = false;
            System.out.println(b1);
            System.out.println(b2);
        }

先记住这些,更细致的内容还有

上面的小列子,感兴趣可以试一下

下一个章节:基本数据类型算运算(算数、逻辑、比较)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值