java中变量赋值的理解
1.当赋值的值超出声明变量的范围时候,会报错!
byte a =200 //会报错,因超出范围。
byte a =(byte)200;//进行一个强制转换,就不会报错,不过会超出范围,超出部分会从头开始加,
由于byte的范围为-128~127,所以是-128+73为所得结果。
2.声明一个整数类型时候,默认都是int类型(4个8位);如果具体的数值比声明变量的取值范围小,则不报错。
例:short a =222;
3.long l = 88888888888l 很明显,这一长串数字是好超过int的取值范围的,所以会报错,但是因为不超过long的取值范围,
所以我们可以声明一个long变量来装它, 不过需要在后边加“l”(不区分大小写)。
4.声明一个float变量,如 float f = 12.555;因为声明一个小数默认的类型是double类型(8个八位), 所以;由高精度转换为低精度的float(4个8位)型时,会丢失精度报错,在后边加”f“就将其转换成float类型,就不会报错了。
5.char 用来声明一个字符,char c = 'e'; System.out.println(c);输出的是这个字符,不过进行运算时候
使用变量的ascll编码的位置。
char c2 = '\n';表示换行; 进行运算时候运算的也是其位置!
6.类型转换优先级:double float long int char short byte
7.short s = 133;
char c = 'a';
short s1 = s+c; 输出结果会报错,因为两个数相加,默认为int类型,用short来装它,会报损失精度的错误,
此时需要加上一个强制转换:short s1 = (short)(s+c);
8.隐式转换:由低精度自动转换为高精度;例:long l = 5834;默认数值类型都为int类型,但是,你既然
用long来声明,你的精度比我还高,那我就不说什么了,默默地转过去吧。
9.显示转换:也叫强制转换,一般由高精度转向低精度。比如short s1 = (short)(s+c);我本来比你精度高,我是
int,你却用低精度的short来装我,我肯定不同意(报错),说以,得强制转换,不同意也得同意。
10.+= 的赋值原理:byte b = 4;char c = 0.4;b += c;由于char优先级比byte要高,所以b = b+c,
是要报错的,不过b += c,却不报错,因为它先把c的值赋给b,赋值之后,b就成char
类型了,然后再加上b的值,char的优先级要高,所以不会报错。
java中变量赋值的理解的更多相关文章
- java中变量命名和引用变量的一个坑
这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点.
- java中线程同步的理解(非常通俗易懂)
转载至:https://blog.csdn.net/u012179540/article/details/40685207 Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运 ...
- java中的赋值
java中的赋值使用符号“=”. 按照java编程思想的解释:它的意思是“取等号右边的值,把它复制给左边”. 当然左边必须是一个明确的,已命名的变量. 基本类型: int a=2; int b=3; ...
- Java中线程同步的理解 - 其实应该叫做Java线程排队
Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...
- 对Java中字符串的进一步理解
字符串在程序开发中无处不在,也是用户交互所涉及到最频繁的数据类型,那么字符串不仅仅就是我们简单的理解的String str = "abc";一起来更加深入的看一下 在Java中,字 ...
- Java中对Clone的理解
面试中经常遇到Clone的相关知识,今天总算是把Clone理解的比较透彻了!Java中Clone的概念大家应该都很熟悉了,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Cl ...
- 微冷的雨之Java中的多线程初理解(一)
在讲解多线程前,我们必须理解什么是多线程?而且很多人都会将进程和线程做对比. 进程和线程 进程:进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在 ...
- 慕课网-安卓工程师初养成-2-7 Java中变量的使用规则
来源:http://www.imooc.com/code/1242 不得不接受的变量小脾气: 1.Java 中的变量需要先声明后使用 2.变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值 ...
- Java中的ThreadLocal深入理解
提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和 ...
随机推荐
- 关于jQuery表单选择中prop和attr的区别。
今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的 ...
- Comparing the contribution of NBA draft picks(转)
When it comes to the NBA draft, experts tend to argue about a number of things: at which position wi ...
- iphone手机中对于html和css的一些特殊处理
1.iphone safari iso系统不兼容:hover的解决办法: 方法一: a:hover设置的样式在IOS系统的浏览器内显示不出来,看来是IOS系统的移动设备中,需要在按钮元素或者是body ...
- Jmeter Boss系统login
之前说,想学习并且掌握自动化测试,但是,折腾过来折腾过去,逐渐意识到了,app自动化测试分为UI层面还有接口测试.(其实,功能测试就是UI+接口测试的集合,当然,只是我自己这么认为,hhhhhhh) ...
- python 第五弹
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...
- MySQL1-基础知识点
目录 零.MySQL安装与配置 一.基本概念 二.基本语法 三.常用指令 四.四种SQL语句 零.MySQL安装与配置 http://www.cnblogs.com/hikarusun/a ...
- JVM-7.Java内存模型与高效并发
更多内容参见<并发与同步>系列 一.引子 二.JMM 三.Java中的线程 四.线程安全 五.锁优化 一.引子 运算能力 摩尔定律:晶体管数量,代表的CPU的频率 Amdahl ...
- index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined
使用 webpack 编译 Vue 项目时出现报错: index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined ...
- HTML5之2D物理引擎 Box2D for javascript Games 系列 第三部分之创建图腾破坏者的关卡
创建图腾破坏者的关卡 现在你有能力创建你的第一个游戏原型,我们将从创建图腾破坏者的级别开始. 为了展示我们所做事情的真实性,我们将流行的Flash游戏图腾破坏者的一关作为 我们模仿的对象.请看下面的截 ...
- AngularJS高级程序设计读书笔记 -- 服务篇
服务是提供在整个应用程序中所使用的任何功能的单例对象. 单例 : 只用一个对象实例会被 AngularJS 创建出来, 并被程序需要服务的各个不同部分所共享. 1. 内置服务 一些关键方法也被 Ang ...