java基础语法中容易出错的细节
1 java中的数字默认类型为int
**容易出现类型转换错误
long 定义的数字后面必须有 “l” “L”
float 定义的数字后面必须有 “f” “F”
java中比int表述范围大的数,不会自动转出其他类型。所有必须要指定。
如果数字比int表述范围小,会在赋值的时候自动转换。
2 boolean值不能为null
也不能用0或非0赋值boolean定义的变量,这和c语言不太一样。
3 类型转换
long型占8个字节,而float占4个字节,而long自动转float是可以的。大类型转小类型的特例。
byte转char是从小到大,但是要强制转换。
4 “+”号的重载
“+”号遇到字符串会重载为连接符。如 “5+5=”+5+5 -------> 5+5=55
5+5+"=5+5" -------> 10=5+5
'a'+5+5 ----------> 107 char实际上还是int,所以不存在运算符重载。
5 模运算的符号问题
模运算的符号只取决于被模数的符号。和模数的符号没有关系。
6 位运算中需要注意的点
byte b= 127;
byte b2= (byte)(b+1);-------->结果为-128。如果直接把128赋值给b2,就会报错!
需要注意的是。位运算之后,结果为int值。强转之后可能会造成截断错误。
例如: byte b1 =-9;
byte b2 = (byte) (b1>>>3);
System.out.println(b2);
(b1>>>3)-->结果是int,所移的也是int ,强转之后,把移位所补的0截取丢掉了。剩下的值为-2.
总结:
符号位扩展和移位操作总是发生在32位,计算机会默认将小值自动转换成int,所以对第7位为0的byte值进行无符号操作是没有意义的,在实际运算时,是对扩展后的32位int进行操作的。
7 +=的特点
保持类型不变。如上面的代码 byte b2= (int)(b+1) 等号右边加1后会转为int型。而如果使用+=就跳过了数值运算结束默认转int的机制。
8 i++ 与 (i++)是一样的。
不要被括号迷惑!!!
9 三元运算符
1.?后面的语句必须有返回值。
2.?后面两个语句返回值类型必须相同。如果不同,那么会无法判断三元运算符的返回值!
java基础语法中容易出错的细节的更多相关文章
- 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发
简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
- 011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三—— 变量值——即Java中的“字面值”
011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三-- 变量值--即Java中的"字面值" 变量值可以是 ...
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字
008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...
- Java基础语法(上篇)
Java基础语法(上篇) 知识概要: (1)关键字的表示与规范 (2)标示符 (3)注释 (4 ...
- java基础语法(一)
java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...
- Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法 一. 认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...
- JAVA基础语法——标识符、修饰符、关键字(个人整理总结)
JAVA基础语法——标识符.修饰符.关键字 一 . 标识符 1.1 什么是标识符 就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Dem ...
随机推荐
- CF1142A The Beatles
思路: 令p表示步数,l表示步长.由于p是使(l * p) % (n * k) == 0的最小的p,所以p = (n * k) / gcd(n * k, l). 设l = k * x + r,则由题意 ...
- Google Chrome 浏览器的备用(离线)安装程序
Google Chrome 浏览器的备用(离线)安装程序(适用于 Windows) 如果您在使用 http://www.google.com/chrome 上的标准安装程序下载 Chrome 浏览器时 ...
- HDU 4055 Number String(DP计数)
题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ...
- windows 密钥
server 2016数据中心CB7KF-BWN84-R7R2Y-793K2-8XDDG
- java面试题(杨晓峰)---第二讲Exception和Error有什么区别?
本人总结: Exception和Error:正常问题和意外问题,以自行车举例:没气和爆胎. ①理解Throwable,Exception,Error的设计和分类. ②掌握哪些应用最广泛的子类, ③如何 ...
- .net 实现的上传下载,如果是图片就显示上传的图片
HTML: <div> <input id="fileUpload" type="file" runat="server" ...
- tcp、http和socket的区别
本文原链接:https://www.jianshu.com/p/88d69454bdde tcp.http和socket的区别 一:tcp协议 tcp协议属于传输层协议(UDP也属于传输层协议,但是U ...
- python plt 保存jpg出错
pip install pillow就可以解决
- SpringBoot(一)_Eclipse的安装和使用
1.Eclipse中安装STS插件: Help -> Eclipse Marketplace… Search或选择“Popular”标签,选择Spring Tool Suite (STS) fo ...
- 使用三层交换配置DHCP为不同VLAN分配IP地址
三层交换的原理以及DHCP的原理,作者在这里就不详细的解释了,在这里通过一个案例来了解使用三层交换做DHCP服务器,并为不同网段分配IP地址.在生产环境中,使用路由器或交换机做DHCP服务器要常见一些 ...