Java基础知识
来源:互联网 发布:淘宝店铺橱窗位在哪 编辑:程序博客网 时间:2024/06/16 16:21
Java基础知识
目录
1. 数据类型
1.1 基本类型
1.2 引用类型
1. 数据类型
Java中的数据类型分为基本类型和引用类型,基本类型直接包含值,而引用类型引用对象。他们之间的详细关系如图:
1.1 基本类型
基本类型有8种,其中有4种整型、2种浮点类型、1种字符类型、1种boolean类型。
1.2 字面值
字面值用于表示固定的值(fixedvalue)。数值型的字面值是最常见的,字符串字面值可以算是一种,当然也可以把特殊的null当做字面值。字面值大体上可以分为整型字面值、浮点字面值、字符和字符串字面值、特殊字面值。
整型字面值分为int字面值和long字面值。一般情况下,字面值创建的是int字面值。如果试图将超出范围的字面值赋给某一类型(比如把128赋给byte类型),编译不通过。
浮点字面值分为float字面值和double字面值,如果在小数后面加上F或者f,则表示这是个float字面值,如11.8F。如果小数后面不加F/f,如10.4,或者小数后面加上D/d,则表示这是个double字面值。另外,浮点字面值支持科学计数法表示。
字符字面值用单引号括起来,字符串字面值用双引号括起来。可以使用转义字符输入UTF-16中的字符。
null是一种特殊的字面值,可以将它赋给任何引用类型变量,以表示该引用类型变量不可用。
还有一种特殊的字面值,class literal,用type name 加.class表示,它用来表示类本身,如List.class的输出为interface java.util.List。
自JDK1.7开始,可以在整型字面值和浮点字面值插入一个或多个下划线,用以分割数字,下划线只能用于数字与数字之间,这些下划线在编译成class文件时会被自动消除。
1.3 基本类型转换
首先将7种类型按下面顺序排列一下:
- byte <(short=char)< int < long < float < double
如果从小转换到大,可以自动完成,而从大到小,必须强制转换。short和char两种相同类型也必须强制转换。
1.3.1 自动转换
- int–> float
- long–> float
- long–> double
- float –>double without strictfp
除了以上情况会发生精度损失外,自动转换不会出现任何运行时(run-time)异常。
1.3.2 强制类型转换
如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换,因为必须显式地使数值更小以适应目标类型。
强制转换采用转换操作符()。
强制转换除了可能的精度损失外,还可能使模发生变化。
将浮点类型转换为整数类型时会发生截尾,将小数部分去掉,此时如果整数超出目标类型范围,一样将对目标类型的范围取余数。
1.3.3 赋值中的类型转换
在使用字面值对整数赋值的过程中,可以将int字面值赋值给byte short char int,只要不超出范围。这个过程中的类型转换时自动完成的,但是如果你试图将long 字面值赋给byte,即使没有超出范围,也必须进行强制类型转换。例如 byte b = 10L;是错的,要进行强制转换。
1.3.4 表达式中的类型转换
在表达式中,类型提升规则如下:
- 所有byte/short/char都被提升为int。
- 如果有一个操作数为long,整个表达式提升为long。float和double情况也一样。
1.2 引用类型
引用类型指向一个对象,引用类型包括类类型 接口类型 数组类型,以及一个null。引用类型变量的值是其所指向的对象的地址
引用类型变量通过new进行初始化。
1.3 运算符
1.3.1 算术运算符
1.3.2 关系运算符
1.3.3 位运算符
1.3.4 逻辑运算符
1.3.5 赋值运算符
1.3.6 条件运算符
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
- variable x = (expression) ? value if true : value if false
1.3.7 instanceOf 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
- ( Object reference variable ) instanceOf (class/interface type)
instanceOf运算符规则如下:
- 如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
- 如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
1.3.8 运算符优先级
下面将运算符优先级按从高到低进行排序
- Java基础知识
- java基础知识
- java基础知识
- JAVA基础知识
- Java基础知识
- java基础知识
- java基础知识
- java基础知识
- java基础知识
- java基础知识
- java基础知识
- java基础知识
- JAVA基础知识
- Java 基础知识
- JAVA基础知识
- Java基础知识
- Java基础知识
- Java基础知识
- sed 常用命令
- jquery中(function($){...})(jQuery)
- 推荐系统(一) —— 好的推荐系统
- 过滤驱动程序总结
- android stdio 1
- Java基础知识
- solr入门之请求调度模块的简单书写
- jsp的EL表达式
- 剑指offer 重建二叉树
- appium-android项目执行报错
- bzoj 3232: 圈地游戏 01分数规划
- mfc结合opencv显示图片
- bzoj 4401: 块的计数 水题
- MySQL乱码问题转载