Java中的基本数据类型语法补充
变量要先赋值后使用
- 不给变量赋值代表什么
- 不赋值就使用会怎样 (会报错)
计算并赋值运算符
- 作用是为了让代码更加简洁。比如 a = a + 10,可以简化为 a+=10
- +=
- -=
- *=
- /=
- %=
- &=
- ^=
- |=
- <<=
- >>=
- >>>=
public class CalcAndAssign {
public static void main(String[] args) {
int a = 16;
a >>= 2;
System.out.println(a); // 此时a为4
a*=9;
System.out.println(a); // 此时a为36
}
}
数据类型自动转换
- 自动类型转换
- 不会出现问题的类型转换,编程语言可以做自动类型转换,比如低精度的数字向高精度的数字转换。
- 自动类型转换可以发生在算数运算,也可以发生在赋值。
- 数值精度顺序:double > float > long > int > short > byte
- char 可以转换为 int
- char 可以转换为 int
- 虽然同样是两个 byte,但是因为 char 是无符号数,值域超出了 short 可以表示的范围,所以不可以自动转换为 short。
public class AutoConvert {
public static void main(String[] args) {
int intVal = 99;
long longVal = intVal;
long longVal2 = intVal + 1;
System.out.println(longVal2);
float floatVal = 11.32f;
double doubleVal = floatVal;
double doubleVal2 = doubleVal * 2;
System.out.println(doubleVal2);
int a = 99;
double b = 5;
System.out.println(a/b);
char ch = 'A';
int chNum = ch;
int chNumCalc = ch + 10;
System.out.println(ch);
System.out.println(chNum);
System.out.println(chNumCalc);
}
}
强制数据类型转换
- 可能出现问题的类型转换,需要使用强制类型转换,比如高精度向低精度数值转换。
- 强制类型转换也是操作符。
- 语法是用小括号括起来的目标类型放在被转换的值前面。
- 强制类型转换会造成数据丢失。
public class ForceConvert {
public static void main(String[] args) {
int intVal = 99;
long longVal = 19999;
intVal = (int)longVal;
float floatVal = 11.32f;
double doubleVal = 3344556.789;
floatVal = (float) doubleVal;
int A = 65;
char b = (char) A;
System.out.println(b);
}
}
public class ForceConvertValueLoss {
public static void main(String[] args) {
int intVal = 99;
long longVal = 5555555555555L;
intVal = (int) longVal;
System.out.println(intVal);
float floatVal = 11.32f;
double doubleVal = 1234567890.123456;
floatVal = (float) doubleVal;
System.out.println(floatVal);
System.out.println(doubleVal);
}
}
数值溢出
- 数值计算一旦溢出,结果将失去意义。比如两个正数会加出负数。(这是因为两个数相加超出了它们所属类型的范围,如果第一位刚好是1,那么就会被计算机认为是负数。)
- 要对能够处理的值有个大概的估计。
public class CalcValueLoss {
public static void main(String[] args) {
int intVal = 2000000000;
System.out.println(intVal + intVal);
}
}
从数值计算溢出理解程序员和编程语言责任的分界线
- 编程语言的作用
- 编程语言负责按照语法执行
- 编程语言负责和计算机交互
- 程序员的任务
- 程序员负责理解问题
- 程序员负责理解程序,并将问题转换为程序
- 编程语言不负责解决问题,程序员才是负责解决问题的
Java中的基本数据类型语法补充的更多相关文章
- Java中的变量数据类型补充
Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...
- Java中的原生数据类型
Java中的原生数据类型(Primitive DataType)共有8种: 1)整型: 使用int表示(32位).2)字节型: 使用byte表示(从-128到127之间的256个整数).3)短 ...
- JAVA中分为基本数据类型及引用数据类型
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
- 二、java中的基本数据类型
总结: 1.java中的基本数据类型有byte.short.int.long;float.double;char;boolean. 2.基本数据类型与1相对应分别占1.2.4.8;4.8;2;1.(单 ...
- java中的基本数据类型一定存储在栈中吗?
首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的. 下面让我们一起来分析一下原因: 基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型 ...
- java中的基本数据类型和引用数据类型
java中基本数据类型有8种:byte,short,int,long,char,float,double,boolean 整型有四种:byte short,int,long byte: 1字节 ...
- JAVA中分为基本数据类型和引用数据类型区别
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
- java中8种数据类型和默认值所占字节数
java 8种基本数据类型的默认值及所占字节数 通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge; 2 3 public class Ceshi { 4 int a; ...
- Java中的基本数据类型和引用类型
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
随机推荐
- imread函数+cvtColor()函数
加载图像(用cv::imread) imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 第二个参数,表示加载的图像是什么类型,支持常见的三个参数值 IMREAD_UNCH ...
- 「题解」「CF468D」树中的配对
目录 题目大意 思路 源代码 本博客除代码之外,来自 skylee 大佬. 题目大意 一棵\(n(n\le10^5)\)个编号为\(1\sim n\)的点的带边权的树,求一个排列\(p_{1\sim ...
- plsql 导出oracle数据库
plsql 导出数据库有两个问题,一个是只导出结构,一个是导出表结构加数据这样的,首先人家让我导成sql语句 这不是简单,首先打开PLSQL 一.导出结构 1.然后tools->Export U ...
- Spring - MVC - thymeleaf 缓存关闭
1. 概述 spring 配合 thymeleaf 关闭页面缓存 2. 背景 最近复习 spring 找了本书叫 spring in action 5th 本人水平有限 书还写得那么难 调试中遇到了问 ...
- ELK节点安装
ELK 安装参考链接 https://www.cnblogs.com/xialiaoliao0911/p/9599898.html setenforce 0sed -i s/enforcing/dis ...
- 编译原理--05 用C++手撕PL/0
前言 目录 01 文法和语言.词法分析复习 02 自顶向下.自底向上的LR分析复习 03 语法制导翻译和中间代码生成复习 04 符号表.运行时存储组织和代码优化复习 05 用C++手撕PL/0 在之前 ...
- [转]工作量证明(PoW)权益证明(PoS)和委任权益证明(DPoS)区别
原文链接 Both in the glossary and in some of our previous posts we've touched on mining and the two main ...
- 树莓派安装中文输入法Fcitx及Google拼音输入法
本来是想给树莓派安装搜狗输入法的, 搜狗输入法Linux版:https://pinyin.sogou.com/linux/?r=pinyin 但是一直安装不成功,后面发现原来是系统架构不同导致的,搜狗 ...
- Java将数据进行分组处理
将传人的数据进行分组,使用map保存每组的数据. /** * 将取出的数据进行分组 * @param list * @return */ public Map<Integer,Object> ...
- 网络辅助北斗/GPS位置服务平台业务量突破10亿次
导读 北斗卫星导航系统日渐成熟,相关服务也在逐步丰富.深入.为了推动北斗定位功能在手机中的普及,中国信息通信研究院2017年就发布了网络辅助北斗/GPS位置服务平台,支持95%以上商用芯片及终端的北斗 ...