java基础

Java设计基本数据类型以满足不同大小存储需求,优化性能。整型、浮点型、字符型和布尔型各有其适用场景。基本类型存储在栈中,对象在堆中,栈操作更快。包装类用于基本类型面向对象操作。异常处理是Java程序健壮性的关键,涉及try-catch-finally等关键字。在项目中注意数据类型溢出和选择合适的数据类型以避免性能损失。
摘要由CSDN通过智能技术生成

基本概念
Java为什么要设计基本数据类型?
为什么要设计成这样?
因为程序对存储特定数据有需求,这个变量就是申请内存的要求,必须要知道申请内存的大小。规划内存大小,申请相应的空间的大小。 Java的数据类型是两大类:数据类型和引用类型。
数据类型分为整型、浮点型、字符型和布尔型。
引用类型分为类,接口和数组。
其中整型又有四类,依次按照大小从小到大划分为,字节型(byte),短整型(short),整型(int)和长整型(long)。
浮点型分为两类,单精度(float)和双精度(double)。
且所有基本类型都有一个相对应的包装类,包装类定义了内存大小。
深度扩展基本数据类型放在栈中,对象放在堆中。堆的读写速度远不及栈,如果使用基本数据类型相当于在栈上进行操作,对变量的创建和销毁速度非常快。相反,如果用类进行定义变量,需要在堆中进行操作,创建和销毁速度都比较慢。出于性能方面,为了提高性能。但有些地方必须用到对象,Java针对每种基本数据类型提供了包装类,即Boolean、Byte等。这样就解决了基本数据类型面向对象用的问题。 在Java中,整数会被默认为int,小数默认为double,在有运算式参与的情况下也会分别默认为int或者double。举例,short和short相加默认转换为int(小转大),long+long则是long,这个我们通过JVM反编译看到其指令集发现。 jvm定义包装数据类型中有一个常用数据范围-128到127(常量),这是jdk设计者结合用户使用习惯,做出的节约内存的行为。可以通过查看包装类,发现除byte外都有一个判断,在范围内它视为基本数据类型,如果超过了则会new一个对象(valueOf来进行判断以决定是否返回一个地址或返回一个基本类型的值。)。
char类型只能存储一个字符,且当其存储数字字符时,会将其自动装换成相对应十进制。 三,项目运用数据类型是有大小的,如果存储数据超过其大小,则会溢出。例如byte的范围是-128~127,存储一个129,会溢出变成-127。所以在做循环判断时要注意,不要陷入死循环。包装类与基本类型进行比较时,会自动拆箱为基本类型。尽量不要用byte,short,特别是有多的数据运算时,避免类型装换。实际项目中会避免使用浮点型,而使用bigdecimal
四,常见异常数据类型溢出异常解释一下异常:异常是Java保障程序健壮性的机制。Throwable是所有异常的超类,其子类有Exception,Error,需要我们处理的则是Exception,error通常不是我们程序需要处理的,error通常是运行时环境改变发生的错误,JAVA给我们解决异常提供了五个关键字,try,catch,finally,throw、throws,try:将可能发生异常的代码块包裹起来,在程序发生异常时,JVM会给我们创建一个异常的实例,这个实例保存了异常所在方法名,类名,行号等,然后将控制的所有权交给Catch,Catch为我们捕获异常并实现解决方案,比如我们可以将异常信息输出至控制台,log文件,HTML文件,或者数据库中保存,finally,finally是无论程序是否存在异常,都会执行该关键字包裹的内容(程序退出除外),throw是在方法内部抛出一个异常,throws是在方法声明处抛出一个或多个异常,这是异常处理的流程,一般异常的处理要遵循几个原则,异常在发生的方法中需要不断的向上面抛出,直到客户端,在客户端进行显示,如果是编译时异常,我们需要将其转换为运行时异常,再将其捕获,抛至客户端进行处理和显示,在项目运用的过程中也有特殊的情况,比如在静态代码块中,它只能捕获不能抛出,在JDK1.8的特性中允许逻辑或同时判断多个异常并处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值