变量和数据类型
(听着有点学数学的感觉)
回顾一下之前的一个关于变量的知识(你还记得吗?)
环境变量: 存储了一些各种程序所需的环境的信息。
在计算机中
变量是可以用来存储数据的。
来一个小科普:
计算机中的三大件
计算机中的三个核心硬件:
-
CPU
中央处理器,帮助我们调度程序,数据的处理和计算。 人类的大脑
-
内存(RAM)
RAM(Random Access Memory):随机存取器
硬盘(ROM)持久性存储数据
1. 掌握变量和常量的使用
1.1 变量的概述
这个呢是一些理论知识,老师可是会考哦 (不会抄十遍)
变量: 可以变化的量,变量存在的意义就是用于在内存中去临时性的存储数据。
在Java中一个变量的使用:(变量的组成) ----- 类似于去餐厅吃饭的过程 (内存类似于餐厅)
给大家举一个简单的例子,突然有点饿了,想去下馆子搓一顿 让我带你去吃饭 ,走起
- 数据类型(根据你要存储的内容 合理的分配一个内存空间) — 餐厅类型(大堂、雅间)
- 变量名(如果没有变量名 那么使用这个变量时 需要记忆内存地址 ) — 餐桌号(3雅、8号桌…)
- 变量值(在内存中要存储的数据) — 桌子上吃饭的客人
我们来进行新的内容了哦,一个符号出现了“=”
小可爱们,这个可不是数学里面的等于号哈
既然来到了我的秃头魔法仙女堡,就要听我的
“=”这个是赋值的意思 举个例子:
小杜(我们老师这要叫我了哦,莫名的感觉可爱,哦哈哈哈哈)
咳咳,正经点 小杜 = 秃头魔法女孩
意思呢就是说,小杜 “是” 秃头魔法女孩
public class Demo1 {
public static void main(String[] args) {
// 两种方式使用
// 【1.先声明再赋值】
// 存储名字
String name;
// 赋值
// = 它不再是数学中的等于 而现在表示 赋值符号
// 将小杜这个值赋给name这个变量
name = "小杜";
// 【2.声明的同时并赋值】
// 数据类型 变量名 = 变量值;
String name = "魔法女孩";
}
}
我们来学习一些数据类型吧
有利于我们的魔法编程更近一步
1.2掌握Java中的数据类型
Java中为了合理的使用内存,将不同的数据,划分成了不同的类型
一.八种类型
1.数值类型
由存储数值从小到大排列
- byte:整数型
- short:整数型
- int:整数型 Java中默认的整数的类型 - long:整数型
2.浮点型(小数)
- float:浮点型
- double:浮点型 Java中默认的浮点数的类型
3.非数值类型
- char:字符型 存储单个字符用,以单号引起来。例如:‘a’
‘你’ ‘女’ - boolean:布尔型 只能存储俩个值,一个为true正确(真),一个是false错误(假),存储一些判断结果比较适合
【引用数据类型】 - String:字符串型 最常用的类型,以双引号引起来的。例如:“哈哈” “下诺夫哥罗德 ”
来练习一下吧:
public class Demo2 {
public static void main(String[] args) {
// 存储魔法女孩的真实姓名
// 先声明
String name;
// 再赋值
name = "小杜";
// 存储小杜的年龄
// 声明的同时并赋值
int nianLing = 18;
// 存储小杜的学校
String university = "下诺夫哥罗德国立大学";
// 存储小杜的性别
char gender;
gender = '女';
// 存储小杜是否有结婚
boolean marride = false;
// 存储小杜的银行卡余额
double money = 0.0;
// System.out.println("我的姓名是:"+name+"\n我 的年龄:"+age);
// 输出完不换行
System.out.print("我的姓名:"+name);
System.out.print("我的年龄:"+age);
System.out.print("我的学校:"+university);
//.....类似的写下来最后运行
}
}
1.3了解变量和常量的命名规范
老司机说:这些规范呢,必须要遵守,如果你非要不听,那就是不听老人言,吃亏在眼前。
数字、字母、$和_都可以作为变量名的组成内容,数字不能开头。
- 变量名应该见名知义 abc 不如 name表示含义清楚
- 变量名切忌拼音和英文混合,也切忌使用中文。变量名应该在使用单词或拼音的时候注意要么全为单词要么全为拼音。
- 变量名应该遵循小驼峰命名法。 首字母小写,如果有多个单词,后面的每个单词首字母大写!
- getmarried climbtree machineroom
- 采用:getMarroed climbTree machineRoom
- 变量名可以采用下划线连接法。
- 采用:get_marroed climb_tree machine_room
- 变量名不允许使用关键字和保留字。
- 关键字:系统中有特殊含义的单词
- 保留字:以后可能在Java发展中会被赋予特殊含义的单词
Java中常量:
- 常量的名字中出现的字母必须全部大写
- 如果在常量名中出现了多个单词,以下划线连接。例如:MY_NAME
1.4 掌握数据类型转换(难点)
在Java中存在自动数据类型转换。
在同一类型下(数值类型),取值范围大的数据类型,可以存储取值范围小的数据类型值。(自动的)
double money = 10; // (自动类型转换)
System.out.println(money); // 10.0
在同一类型下(数值类型),取值范围小的数据类型,如果想存储取值范围大的数据类型值,需要强转。
强转会损失数据的精度。
int money = (int)10.6; // 强制类型转换
System.out.println(money); // 10 不会四舍五入
2. 掌握Scanner(扫描器)键盘输入(交互)
这个东西忒好,别想 记他 往死记
-
先导入Scanner (请过来干活 麻溜的)
// 导入Scanner import java.util.Scanner;
-
创建Scanner对象
// 创建Scanner对象 Scanner input = new Scanner(System.in);
-
使用Scanner来输入 整数、小数、字符串…
// 将输入的内容存储到变量中 System.out.print("请输入您的姓名:"); // 字符串 String name = input.next(); System.out.print("请输入您的年龄:"); // 整数 int age = input.nextInt(); System.out.print("请输入您的身高:"); // 小数 double money = input.nextDouble();
3. 掌握常见的运算符
Java中为了更好的处理数据,提供了多种运算符号。
3.1 算术运算符
+
加法-
减法*
乘法/
除法%
取余数 (取模/求模) 例如:10 % 3 = 1; 10模于3等于1++
自增1--
自减1
// 除法
int num1 = 10;
int num2 = 3;
// 计算商 两个数如果都是整数 那么结果一定是整数
System.out.println(num1+" / "+num2+" = "+(num1 / num2)); // 2
// 当其中出现了一个范围大的类型 那么最终的结果就采用此类型
double num1 = 10;
int num2 = 3;
System.out.println(num1 / num2); // 3.3
int num = 10;
/*num ++;
++ num;*/
// 输出语句也是一种使用变量的方式
// ++在后面表示先使用变量原来的值 然后再执行++效果
// System.out.println(num ++);
// ++在前面表示先执行++效果 然后再使用变量目前的值
System.out.println(++ num);
System.out.println(num);
老司机给我们出了了一道他觉的无比简单,却让我头发掉光的玩意,你们也看看
int num = 1;
// 后++ 先使用原来的值然后再自增
// 前++ 先自增然后再使用值
// int result = 1 + 3
// int result = num + ++++num
int result = num++ + ++num;
System.out.println(result);
3.2 赋值运算符
-
=
赋值符号 将=右侧的内容赋值给=左侧的变量int num = 10; // 将10赋值给了num int num2 = num; // 将num的值赋值给num2 System.out.println(num2);
-
复合赋值运算符
+=
-=
*=
/=
%=
int num = 10;
num += 1; // num = num + 1 将num先进行运算然后再将运算结果赋值给num本身 等价于num++;
System.out.println(num); // 11
int num = 8
num /= 2; // num = num / 2
3.3 关系运算符
>
<
>=
<=
==
比较相等!=
不相等
关系运算符的结果就是布尔类型。true
false
int num1 = 9;
int num2 = 10;
// System.out.println(num1 > num2);
System.out.println(num1 != num2);
3.4 逻辑运算符
&
与 并且&&
(短路与)|
或 或者||
(短路或)!
非 取反
语法:条件(关系表达式) ? 表达式1 : 表达式2
// 创建对象
Scanner scan = new Scanner(System.in);
// 窝窝头 四个起卖,嘿嘿
System.out.print("请输入您需要的个数:");
int num = scan.nextInt();
// System.out.println("我到底能不能买窝窝头?"+(num >= 4));
// 能 不能
String result = (age >= 4) ? "能" : "不能";
System.out.println("我到底能不能买窝窝头?"+result);