Java基础语法--类型转换,常量,变量以及运算符的学习
Java基础
Java基础语法
类型转换
byte,short,char--int--long--float--double
容量低--------------------------------------------高(小数优先级高于整数)
1.强制类型转换(由高到低)
格式:(类型)变量名
例1.1
public static void main(String[] args) {
double a=100;
int b=(int)a;//将a由double强制转换为int
System.out.println(a);
System.out.println(b);//b=100
}
例1.2
public static void main(String[] args) {
char c='a';
int i=(int)c;
System.out.println(i);//97
int i2=i+1;
System.out.println(i2);//98
System.out.println((char)i2);//b
}
注意:强制转换时应注意容量
public static void main(String[] args) {
int i=128;
byte b=(byte)i;
System.out.println(i);//i=128
System.out.println(b);//b=-128
}
原因:byte容量为-128--127,内存溢出
2.自动类型转换(由低到高)
public static void main(String[] args) {
int a=100;
double b=a;//int--double 由低到高自动转换
System.out.println(a);
System.out.println(b);//b=100
}
其它注意:
a.不能对布尔值进行转换
b.不能把对象类型转换为不相干的类型
c.转换注意精度问题
public static void main(String[] args) {
System.out.println((int)23.7);//=23
System.out.println((int)-44.44);//=-44
}
d.操作比较大的数的时候注意溢出问题
public static void main(String[] args) {
int money=10_0000_0000;
int years=20;
int total1=money*years;
System.out.println(total1);//-1474836480,错!int内存溢出
long total2=money*years;
System.out.println(total2);//-1474836480,错!因为money和years都是int类型,转换之前已经存在问题
long total3=(long) money*years;//正确做法,Hooray!
System.out.println(total3);//20000000000
}
变量、常量、作用域
1.变量的命名规范
1.1 所有变量、方法、类名:见名知意
1.2 类成员变量:首字母小写和驼峰原则:monthSalary
1.3 局部变量:首字母小写和驼峰原则
1.4 常量:大写字母和下划线:MAX_VALUE
1.5 类名:首字母大写和驼峰原则:HelloWorld
1.7 方法名首字母小写和驼峰原则:runRun()
2.变量
public class Day04Demo05 {
//类变量 关键字static 在其它方法中引用时不用new
static double salary=2500;
//实例变量,从属于对象,要new
int age;
String name;
/*注:1.实例变量可以在其它的方法中使用
* 2.数值类型默认值为0 0.0 ...
* 3.bool值默认为false
* 4.除了基本类型,其余默认值都是null */
//main方法
public static void main(String[] args) {
//i为局部变量,必须声明且初始化值,使用范围仅在本方法内
int i=10;
System.out.println(i);
Day04Demo05 day04Demo05 = new Day04Demo05();//alt+enter出现“=”前半部分
System.out.println(day04Demo05.age);
System.out.println(day04Demo05.name);
}
//其它方法
public void add(){
System.out.println(salary);
}
}
3.常量
public class Day04Demo06 {
final static int MONEY=100;
static final double PI= 3.14;//static final 前后顺序不影响 !!!常量名必须为大写!!!
public static void main(String[] args) {
System.out.println(MONEY);
System.out.println(PI);
}
}
运算符
1.基本运算符
public static void main(String[] args) {
int a=10;
int b=20;
int c=30;
int d=40;//IDEA快速复制当前行快捷键:ctrl+D
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//此时应类型转换,否则a/b的值为0
long i1=123445567;
int i2=123;
byte i3=11;
short i4=1;
System.out.println(i1+i2+i3+i4);//long+int+byte+short=long
System.out.println(i2+i3+i4);//int+byte+short=int
System.out.println(i3+i4);//byte+short=int
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);//返回结果是bool类型,true/false
}
2.自增、自减运算以及Math类初涉
public static void main(String[] args) {
int a=3;
int b=a++;//先b=a=3 再a自增 a=a+1=4
System.out.println(a);
int c=++a;//先a自增 a=a+1=5 再c=a=4
System.out.println(a);
System.out.println(b);
System.out.println(c);
double pow=Math.pow(2,3);//Math类下的幂运算
System.out.println(pow);//2*2*2=8
}
3.逻辑运算与位运算
3.1逻辑运算
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println(a&&b);//false 与
System.out.println(a||b);//true 或
System.out.println(!(a&&b));//true 注意 非 的写法
}
//短路运算
int c=5;
boolean m=c<4&&(c++)<10;
System.out.println(m);//false
System.out.println(c);//c=5 c!=6,由此可知计算机只判断了 && 的前半部分为false,这就是短路运算
3.2位运算会出现面试题
/*
A=1100 0101
B=1001 1010
-----------
A&B 1000 0000 全1才1 其它为0
A|B 1101 1111 有1就1 全0才0
A^B 0101 1111 同则0 不同则1
~B 0110 0101 取反
-----------
* */
//!!面试题!! 如何快速运算8*4 8/4 位运算 效率极高
System.out.println(8<<2);// =8*(2*2) =0000 1000 中的1左移2位 变成 0010 0000
System.out.println(8>>2);// =8/(2*2) =0000 1000 中的1右移2位 变成 0000 0010
4.扩展赋值运算符 += 、-=
public static void main(String[] args) {
int a=11;
int b=3;
a+=b;//a=a+b=11+3
System.out.println(a);
a-=b;//a=a-b=14-3
System.out.println(a);
//字符串连接符 !!面试题!!
System.out.println(""+a+b);//113 ""是String类型,把a b都转换位String类型再进行连接
System.out.println(a+b+"");//14
}
5.三元运算符 ?:必须掌握
public static void main(String[] args) {
double score=90;
String type=score<60?"不及格":"及格";//score<60为true 则 不及格 反之 及格
System.out.println(type);
}
6.()的优先级
public static void main(String[] args) {
int a=11;
int b=3;
int c=2;
System.out.println((a+b)*c);//数学计算中括号内先运算在Java中同样适用
}
包机制
如www.baidu.com 包名为com.baidu.www
当想使用另一个包中的类时,导入(import)包
import com.KuangStudy.base.*;//*表示base下的所有类
JavaDoc生成文档
在方法上方的注释就是对方法的注释
生成javadoc文档
1.法1 命令行生成
在当前Doc.java文件目录下进入cmd

查看文件夹目录,发现生成新文件,打开index.html


2.法2 IDEA生成
01

02

-encoding UTF-8 -charset UTF-8
此处不要写错,否则会报错 :javadoc: 错误 - 非法的程序包名称: "UTF-8"

浙公网安备 33010602011771号