hi~ 我又来啦~
下面是这几天的笔记↓↓↓↓↓
变量和数据类型
环境变量:存储了各种程序所需的环境信息。
变量是可以用来存储数据的。
一、掌握变量和常量的使用
1.变量的概述
变量:可以变化的量,变量存在的意义就是用于在内存中去临时性的存储数据。
在Java种一个变量的使用:
变量的组成—— 类似于住酒店的过程(内存类似于酒店)
- 数据类型(根据你要存储的内容 合理的分配一个内存空间)——酒店的房间类型(双人间、单人间)
- 变量名(如果没有变量名 那么使用这个变量时 需要记忆内存地址 3nas23fids)——酒店的房间号(101、302)
- 变量值(在内存中要存储的数据)——住酒店的客人
2.变量的使用
- 变量
public class Demo1 {
public static void main(String[] args) {
// 两种方式使用
// 【1.先声明再赋值】
// 声明:数据类型 变量名;
String name;
// 赋值:向对应的变量的内存空间进行存储数据
// 变量名 = 变量值;(将小杜这个值赋给name这个变量)
name = "雷锋";
// 【2.声明的同时并赋值】
// 数据类型 变量名 = 变量值;
String stuName = "雷锋";
}
}
public class Demo2 {
public static void main(String[] args) {
// 存储小雷的真实姓名
// 先声明
String name;
// 再赋值
name = "雷锋";
// 存储小雷的年龄
// 声明的同时并赋值
int nianLing = 22;
// 存储小雷的暗恋对象
// 声明的同时并赋值
String anLianDeDuiXiang = "神仙姐姐";
// 存储小雷爱玩的游戏
String game = "扫雷 连连看";
// 存储小雷的性别
char gender;
gender = '男';
// male female
/*char gender;
gender = 'm';*/
// 1男性 2女性
// int gender = 1;
// 存储小雷是否有对象
boolean hasCP = true;
// 存储小雷的银行卡余额
double money = 5.21;
// 注意:float long
// Java中默认整数就是int 小数就是double
// 在数字后写大写F或小写的f
float f = 10.1F;
// 在数字后写【大写的L】或小写的l
long lo = 10L;
}
}
public class Demo4 {
public static void main(String[] args) {
String name;
name = "小雷";
int age = 22;
// 转义字符
// \n表示换行
// \t表示一个制表位Tab
// 输出完会换行 ln line行
// System.out.println("我的姓名是:"+name+"\n我的年龄:"+age);
// 输出完不换行
System.out.print("我的姓名:"+name);
System.out.print("我的年龄:"+age);
}
}
- 常量: 表示只可以赋值一次的变量 被final修饰
public class Demo2 {
public static void main(String[] args) {
// 需求:计算圆的面积 π*r*r
// 存储π
// 常量:表示只可以赋值一次的变量 被final修饰
final double PI = 3.14;
// 存储半径
double r = 2;
// 计算面积
double area = PI * r * r;
System.out.println("圆的面积为:"+area);
}
}
3.了解变量和常量的命名规范
变量命名:
数字、字母、$和_都可以作为变量名的组成内容,数字不能开头。
变量规范:
- 变量名应该见名知义(abc不如name表示含义清楚)
- 变量名切忌拼音和英文混合,切记中文 (要么全是拼音 要么全是英文)
- 变量名应该遵循小驼峰命名法 (首字母小写,如果有多个单词,后面的每个单词首字母大写!)
- helloworld × helloWorld √
- myname × myName √
- myinfo × myInfo √
- 变量名可以采用下划线连接法
- hello_world my_name my_info
- 变量名不允许使用关键字和保留字
- 关键字:系统中有特殊含义的单词
- 保留字:以后可能在Java发展中会被赋予特殊含义的单词
**常量命名:**常量的名字中出现的字母必须全部大写
**常量规范:**如果在常量名中出现了多个单词,以下划线连接。例如:MY_NAME
4.掌握Java中的数据类型
Java中为了合理的使用内存,将不同的数据,划分成了不同的类型。
8种类型(基本数据类型):
数值类型:
-
整数型: 1 2 3 4 5 6 34 45 ……
- byte
- short
- int Java中默认的整数类型
- long
-
浮点型: 1.1 1.3 34.54……
- float
- double Java中默认的浮点数的类型
非数值类型:
- char(字符型) 存储单个字符用,以单引号包裹。例:
'a'
'我'
'1'
- boolean(布尔型) 只能存储两个值,一个为
true
正确(是、真……),一个是false
错误(否、假……),储存一些判断结果比较合适
【引用数据类型:】
- String(字符串型) 最常用的类型,以双引号包裹。例:
"你好"
"呵呵"
"abc"
5.掌握数据类型转换(难点)
在Java中存在自动数据类型转换。
- 在同一类型下(数值类型),取值范围大的数据类型,可以存储取值范围小的数据类型值。(自动的)
double money = 10; //(自动类型转换)
System.out.println(money);//10.0
- 在同一类型下(数值类型),取值范围小的数据类型,如果想存储取值范围大的数据类型值,需要强转。(强转,取整 不是四舍五入!!会损失数据的精度!!)
int money = (int)10.6; // 强制类型转换
System.out.println(money); // 10 不会四舍五入
二、掌握Scanner(扫描器)键盘输入(交互)
1.先导入Scanner
// 导入Scanner(写在包名下)
import java.util.Scanner;
2.创建Scanner对象
// 创建Scanner对象
Scanner input = new Scanner(System.in);
3.使用Scanner来输入整数、小数、字符串……
// 将输入的内容存储到变量中
System.out.print("请输入您的姓名:");
// 字符串
String name = input.next();
System.out.print("请输入您的年龄:");
// 整数
int age = input.nextInt();
System.out.print("请输入您的余额:");
// 小数
double money = input.nextDouble();
三、掌握常见的运算符
Java中为了更好的处理数据,提供了多种运算符号。
1.算数运算符
+
加法-
减法*
乘法/
除法%
取余数 (取模/求模) 例如:5 % 2 = 1; 5模于2等于1++
自增1--
自减1
// 除法
int num1 = 5;
int num2 = 2;
// 计算商 两个数如果都是整数 那么结果一定是整数
System.out.println(num1+" / "+num2+" = "+(num1 / num2)); // 2
// 当其中出现了一个范围大的类型 那么最终的结果就采用此类型
double num1 = 5;
int num2 = 2;
System.out.println(num1 / num2); // 2.5
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);
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 num /= 2; // num = num / 2
-
3.关系运算符
-
>
-
<
-
>=
-
<=
-
==
比较相等 -
!=
不相等
关系运算符的结果就是布尔类型。true
false
int num1 = 11;
int num2 = 12;
// System.out.println(num1 > num2);
System.out.println(num1 != num2);
4.逻辑运算符
&
与 并且&&
(短路与)|
或 或者||
(短路或)!
非 取反
// 需求:判断变量num是否大于5 小于 20呢?
int num = 2;
// 5 < num < 20
// true < 20
// System.out.println(5 < num < 20);
// System.out.println(5 < num & num < 20);
System.out.println(!(num < 5));
// 单个与和两个与在逻辑关系上 都表示并且的含义,指的是多个关系运算之间都必须是成立(满足)。
// 单个与,如果在执行逻辑运算时,前方的某个关系运算符没有成立(false),那么它后边的代码还会照常运算。
// 短语与,如果在执行逻辑运算时,前方的某个关系运算符没有成立,那么它后面的代码不会再执行,被短路了。
// 推荐用第二种,性能更佳,不用计算无用代码!
int num = 2;
// 5 < num < 20
// System.out.println(num > 5 & ++num < 20);
System.out.println(num > 5 && ++num < 20);
System.out.println(num);
5.三目(元)运算符
语法:条件(关系表达式) ? 表达式1 : 表达式2
// 创建对象
Scanner scan = new Scanner(System.in);
// 网ba 18岁才可以进入
System.out.print("请输入您的年龄:");
int age = scan.nextInt();
// System.out.println("我到底能不能去网ba?"+(age >= 18));
// 去 不去
String result = (age >= 18) ? "能去" : "不能去";
System.out.println("我到底能不能去网ba?"+result);
6.运算符优先级
小括号()优先级别最高