变量概述
变量:是一个容器用于存储数据。里面的数据可以发生改变 所以称为 【变量】
字节:用于存储的计量单位。
1、数据类型分类
8种基本数据类型:
数值型: 整数型 byte short int long
public static void main(String[] args) {
/**
* long 类型变量注意
* 1、直接写出的整形数字 默认类型是int 值过大会出错
* 2、整形数字后面加L 表示整形数字是long类型的
*/
long a = 2200000000L;
}
浮点型:float double
public static void main(String[] args) {
/*
* float 类型变量在定义时注意:
* 1、 我们直接写出的浮点数字默认是 double类型 double类型占用8个字节
* 2、 可以在浮点数字后面加f 表示数字类型是double
*/
float a = 10.1; //这里报错
//正确
float b = (float)10.1; //默认为double 强转为float
float c = 10.1f;
}
字符型:char
public static void main(String[] args) {
/**
* char 类型
* 1、char 占2个字节 == 16位 == 一个字符
* 2、char 属于数值型 他可以进行数字类型的强制转行
* 3、可以进行运算
* 4、可以存一个汉字
* 5、建议不要写中文 没有顺序
*/
char a = 'A';
}
布尔型:boolean (true false)
int 4个字节(也就是4b) 1个字节大小占8个2进制位
byte 1个字节 -128~127
char 2个字节 最小的16进制4个数字~最大的16进制4个数字
2、声明的位置划分
局部变量:方法 或者 语句块内部定义的变量
成员变量: 方法外部 、类内部定义的变量
注意:类外面不能定义变量
public class Demo2 {
int c = 123; // 全局变量
public static void main(String[] args) {
//创建变量: 数据类型 变量名 = 初始化值;
int a = 8;//局部变量
//创建变量暂时不赋值的语法: 数据类型 变量名;
int b;
//创建字符串变量
String aaa = "sdasd";
}
}
1、在方法内部 变量同级之间不能访问。
2、变量大于 局部的时候可以访问。
3、访问大于 变量不能访问
//例如:
//可以访问
public static void main(String[] args) {
int a = 3;
int b =4;
{
System.out.println(a+b);
}
}
//不能访问
public static void main(String[] args) {
System.out.println(a+b);//报错
{
int a = 3;
int b =4;
}
}
3、标识符
java对 包、类、方法、参数 和 变量 等要素命名时使用的字符序列称为【标识符】
标识符的命名规范:
1、字母、数字、下划线 和 $符号组成。
2、不能数字开头
3、区分大小写
4、长度无限制
5、不能是java中的关键字保留字。
数据类型的转换
1、自动类型转换
例如:装满水的小水杯 倒入大水杯时 只要保证大水杯容量比小水杯大的话 就不会出现任何错误。
public static void main(String[] args) {
byte a = 127;
int i = a; //自动类型转换
}
2、强制类型转换(会导致进度丢失)
例如:装满水的大水杯 倒入小水杯 会溢出。
public static void main(String[] args) {
//错误案例
a = i;//强制转换会导致精度丢失 这里的 i 已经报错
//正确案例
a = (byte)i; //把 i 变成byte 再赋值给a
}
//浮点型
public static void main(String[] args) {
/*
* float 类型变量在定义时注意:
* 1、 我们直接写出的浮点数字默认是 double类型 double类型占用8个字节
* 2、 可以在浮点数字后面加f 表示数字类型是double
*/
float a = 10.1; //这里报错
//正确
float b = (float)10.1; //默认为double 强转为float
float c = 10.1f;
}
//整形 long
public static void main(String[] args) {
/**
* long 类型变量注意
* 1、直接写出的整形数字 默认类型是int 值过大会出错
* 2、整形数字后面加L 表示整形数字是long类型的
*/
long a = 2200000000L;
}
//char类型
public static void main(String[] args) {
/**
* char 类型
* 1、char 占2个字节 == 16位 == 一个字符
* 2、char 属于数值型 他可以进行数字类型的强制转行
* 3、可以进行运算
* 4、可以存一个汉字
*/
char a = 'A';
System.out.println(++a);
System.out.println(++a);
System.out.println(++a);
System.out.println(++a);
//输出的结果是 B\C\D\E
char b = '钰';
System.out.println(++b);
System.out.println(++b);
//输出 钱/钲 他是根据偏旁去匹配的
}
ASCII 码表
方法
作用:封装一个特定的逻辑功能。可以平凡的调用。
要素:权限修饰符、方法名、参数列表、返回值。
权限修饰符:
格式: 权限修饰符 返回值声明 方法名(参数列表){
方法中封装的逻辑功能。
return 返回值
}
运算符
1、算数运算符
加 减 乘 除 取余(%) 加加(自增) 减减(自减)
public static void main(String[] args) {
int a = 10;
int b = 3 ;
System.out.println(a%b);//a % b 取余 结果是:1
int c = 20;
System.out.println(c++);//先打印再自增 输出的是 20
System.out.println(++c);//先自增再答应 上面已经21了 这里结果是22
}
2、赋值运算符
=赋值 +=加等 -=减等 *=乘等 /=除等 %=模等
public static void main(String[] args) {
int a = 10; // 10 赋值给a
int b = 3 ;
a += b;
System.out.println(a); // a + b 的和 13
a = 10; // 10 赋值给a
b = 3 ;
a -= b;
System.out.println(a); // a - b 的差 7
a = 10; // 10 赋值给a
b = 3 ;
a *= b;
System.out.println(a); // a * b 的积 30
a = 10; // 10 赋值给a
b = 3 ;
a /= b;
System.out.println(a); // a / b 的商 3
a = 10; // 10 赋值给a
b = 3 ;
a %= b;
System.out.println(a); // a % b 的余 1
}
3、关系运算符
关系运算符的结果总是boolean型 :true(真) 或者 false(假)
== != < > <= >=
public static void main(String[] args) {
int a = 10;
int b = 3 ;
System.out.println(a < b);//false假
System.out.println(a > b);//true真
System.out.println(a == b);//false假
System.out.println(a >= b);//true真
System.out.println(a <= b);//false假
}
4、逻辑运算符
连接多个boolean型结果的表达式
& 与 一假就是假
| 或 一真就是真
^ 异或 两边结果相同 为假,两边结果不相同为真
! 非 非真就是假,非假就是真
&& 短路与 如果左边是false 结果就是false 不再参与运算
|| 短路或 如果左边是true 结果就是true 不再参与运算
public static void main(String[] args) {
//& 与 一假就是假
System.out.println(true & false);//false
System.out.println(true & true);//true
System.out.println(false & true);//false
System.out.println(false & false);//false
//| 或 一真就是真
System.out.println(true | false);//true
System.out.println(true | true);//true
System.out.println(false | true);//true
System.out.println(false | false);//false
//&& 短路与 如果左边是false 结果就是false 不再参与运算
System.out.println(true && false);//false
System.out.println(true && true);//true
System.out.println(false && true);//false
System.out.println(false && false);//false
//|| 短路或 如果左边是true 结果就是true 不再参与运算
System.out.println(true || false);//true
System.out.println(true || true);//true
System.out.println(false || true);//true
System.out.println(false || false);//false
//^ 异或 两边结果相同 为假,两边结果不相同为真
System.out.println(true ^ false);//true
System.out.println(true ^ true);//false
System.out.println(false ^ true);//true
System.out.println(false ^ false);//false
//! 非 非真就是假,非假就是真
System.out.println(!false);//true
System.out.println(!true);//false
}
5、字符串连接符
+加号两边 任意一边 为字符串 那么 这个加号就是 字符串连接符。他会把不是字符串的另一边变成字符串
public static void main(String[] args) {
String a = "奥特曼";
int b = 100;
System.out.println(a+b);//结果:奥特曼100
}
6、三目运算符
格式:boolean结果表达式? 表达式1:表达式2 含义:boolean结果表达式为true 结果是[表达式1]
boolean结果表达式为false 结果是[表达式2]
public static void main(String[] args) {
int a = 3;
int b =4;
System.out.println(a > b?"a大":"b大");//结果:b大
System.out.println(a < b?"a小":"b小");//结果:a小
}
转义字符
就是把原本有意义的字符变成普通没有意义的字符。
例如:在java代码中单独答应一个 双引号是打印不出来的。所以我们就需要用到转义
public static void main(String[] args) {
System.out.println("\"\"");//结果就是 "" \" 就是把java中的“转化成普通的
}
\n 换行
\r 回车
\t 水平制表(就是Tab键)
\v 垂直制表
\ 代表一个反斜杠
’ 代表一个单引号
" 代表一个双引号