Java初学(四)变量分类和基本数据类型、选择结构switch

变量分类和基本数据类型、选择结构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
      在这里插入图片描述
  • 当对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条规则

  1. 基本数据类型中除了boolean数据类型以外剩余7种之间都可以进行相互转换
  2. 当取值范围小的数据类型是可以直接给取值范围大的数据类型赋值,构成自动类型转换,也叫做隐式类型转换
  3. 取值范围大的数据类型不能直接给取值范围小的类型赋值,则必须进行强制类型转换,也叫做显式类型转换,可能存在精度丢失,不会进行四舍五入
    在这里插入图片描述
  4. 在Java中当对byte、short、char类型赋值时,如果没有超出当前数据类型取值范围则是可以直接赋值的
  5. 当byte、short、char类型进行混合运算时,则先转为int类型,然后再进行计算
  6. 多种数据类型进行混合运算时,结果为当前运算中取值范围大的数据类型

6. ==与equals()区别

  • 基本数据类型在内存中存放的是真正的值,因此使用==比较左右变量的值是否一致
  • 引用数据类型在内存中存放的是地址,因此使用==比较左右两边的内存地址是否一致
  • 当是字符串类型,如果比较真正的值(内容),则使用equals()方法完成

三、选择结构switch case

1. 什么时候用switch case?

当作等值操作时,则就可以使用switch case完成 也就是:跟具体一个值进行比较时

2.switch case语法格式(重点)

switch(表达式){
	case 常量值:..
		break;
   case 常量值:
		…….
		break;
   default:
		…….
		break;
}

3.switch case语法格式说明

  1. switch case中的表达式可以是byte、short、int、char、枚举类型,还可以是在JDK7.0及以上为String类型
  2. switch中可以编写任意多个case
  3. 变量:存放数据的,并且存放的数据是可以发生改变的
    常量:存放数据的,并且存放的数据是不可以发生改变的
  4. 常量值的数据类型必须与表达式值的类型一致
  5. break; //表示中断,也就是:当遇到break则就结束当前整个switch case
  6. 当所有case都不满足时,则执行default
  7. switch case中的default是可有可无的,如果有default,当所有case都不满足时执行

4. switch case中常见的注意事项

  1. case值的顺序可以颠倒,编译不报错,运行结果也没有影响

    建议:初学者还是按顺序编写

  2. default顺序也可以颠倒,编译不报错,运行结果也没有影响

    原因:当所有case都不满足时,则执行default
    建议:default编写在所有case最后

  3. 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值