学习java的第五天,希望这些内容对大家有所帮助~
目录
java基础续集来啦
4 类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低-------------------------------------------------------->高
byte,short,char->int->long->float->double(小数的优先级大于整数)
-
运算中,不同类型的数据先转化为同一类型,然后进行运算
-
强制类型转换
-
自动类型转换
int i=128; byte b=(byte)i;//内存溢出 //强制转换:(类型)变量名 高--低 //自动转换:低--高 System.out.println(i);//128 System.out.println(b);//-128 /* 注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者精度问题! */ System.out.println((int)23.7);//23 System.out.println((int)-45.89f);//-45 char c='a'; int d=c+1; System.out.println(d);//98 System.out.println((char)d);//b //操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000;//100000000 int years=20; int total=money*years;//-1474836480,计算的时候溢出了 long total2=money*years;//默认是int,转换之前已经出现问题了 System.out.println(total); long total3=money*((long)years);//先把一个数转换为long
5 变量
5.1 变量的概念
-
变量是什么:可以变化的量!
-
Java是一种强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类和作用域。
type varName [=value] [{,varName[=value]}]; //数据类型 变量名=值; 可以使用逗号隔开来声明多个同类变量。
-
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
-
int a,b,c; int a=1; int b=2; int c=3;//程序可读性 public class Demo{ //类变量 static static double salary=2500; //属性:变量 //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0,0.0 //布尔值:默认值都是false //除了基本类型,其余的默认值都是null; String name; int age; //main方法 public static void main(String[] args){ //局部变量:必须声明和初始化值(只在这个括号内有用) int i=10; System.out.println(i);//10 //变量类型 变量名字=new Demo(); Demo demo =new Demo(); System.out.println(demo.age);//0 System.out.println(demo.name);//null //类变量 static System.out.println(salary); //2500 } //其他方法 }
5.2 常量的概念
-
常量:初始化之后不能再改变值!不会变动的值
-
所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变
final 常量名=值;
final double PI=3.14;
-
常量名一般使用大写字符
public class Demo{ //修饰符,不存在先后顺序 static final double PI=3.14; public static void main(String[] args){ System.out.println(PI);//3.14 } }
5.3 变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
5.4 变量作用域
-
类变量
-
实例变量
-
局部变量
public class Demo{ //修饰符,不存在先后顺序 static final double PI=3.14;//类变量 String str="hello world!";//实例变量 public static void main(String[] args){ int i=0;//局部变量 System.out.println(PI);//3.14 } }
6 运算符
6.1 Java 语言支持如下运算符:
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符=
-
关系运算符:>,<,>=,<=,==(!!!),!=instanceof
-
逻辑运算符:&&(与),||(或),!(非
-
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
-
条件运算符?:
-
扩展赋值运算符:+=,-=,*=,/=
public class Demo{ public static void main(String[] args){ //二元运算符 //Ctrl+D:复制当前行到下一行 int a=10; int b=20; int c=25; int d=25; System.out.println(a+b);//30 System.out.println(a-b);//-10 System.out.println(a*b);//200 System.out.println(a/(double)b);//0.5 long a=123123123123123L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//123123123123264(long) System.out.println(b+c+d);//141(int) System.out.println(c+d);//18(int) //关系运算符返回的结果:正确,错误 布尔值 //if int a=10; int b=20; int c=21; 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(c%a);//c/a 21/10=2...1(输出1) } }
6.2 自增自减运算符
public class Demo{ public static void main(String[] args){ //++ -- 自增,自减 一元运算符 int a=3; int b=a++;//执行完这行代码后,先给b赋值,再自增 //a++ a=a+1; System.out.println(a);//4 int c=++a;//执行完这行代码前,先自增,再给b赋值 //++a a=a+1; System.out.println(a);//5 System.out.println(a);//5 System.out.println(b);//3 System.out.println(b);//3 System.out.println(c);//5 System.out.println(c);//5 //幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具来操作! double pow=Math.pow(2,3); System.out.println(pow);//8.0 } }
6.3 逻辑运算符
public class Demo{ //逻辑运算符 public static void main(String[] args){ //与(and)或(or)非(取反) boolean a=true; boolean b=false; System.out.println("a && b"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true(a&&b:false) System.out.println("a || b"+(a||b));//逻辑或运算:两个变量都为真,则结果才为true(a||b:true) System.out.println("!(a && b)"+!(a&&b));//如果是真,则变为假,如果是假则变为真(!(a&&b):true) //短路运算 int c=5; boolean d=(c<4)&&(c++<4); System.out.println(d);//false System.out.println(c);//5 /* A=0011 1100 B=0000 1101 ------------------------ A&B=0000 1100 A|B=0011 1101 A^B=0011 0001 ~B=1111 0010 2*8怎么运算最快? 2*8=2*2*2*2=16 效率及高!! << >> 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3);//16 } }
6.4 三元运算符及小结
public class Demo{ public static void main(String[] args){ int a=10; int b=20; a+=b;//a=a+b a-=b;//a=a-b System.out.println(a);//30 //字符串连接符 + , String System.out.println(""+a+b);//1020 System.out.println(a+b+"");//30 //三元运算符 //x ? y : z //如果x==true,则结果为y,否则结果为z int score=80; String type= score <60 ?"不及格":"及格";//必须掌握!!! System.out.println(type);//及格 } }
今天的内容就到此结束啦,明天继续努力!!