1.变量:可以变化的量
在java语言,每个变量都要声明他的类型
变量是程序中的最基本的存储单元,其要素包括变量名,变量类型和作用域;
声明方式: type varName [=value];
//数据类型 变量名 =值;可以使用逗号隔开来声明多个同类型的变量
#注意事项:
每个变量都有类型,类型可以是基本数据类型,也可以是引用类型
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每个声明都必须以分号结束
#类变量:static修饰,静态的 ,可以直接使用的
#实例变量:类实际化成对象以后才能使用的,如果没有初始化,布尔类默认为false,其他为null
#局部变量:局部变量声明必须得先初始化,因为它没有默认值
而且声明时不指定权限修饰符
public class Demo02 {
static int aa = 0;//类变量
public static void main(String[] args) {
String str = "张三";//实例变量(类内部,从属于对象)
static int a = 0;//类变量
}
public void methor(){
int a;//局部变量
}
}
2.类型转换
由于java是强类型语言,所以要进行一些运算的时候,需要用到类型转换
#数据类型容量大小
低----------------------------------------------------高
byte,short,char->int->long->float->double(小数优先级大于整数)
public class Demo01 {
public static void main(String[] args) {
int i=138;
byte b=(byte)i;//内存溢出(byte最大128)
//强制转换 (类型)变量名 高--低
//自动转换 低---高
double c=i;
System.out.println(i);//138
System.out.println(b);//-118
System.out.println(c);//138.0
//==========================
System.out.println((int)23.7);//23
System.out.println((int)-45.690);//-45
char a='a';
int d=a+1;
System.out.println(d);//98
System.out.println((char)d);//b(因为a下一个就是b)
//================
//jdk新特性 数字之间可以下划线分割
int money=10_0000_0000;
int years=100;
int total=money*years;
System.out.println((money*years));
System.out.println(total);
}
}
3.变量命名规则
所有变量、方法、类名:见名知意
方法名、局部变量、类成员变量:首字母小写和驼峰原则:addArray
常量:大写字母跟下划线:MAX_VALUE
类名:首字母大写和驼峰原则:Student、People
4.常量
初始化后不能再改变值!不会变动的值
常量即是一种特殊的变量,它的值被设定以后运行过程就不能改变
#定义方式
final 常量=值;
final double PI=3.14;
常量一般用大写命名
5.运算符
#算术运算符
+、-、*、/、%、++、--
#赋值运算符
=
#关系运算符(返回的结果是boolen类型的)
>、<、>=、<=、==、!=instanceof
#逻辑运算符
&&、||、!
#三目运算符
? :
#注意
1.记住++a是先运算后取值(“--”同理)
a++是先取值后运算
减法也一样
2.整数除以整数会舍弃小数部分
3.取余数
对于负数取余,可以把模数负号忽略不计,如:5%-2=1
但是反之:取被模数为负,不可以忽略,如:-5%2=-1
#关于逻辑运算符
逻辑运算符
java中:
&-与
|-或
!-非
&&-短路与(跟&判断一样)
||-短路或(跟|判断一样)
^-异或
(1)逻辑运算符用于连接布尔型表达式,在java中不可以写成3
(2)单个&和双&的区别:
单个的时候,左右无论真假都进行运算;
双个的时候,如果左边为真,右边也参与运算,如果左边为假,右边不参与运算。
(“|”和“||”也同理)
赋值运算符
由于java的基本数据类型的自动转化
假设:byte i=1;
想实现i=i+3
(1)i=(byte)(i+3);//变量参与运算时,java程序不知道具体的这个变量
在做完运算后会不会查重当前变量的范围,所以会先把变量转换为一个更大长度,
在这个例子中,byte类型会转化为默认的int
(2)i+=3;在使用扩展赋值运算符时,变量在参与运算时会把结果自动强制转化
为当前变量的类型
逻辑运算符
java中:
&-与(两个都得为真)
|-或(有一个真就可以为真了)
!-非
&&-短路与(跟&判断一样)
||-短路或(跟|判断一样)
^-异或
//&& 与 ||或 !非
boolean s=true;
boolean ss=false;
System.out.println("s&&ss:"+(s&&ss));//false
System.out.println("s||ss:"+(s||ss));//true
System.out.println("!(s&&ss):"+(!(s&&ss)));//true
//短路运算 int dd=5; boolean cc=(dd<4)&&(dd++<4); System.out.println(dd);//5 System.out.println(cc);//false
(1)逻辑运算符用于连接布尔型表达式,在java中不可以写成3
(2)单个&和双&的区别:
单个的时候,左右无论真假都进行运算;
双个的时候,如果左边为真,右边也参与运算,如果左边为假,右边不参与运算。
(“|”和“||”也同理)
赋值运算符
由于java的基本数据类型的自动转化
假设:byte i=1;
想实现i=i+3
(1)i=(byte)(i+3);//变量参与运算时,java程序不知道具体的这个变量
在做完运算后会不会查重当前变量的范围,所以会先把变量转换为一个更大长度,
在这个例子中,byte类型会转化为默认的int
(2)i+=3;在使用扩展赋值运算符时,变量在参与运算时会把结果自动强制转化
为当前变量的类型
#幂运算(很多这种类似的运算都会使用工具类来操作)
double pow=Math.pow(2,3);//幂运算 System.out.println(pow);
使用Math函数,选择对应的函数,需要使用对应函数名作为输出变量名
//赋值运算符 int a=0; int b=0; int c=0; a+=2;//a=a+2 b-=2;//b=b-2 //字符串连接 String name="zhangsan"; String nam=name+1; System.out.println(nam);//zhangsan1 //三目运算符 int dd=80; String aa=dd>90?"优秀":"良好";//?前是判断语句,如果true返回?与:之间的内容,否则返回:后面的内容 System.out.println(aa);//良好



