建个空项目 之后需要做的事情
注释
单行注释
//
多行注释
/**/
文档注释
/* /
/**
- @Description HelloWorld
- @Author 狂神说JAVA
*/
彩蛋
Baidu有趣的代码注释
标识符
Java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符
关键字|高亮部分
image-20201207192406907
注意点
所有标识符都应该以字母,美元符,或者下划线开始
首字符之后可以是字母,美元符,下划线或数字的任何字符组合
不能使用关键字作为变量名或者方法名
标识符大小写敏感
不建议使用中文或者中文拼音
数据类型
强类型语言
要求变量的使用严格符合规定,所有变量都必须先定义后使用|对标Python
弱类型语言
“12”+3=“123”
Java的数据类型分为
基本类型
引用类型
image-20201207193818507
基本数据类型
//整型
long num3=30L;
//浮点型:
float num4=50.1f;
double num5=3.14159263589793238462643;
//字符
char name='国'
//字符串 String不是关键字 是类
//String namea= "秦江"
//布尔值:是非
boolean flag=true;
引用数据类型
//类 接口 数组
public class Demo01 {
public static void main(String[] args) {
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制 0x 0-9 A-F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
/float 有限 离散 存在舍入误差问题 接近但不等于
double
最好不要使用浮点数进行比较
使用BigDecimal 数学工具类 /
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//false
float d1=323232323232332f;
float d2=d1+1;
System.out.println(d1==d2);//true
/*
* 字符拓展
* 所有的字符本质还是数字
* 编码 Unicode 2字节 0-65536 2 16 =65536
* U0000-UFFFF
* 转义字符 \t 制表符
*
* */
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);
//U0000-UFFFF
char c3='\u0061';
System.out.println(c3);//a
//---------------------
//从内存角度分析
String sa=new String("hello");
String sb=new String("hello");
System.out.println(sa==sb);//false
String sc="hello";
String sd="hello";
System.out.println(sc==sd);//true
//布尔值扩展
boolean flag=true;
if(flag==true){}//新手
if(flag){}//老手
}
}
//代码效果参考:http://www.zidongmutanji.com/bxxx/127832.html
什么是字节
位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示
1B(byte,字节)=8bit(位)
字符:是指计算机中使用的字母,数字,字和符号
1bit : 1位
1Byte:1B=8b
1KB=1024B
1TB=1024G
思考:电脑的32位和64位的区别是什么呢
32位电脑只能装32位的cpu和系统
寻址能力 32位只支持4G内存 64位支持128G内存
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低-------------------------------------------------------------->高
byte,short,char->int->long->float->double
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换 (类型)变量名 高->低
自动类型转换 低->高
注意点:
不能对布尔值进行转换
不能把对象类型转换到不相干的类型
在把高容量转换到低容量的时候,强制转换
转换的时候可能存在内存溢出,或者精度问题
int i=128;
byte b =(byte)i;//-127 byte范围:-127-128
(int)23.7;//23
(int)-45.89f;//-45
//操作比较大的数的时候,注意溢出问题
//JDK7新特性 数字之间可以用下划线
//只用大写L
public static void main(String[] args) {
int money = 10_00000000;
int year = 20;
long total3 = money * ((long) year);
System.out.println(total3);
}
变量
不提倡一行定义多个变量为了程序可读性
变量命名
所有变量,方法,类名
见名知意
类成员变量
首字母小写和其后首字母大写 monthSalary
局部变量
首字母小写和其后首字母大写
常量
大写字母和下划线 MAX_VALUE
类名
首字母大写和其后首字母大写
方法名
首字母小写和其后首字母大写 runRun()
变量作用域
局部变量:
必须声明和初始化值
成员变量
实例变量:
从属于对象
如果不自行初始化,其值为这个类型的默认值 0 0.0 u0000
布尔值:默认为false
除了基本类型,其余默认值为null
类变量:static
//各种类变量暂时全用static修饰
static double salary =2500;
常量
定义:初始化后不能改变其值
final double pi =3.14;
//补:final static 修饰符位置不敏感
static final double pi = 3.14;
final static double pi = 3.14;
运算符
instanceof 待补充s
快捷键 ctrl +D:复制当前行到下一行
cast:转换
很多运算 我们会使用一些工具类来操作
double pow=Math.pow(3,2);
System.out.println(pow);
位运算
&与
|或
^异或 不同为1
~ 非
无符号右移运算符 它使用0扩展,无论正负都在最高位补0
左移 *2
右移 /2
三元运算符
x?y:z 如果x true 则为y 否则为z
String type = score <60?"不及格":"及格";//必须掌握
优先级
不需要刻意去记 多加括号就好了