自动类型转换

java程序在进行运算和赋值时,精度小的类型自动转化为精度大的类型,这个就是自动类型转化

数据类型按照精度大小排序

char-int-long-float-double

byte-short-int-long-float-double

注意事项:

  • 有多种数据类型混合运算时,系统会先将所有类型转化为容量最大的类型,然后在进行计算;
  • 当把精度大的赋值给精度小的数据类型时,系统会报错,反之就进行自动转化;
  • byte/short和char不会进行转化;当对byte进行赋值时,先判断范围是否合理
  • byte/short/char三者可以进行计算,会先转化为int类型,相同类型也会直接转化为int
  • boolean类型不参与转化
  • 自动提升原则,表达式结果自动转化为类型最大的数据类型

基本数据类型的强制转换

将大的数据类型转化为小的数据类型,可能造成数据精度降低和溢出,强制类型转化() int n1 = (int) 100.2

当数据从大到小进行转换时,就需要强制转换

强转符号只针对最近的操作数有效,往往使用小括号提升优先级.int n3 = (int)(10*1.5+1.1);

char类型可以保存int的常量值,不能保存int的变量值

byte和short在进行运算时,当作int类型处理

基本数据类型和String的转化 

基本数据类型转化为String   -->+""

String类型转化为基本数据类型:通过基本类型的包装类调用parseXX方法即可

int n10 = Integer.parseInt(s1);
byte b10 = Byte.parseByte(s1);
short s10 = Short.parseShort(s1);
long l10 = Long.parseLong(s1);
double d12 = Double.parseDouble(s1);
float f12 = Float.parseFloat(s1);

如何把字符串转化为字符,取字符串的第一个字符

System.out.println(s1.charAt(0));

再把String类型转化为基本数据类型时,要确保String类型能够专成有效的数据,比如我们可以吧“123”转化为一个整数,但是不能把"Hello"转化为一个整数

如果格式不正确,就会跑出异常,程序就会终止。

  

java学习日记20230303-基本数据类型转换的更多相关文章

  1. java学习笔记——数据类型及类型转换

    数据类型分为: 1.引用类型(字符型); 2.基本数据类型(数值型); 以下为基本数据类型介绍(括号内的数字表示该类型所占据的字节数) a.整型 byte(8)   short(16)   int(3 ...

  2. Java学习日记-2 零零碎碎

    一.使用Scanner类进行控制台的输入 文档中Scanner类的定义为A simple text scanner which can parse primitive types and string ...

  3. Java学习日记基础(五)——类、对象之this、静态变量(类变量)、静态方法(类方法)、四大特征

    this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ ...

  4. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  5. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

  6. Java学习日记9-异常

    异常(Exception) 一.什么是异常? 异常就是程序中的错误,比如数组越界.访问空指针等.在Java中,一切皆对象,异常也不例外.所有的异常都是派生于Throwable类的一个实例对象. 二.异 ...

  7. Java学习日记基础篇(九) —— 集合框架,泛型,异常

    集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...

  8. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  9. Java学习 (六)基础篇 类型转换

    类型转换 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换 字节大小(容量)-> 低--------------------------------------------- ...

  10. [转]Java学习日记之 volatile

    用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...

随机推荐

  1. 火山引擎DataLeap数据调度实例的 DAG 优化方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成.开发.运维.治理.资产管理能力 ...

  2. flask_apscheduler

    网上很多文章包括官网给出来的,更多的是执行的函数和初始话app在同一文件 按照app 路由 模型类 视图 往下延申,项目已经成型,所以上述的方法不适用. (不用操心模型类与app互相导入的错误)下面分 ...

  3. SPOJ GCDMAT - GCD OF MATRIX

    简要题意 给出三个整数 \(T,n,m\),\(T\) 组询问,每组询问给出四个整数 \(i_1,j_1,i_2,j_2\)(数据保证 \(i_1,j_1\leq n\ \ i_2,j_2\leq m ...

  4. ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析

    目录 建表语法 数据处理 汇总的通用规则 AggregateFunction 列中的汇总 嵌套结构数据的处理 资料分享 参考文章 SummingMergeTree引擎继承自MergeTree.区别在于 ...

  5. 结构型模式 - 享元模式Flyweight

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 更像是单例模式 + 简单工厂模式 享元模式的定义与特点 享元(Fiyweight)模式的定义:运用共享技术来有效的支持大量细粒度 ...

  6. 创建型模式 - 单例模式Singleton

    单例模式的定义与特点 创建型模式:         单例模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式. 例如,Windows中只能打开一个任务管理器,这样可以避免因打开多个任务 ...

  7. 12月1日内容总结——表单标签知识补充、css介绍、css选择器和选择器的优先级、css样式调解

    目录 一.表单标签的补充说明 1.用于获取用户数据的标签至少应该含有name属性 2.如果不需要用户填写数据 只需要选择 那么我们需要自己填写value 3.针对input标签理论上应该配一个labe ...

  8. 浅谈Pytest中的marker

    浅谈Pytest中的marker 没有注册marker 我们写一个简单的测试 # test_demo.py import pytest @pytest.mark.login def test_demo ...

  9. 重学SpringBoot. step1 全注解的SpringBoot

    参考:<深入浅出SpringBoot 2.x> 全注解的SpringBoot 用户可以通过注解将所需要的对象,存放到IOC容器中,然后SpringBoot可以根据这些需要使用的情况,自动注 ...

  10. element ui el-date-picker 禁止选择指定日期

    1.日期选择器组件代码 <el-col :span="20"> <el-form-item label="活动起始日期值" prop=&quo ...