java数据类型与变量的安全性

在这里插入图片描述

作者简介: 博主在读计科双非本科,目前大二,正在学习JAVA,数据库,操作系统,计算机网络,数据结构,JAVA Web等…
个人主页:熬夜磕代码丶
作品专栏: java se
我变秃了,也变强了
给大家介绍一款程序员必备刷题平台——牛客网
点击注册一起刷题收获大厂offer吧

一、标识符

在java中规定标识符中只能包含:字母,数字及下划线和$ 符号,但不能以数字开头,严格区分大小写.

参考标准当中的规定:
1.类名:大驼峰,每个单词首字母大写(HelloWorld)
2.方法名:小驼峰,从第二个单词开始每个单词首字母大写(helloWorld)
3.变量名:小驼峰

不合法标识符如下(示例):
1.public(关键字)
2.520shy(数字开头)
3.zhao.d(出现陌生符号)

二、数据类型

java当中的整型与浮点数都是严格带有符号位

在这里插入图片描述

java中有8种基本数据类型

如下(示例):

数据类型关键字字节大小
字节型byte1
短整型short2
整型int4
长整形long8
单精度浮点数float4
双精度浮点数double8
字符型char2
布尔型boolean没有明确规定

大家特别应该注意:
1.在java种字符型占2字节,因为在C语言种使用的是ASCII编码,java种使用的是unicode编码方式.
2.不论是在x64,x86环境下,int都占用4字节,long占用8字节.

三、变量

因为Java是一门安全性十分高的语言,在我们入门的时候,会犯各种各样的小错误,让我们一起来探究一下吧.

1.无初始化

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

在这里插入图片描述
在java当中,局部变量未进行初始化,系统会编译错误.

解决方案:
1.初始化
2.赋值

public static void main(String[] args) {
        int a;
        a=10;//1.赋值
        System.out.println(a);
        int b=10;//2.初始化
        System.out.println(b);
    }

在这里插入图片描述

2.赋值超出范围

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

在这里插入图片描述

在这里我们探讨一下整数的范围:因为java的数据是具有符号位的.

在这里插入图片描述

在这里我们使用Java的包装类进行计算:

在这里插入图片描述

在这里插入图片描述
我们可以看到在最上面的程序中赋值超过了Int的范围,所以编译的时候会报错.

3.long与float的使用

在java中默认整型为int型,浮点型默认为double

在这里插入图片描述

有以下规定:
1.在定义float类型时在数据后面加一个f
2.在定义long类型时在数据后面加一个L

public static void main(String[] args) {
        float a=3.5f;
        long b=10L;
    }

4.除法的使用

public static void main(String[] args) {
        int a=3;
        int b=2;
        System.out.println(a/b);
    }

这里会输出1.5吗?
在这里插入图片描述

在Java中,int值只能保存整数部分,不管小数多少,直接舍弃

解决方案:

  public static void main(String[] args) {
        int a=3;
        int b=2;
        System.out.println(a*1.0/b);
        double c=3.0;
        double d=2.0;
        System.out.println(c/d);
    }

在这里插入图片描述

5.浮点数的精度问题

public static void main(String[] args) {
        double ret=1.1;
        System.out.println(ret*ret);
    }

在这里插入图片描述

因为浮点数在内存中的存储问题,double类型的内存遵守IEEE 754标准,因为在存储时会有一定的精度误差,所以浮点数并不是一个准确值,而是一个近似值.

6.boolean类型变量的使用

public static void main(String[] args) {
        boolean b=true;
        System.out.println(b+1);
    }

在这里插入图片描述

在Java中不存在0表示假,1表示真的说法.
boolean类型的变量只有两种取值,true表示真,false表示假

7.类型提升

情况1:

public static void main(String[] args) {
        int a=2;
        long b=3L;
        int c=a+b;
    }

在这里插入图片描述

int与long进行计算时,会把int转换成long,所以存放给int时会报错.

情况2:

public static void main(String[] args) {
        short a=10;
        short b=20;
        short c=a+b;
    }

在这里插入图片描述

原因如下:a和b都是short,在运算过程中会把a,b都提升为Int在计算.
CPU通常是按照4个字节从内存中读写数据,为了实现方便,所以低于4字节的类型,会先提升为Int,在计算.

四、初始字符串

在java中引入了一种新的数据类型:字符串类型.

public static void main(String[] args) {
        String s1="woyao";
        String s2="jindachang";
        System.out.println(s1+s2);
    }

在这里插入图片描述

在这里插入图片描述

  • 77
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 70
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 70
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

熬夜磕代码丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值