变量分类和基本数据类型、选择结构switch
文章目录
面试题
Java语言特性(面试题)
简单性:Java舍弃了C++中难以掌握并不安全的功能
- 如:指针、多继承等 Java语言底层是C++实现的
面向对象:Java和C++一样,是一种面向对象编程语言
安全性:如:运行时堆栈溢出,强制类型检查
健壮性:Java语言在运行过程中产生的垃圾会自动回收,简称GC机制
可移植性:Java程序编译一次,不做任何修改时到处运行,也就是跨平台
在不同操作系统上安装不同JVM ……
一、变量的分类
1.按声明位置(作用范围)分为
- 局部变量:在方法中声明的变量;在当前声明距离最近大括号内使用
- 成员变量:在方法外面声明的变量 或者在类中声明的变量;在当前类中可以直接使用
2.按数据类型分为
- 基本数据类型变量:在内存中存放的是真正的值,比如:int、double、char………
- 引用数据类型变量:在内存中存放的是地址(引用),比如:String……
二、基本数据类型
计算机基础知识(了解)
- 在日常生活中,使用的是十进制,取值范围:0—9
- 在计算机中,使用的是二进制,取值范围:0和1
- 计算机中存储单位
- 8bit ------------------------- >1byte
- 1024byte ------------------ >1KB
- 1024KB --------------------- >1MB
- 1024MB -------------------- >1GB
- 1024GB --------------------- >1TB
- 10月24日是什么节日?
- 程序猿,俗称码农
基本数据类型又分为4大类,共计8种.
1. 整数类型
- 整数类型又分为:byte、short、int、long
- 整数类型的值默认都是int类型
- 0 188 -297 9999999
- 整数类型各自的取值范围
在Java中规定当对byte、short、char类型赋值时,如果没有超出当前数据类型取值范围,则可以直接赋值- 当对long类型赋值时,常见的问题:
- long d = 12345678909; //出现编译错误,原因:右侧的值默认为int类型,但是该值已经超出int类型取值范围,因此就出现编译错误
- 解决办法:将右侧的值变为long类型,也就是在该值的后面添加l或者L
- long d = 12345678909L;
- d = 15; //不报错,构成自动类型转换,也就是:在Java中,取值范围小的数据类型可以直接给取值范围大的数据类型赋值
2. 浮点类型
- 浮点类型又分为:float、double
- 浮点类型的值默认为double类型
- 比如:0.0001 3.1415926 -567.123456789
- 比如:0.0001 3.1415926 -567.123456789
- 当对float类型赋值时,常见的问题:
- float y = 2.78; //出现编译错误,原因:右侧的值2.78默认为double类型,但是在Java中取值范围大的数据类型不能直接给取值范围小的数据类型赋值
- 解决办法1:在值的后面编写f或者F,也就是将右侧的值变为float类型
- float y = 2.78f; //不报错,但是没有构成类型转换
- 解决办法2:进行强制类型转换,也就是在右侧值的前面编写一对英文小括号,在括号中编写目标类型
- y = (float)0.099;
3 字符类型
- 字符类型:char
- 字符类型一次只能存放一个,并且使用英文单引号引起来
4. 布尔类型
- 布尔类型:boolean
- 在java中,布尔类型只有两个取值,分别是true、false,占1个字节
5. 基础类型转换的6条规则
- 基本数据类型中除了boolean数据类型以外剩余7种之间都可以进行相互转换
- 当取值范围小的数据类型是可以直接给取值范围大的数据类型赋值,构成自动类型转换,也叫做隐式类型转换
- 取值范围大的数据类型不能直接给取值范围小的类型赋值,则必须进行强制类型转换,也叫做显式类型转换,可能存在精度丢失,不会进行四舍五入
- 在Java中当对byte、short、char类型赋值时,如果没有超出当前数据类型取值范围则是可以直接赋值的
- 当byte、short、char类型进行混合运算时,则先转为int类型,然后再进行计算
- 多种数据类型进行混合运算时,结果为当前运算中取值范围大的数据类型
6. ==与equals()区别
- 基本数据类型在内存中存放的是真正的值,因此使用==比较左右变量的值是否一致
- 引用数据类型在内存中存放的是地址,因此使用==比较左右两边的内存地址是否一致
- 当是字符串类型,如果比较真正的值(内容),则使用equals()方法完成
三、选择结构switch case
1. 什么时候用switch case?
当作等值操作时,则就可以使用switch case完成 也就是:跟具体一个值进行比较时
2.switch case语法格式(重点)
switch(表达式){
case 常量值:
…..
break;
case 常量值:
…….
break;
default:
…….
break;
}
3.switch case语法格式说明
- switch case中的表达式可以是byte、short、int、char、枚举类型,还可以是在JDK7.0及以上为String类型
- switch中可以编写任意多个case
- 变量:存放数据的,并且存放的数据是可以发生改变的
常量:存放数据的,并且存放的数据是不可以发生改变的 - 常量值的数据类型必须与表达式值的类型一致
- break; //表示中断,也就是:当遇到break则就结束当前整个switch case
- 当所有case都不满足时,则执行default
- switch case中的default是可有可无的,如果有default,当所有case都不满足时执行
4. switch case中常见的注意事项
-
case值的顺序可以颠倒,编译不报错,运行结果也没有影响
建议:初学者还是按顺序编写
-
default顺序也可以颠倒,编译不报错,运行结果也没有影响
原因:当所有case都不满足时,则执行default
建议:default编写在所有case最后 -
switch中的break是可有可无的
如果有break则表示中断,也就是:当遇到break则结束当前整个switch case
如果没有break,则可能会影响程序的运行结果
原因:找到第一个匹配的case或者default一直向下执行语句,也就是构成case穿透
因此:根据情况适当编写break
作业与代码(点击领取)
1)李四要到美国旅游,可是那里的温度是华氏度为单位记录的。
他需要一个程序将华氏度转化为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
提示:摄氏度与华氏度的转换公式为:摄氏度=5/9.0*(华氏度-32)
2)实现一个数字加密器,加密规则是:加密结果 = (整数*10+5)/2 + 3.14159,加密结果仍为一整数
3)输入用户名和密码,如果用户名是admin 密码是123,则登录成功,否则登录失败
4)假如张三进行Java机试题测试,
如果得100分则奖励一台笔记本电脑,
如果得90分以上则奖励一个移动硬盘,
如果得60分以上则奖励一个鼠标,
否则没有任何奖励
要求:使用两种方法完成(多重if和switch case两种方法完成)
5)输入一个三位的正整数,判断是否是水仙花数
水仙花数:也就是一个数的各个位的立方和等于当前这个数,则这个数就是水仙花数
比如:153 == 1 * 1 * 1 + 5 *5 *5 + 3 * 3 * 3