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 ...
随机推荐
- 【持续更新】Java 时间相关
直接上代码: import java.util.*; import java.text.SimpleDateFormat; public class HelloWorld { public stati ...
- 复选框 省市区 联动(监听input的change事件)
需求:省市区三级包含复选框按钮以及文字描述.点击文字显示对应的下级地区,点击复选框选择对应的下级区域勾选. 分析:监听input的change事件当点击复选框省 选择对应的第一个市区,同时默认选中第 ...
- 小目标 | Power BI新人快速上手手册
· 适用人群:数据分析专业人士,在数据分析方向需求发展人士 · 应用场景:数据汇报.数据可视化展现.数据建模分析 · 掌握难度:★★★★☆ 本期讲师 『PowerPivot工坊』公众号提供Power ...
- HTML 中的特殊字符
空格符 <小于号 < >大于号 > &和好 & ¥人民币 ¥ © 版权 © ® 注册商标 ® ℃ 摄氏度 ° ...
- vue2.X版本vue-cli生成项目后运行失败,报错信息为getaddrinfo ENOTFOUND localhost
问题: 1.使用vue-cli生成项目 2.npm install 3.npm run dev,报错信息如下 解决方法: 经查,发现package.json中dev的脚本变成了"webpac ...
- Vijos P1243 生产产品 (单调队列优化DP)
题意: 必须严格按顺序执行M个步骤来生产一个产品,每一个步骤都可以在N台机器中的任何一台完成.机器i完成第j个步骤的时间为T[i][j].把半成品从一台机器上搬到另一台机器上也需要一定的时间K.每台机 ...
- Python——print用法详解
1.print语法格式 print()函数具有丰富的功能,详细语法格式如下:print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=Fa ...
- 类扩展Extension
延展(Extension):在本类里声明私有方法. 1:延展定义的方法是在implemetation中. 2:声明的方法是私有方法. 3:延展中声明的方法可以不实现. #import "Ho ...
- 关于UINavigationController的一些技巧
未自定义任何东西的导航条效果如下: 1.自定义了 leftBarButtonItem 之后,左滑返回手势失效了,解决办法: self.navigationController.interactiveP ...
- Title Case a Sentence-freecodecamp算法题目
Title Case a Sentence(中单词首字母大写) 要求 确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. 思路 将句子小写化后用.split(& ...