java学习笔记-类型篇
来源:互联网 发布:mac chrome json 插件 编辑:程序博客网 时间:2024/06/13 06:40
java类型分类:
- 原始类型:由布尔型和数值型组成,数值型包括char,byte,int,float,double。
- 引用类型:包括class、interface、array.
- null类型。
原始类型数据类型转换:
- 数值类型由小变大时,不会发生转换的异常,但是在int转换为float或者double的时候,可能会发生精度上的损失,比如(int)123456789=(float)1.234567892*E8,原因可能是由于计算机无法完整表示整个实数系,会有一个最小的数值间隔,发生转换是由于间隔的不同,造成精度的变化。一般去精度损失小的数值作为转换后的值,如果2个float的值与int值的精度差相同,选择二进制最后一位为0的数作为转换后的值。
- 数值类型由大变小时,比如float转为int,如果float大于最大int可表示范围,则int值为最大值或者最小值(负数),如果小于int可表示的最小精度,则显示为0.(NAN转换为int需要实验验证...)。
引用类型数据转换:
Widening Reference,不会产生任何异常。
Narrowing Reference,一般指子类转换为父类,子接口转换为父接口,2个无关接口间的转换,接口转换为类,运行时会确认是否可以转换,如果不行会产生一个
ClassCastException
的异常。
Exception与ERROR:
- Exception指运行是产生的程序异常。
- ERROR指java虚拟机的内部错误。
如loading ,linking or initialization过程中发生的, catch (Exception e)无法捕获的错误。
JVM启动过程
- loading,将类导入到java虚拟机,只查看class文件格式是否符合规范。
- linking分为Verification,负责验证类是否有语法错误;Preparation,复制给变量赋默认值,即如果定义private int a = 10,在这个阶段赋值为0,同时生成比如method table等一些类所要用到的静态结构。
- resolution根据实现的不同,导入一些参照的引用(static resolution),有些实现可能在具体用到时才导入(lazy or late resolution)
类的初始化
- 处于同步的需要先对类加锁。
- 如果已经加锁,则等待。
- 如果在初始化过程中,可能是递归调用,如果已完成解锁,否则继续执行。
- 如果已完成,解锁,如果有错,抛出异常。
类销毁
- 所有类的父类是Object,有finalize函数,如果没有特别需要,无需重载,对于jvm无法销毁的对象可以在这里添加销毁代码(将变量赋值为null)。
- A class or interface may be unloaded if and only if its class loader is unreachable. The bootstrap class loader is always reachable; as a result, system classes may never be unloaded.
退出虚拟机
当只有daemon线程时,就退出。daemon是通过setDaemon
方法设定,由程序员自己设定,无特别含义(个人觉得)
- java学习笔记-类型篇
- Java基本类型学习笔记
- Java基本类型学习笔记
- java学习笔记-----类型信息
- java学习笔记之---java基本类型
- JAVA基础类型范围 ---学习笔记
- java学习笔记---协变返回类型
- Java enum 枚举类型学习笔记
- Java学习笔记之变量类型
- Java学习笔记之引用类型
- Java学习笔记(01)--基本类型
- Java学习笔记之标识符、字符类型
- Thinking in java学习笔记-类型信息
- JAVA学习笔记(强制类型转换)
- 《JAVA编程思想》学习笔记-基本类型
- Java常用类型的包装类【Java学习笔记】
- float类型学习笔记
- Java编程思想学习笔记——类型信息
- e Five Essential Phone-Screen Questions
- 重载和覆写
- Android开发规范
- ubuntu 8.04 + Eclipse 下安装测试 libcurl 全过程
- 委托
- java学习笔记-类型篇
- 容错机制
- java网络编程二:服务器处理多个用户请求的解决方案(返回多个用户输入的信息)
- C语言实现Linux下的ls命令。
- Fatal error: Call to undefined function get_magic_quotes_gpc() 解决方案
- 实现了当移近按钮的时候,按钮显现外发光的特效,用WPF实现比较容易。
- [转贴]虚拟化时记忆体管理:AMD NPT/Intel EPT简介--转自沈洁转自某港澳台同胞
- Winform menu 获取下拉菜单
- 索引器