整形数据

保存的范围由小到大:byte、short、int、long

在java中任何的一个整型常量 那么其默认的类型都是int型(只要是整数就是int类型的数据)。

public class ex1 {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(max);
System.out.println(min);
//int类型 - int类型 = int类型
System.out.println(max + 1);
System.out.println(max + 2);
//int类型 - int类型 = int类型
System.out.println(min - 1);
} } >>> 2147483647 //01111111 11111111 11111111 11111111
>>>-2147483648 //10000000 00000000 00000000 00000000
>>>-2147483648 //10000000 00000000 00000000 00000000
>>>-2147483647 //10000000 00000000 00000000 00000001
>>> 2147483647 //01111111 11111111 11111111 11111111

由此得出结论

  • int的范围是 -2147483648 ~ 2147483647
  • 在进行运算中如果出现超过了其最大的保存范围,那么将出现 循环的问题 这个问题在java中 叫做数据溢出

    解决办法

    1)定义更大的数据类型 long型

    2)直接在常量上进行处理 默认的整数类型都是int型 那么可以为它追加字母L 或者直接使用(long) 转换

在这里记一点 我有点混淆的东西

11111111 11111111 11111111 11111111 这个是负数最大的数 -1 因为11111111 11111111 11111111 11111111 加1后 会溢出 得到0

10000000 00000000 00000000 00000000 这个是负数最小的数 -2147483648 原因同理

int类型 - long类型 = long类型

int类型 + long类型 = long类型 (大桶套小桶)

范围小的数据类型 可以自动转为范围大的数据类型

范围大的数据类型 要转为范围小的数据类型 那么就必须采用强制类型转化 同时要考虑数据溢出

程序支持有数据转换处理,但是如果不是必须的情况不建议这种转换。

在进行整数处理的时候,还有一个byte类型特别需要注意,这个类范围是-128~127

public class ex2 {
public static void main(String[] args) {
byte num = 20;
System.out.println(num);
}
}

不觉得有点别扭吗?

正常来讲在Java程序里面20这个数字应该是int类型 但是在为num(byte类型)赋值时并没有因为是int类型 而发生强制类型转换

是因为java对byte做了特殊处理 即:如果没有超过byte范围的常量可以自动由int 变为byte。

需要注意的是:这个处理只针对常量 对变量就不行

public class ex2 {
public static void main(String[] args) {
int x = 20;
byte num = (byte)x; //不强制类型转化 报编译错误
System.out.println(num * num );
}
}

结论 对于常量可以自动适配转换 对于变量则还是必须使用强制转换处理

Java基础 -2.2的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  3. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  4. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  5. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

  6. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  7. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  8. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  9. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  10. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

随机推荐

  1. 关于为什么使用React新特性Hook的一些实践与浅见

    前言 关于Hook的定义官方文档是这么说的: Hook 是 React 16.8 的新增特性.它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性. 简单来说,就是在 ...

  2. Unity生成的WebGL如何在浏览器中运行

    前言:以为在学完了COMP30019后,应该不会再接触Unity了,没想到之后实习让我去做把一个Unity项目转到WebGL,而关于Unity的WebGL资料很少,基本除了Unity的Manual就只 ...

  3. 6_12 油田(UVa572)<图的连通块DFS>

    有一家石油公司负责探勘某块地底下的石油含量,这块地是矩行的,并且为了探勘的方便被切割为许多小块.然后使用仪器对每个小块去探勘.含有石油的小块称为一个pocket.假如两个pocket相连,则这两个po ...

  4. Yii2框架 常用函数整合

    1.使用事务添加数据: public function create() { if($this->validate()) { $trans = Yii::$app->db->begi ...

  5. 「CSP-S模拟赛」2019第一场

    目录 T1 小奇取石子 题目 考场思路 正解 T2 「CCO 2017」专业网络 题目 考场思路 题解 T3 「ZJOI2017」线段树 题目 考场思路 正解 这场考试感觉很奇怪. \(T1.T2\) ...

  6. 吴裕雄 PYTHON 神经网络——TENSORFLOW 单隐藏层自编码器设计处理MNIST手写数字数据集并使用TensorBord描绘神经网络数据

    import os import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensorflow ...

  7. 分布式事务 --- CAP 理论

    本文部分来自参考资料!!半原创 概述 介绍CAP理论,并简单地证明了三存二的定论. CAP 理论 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标.分别为 : C ...

  8. Centos610安装Jdk1.8

    1.下载JDK 下载:  https://pan.baidu.com/s/15TYsE_wfSb48pS4SpUQKHA 提取码:fsx6 2.上传安装包 上传到linux 并拷贝到/opt/jdk目 ...

  9. 安卓开发:Password verification failed

    2019年8月5日更新: 我把Android Studio升级到3.4.2版本后,发现下图中的按钮已经不见了,所以本文中之前的创建签名文件的方法已经不行了- ...3.4.2版本是这样的---> ...

  10. jvm 内存,线程,gc分析

    1.查看 gc的次数,和各个垃圾回收区域的内存比例  jstat : jstat -gcutil pid interval(ms) 例子:jstat -gcutil 332 1000 参数说明如下: ...