Java 练习题摘录
2018-01-21 23:23:08
1、finally与return同时出现的情况
- finally中有return语句则会使try...catch中的return语句失效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public static void main(String[] args) { System.out.print(getNumber( 0 )); System.out.print(getNumber( 1 )); System.out.print(getNumber( 2 )); System.out.print(getNumber( 4 )); } public static int getNumber( int num) { try { int res = 2 / num; return res; } catch (Exception e) { return 0 ; } finally { if (num == 0 ) { return - 1 ; } if (num == 1 ) { return 1 ; } } } 输出为:- 1110 |
- finally中对try...catch中的return语句的修改是不会产生效果的
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String[] args) { System.out.print(getNumber( 2 )); } public static int getNumber( int num) { try { return num; } finally { num *= 2 ; } } 输出为: 2 |
2、初始化静态变量--执行静态代码块--执行main方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | static int i = 6 ; static { i += 9 ; } public static void main(String[] args) { System.out.print(i); } static { i /= 3 ; } 输出为: 5 |
3、char,byte,short的类型转换问题
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
char:
- char类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(即为0);
- 最大值是 \uffff(即为65,535);
- char 数据类型可以储存任何字符;
- 例子:char letter = 'A'。
byte,short和char会自动转换成int进行运算,这就会导致出错。
1 2 3 4 5 6 7 8 9 10 11 | byte a1 = 2 , a2 = 4 , a3; short s = 16 ; a2 = s; // 出错,因为s会默认转成int,所以需要强转 a3 = a1 * a2; // a1 * a2会默认转成int,所以需要强转 但是+=是不会产生类型转换问题的: short s; s = s + 1 ; // 出错,会转成int,需要强转成short short s; s += 1 ; // 正确 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现