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

在这里插入图片描述

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

一、标识符

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

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

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

二、数据类型

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

在这里插入图片描述

java中有8种基本数据类型

如下(示例):

数据类型 关键字 字节大小
字节型 byte 1
短整型 short 2
整型 int 4
长整形 long 8
单精度浮点数 float 4
双精度浮点数 double 8
字符型 char 2
布尔型 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);
    }

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/buhuisuanfa/article/details/125988844