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

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

一、标识符

在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);
    }

在这里插入图片描述

在这里插入图片描述

目录
相关文章
|
1月前
|
存储 缓存 安全
除了变量,final还能修饰哪些Java元素
在Java中,final关键字不仅可以修饰变量,还可以用于修饰类、方法和参数。修饰类时,该类不能被继承;修饰方法时,方法不能被重写;修饰参数时,参数在方法体内不能被修改。
31 2
|
8天前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
1月前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
1月前
|
Java
Java基础之数据类型
Java基础之数据类型
20 6
|
1月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
60 7
|
1月前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
55 4
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
73 4
|
1月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
42 1
|
1月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
61 4