Java基础

建个空项目 之后需要做的事情
注释
-
单行注释
- //
-
多行注释
- /**/
-
文档注释
-
/** */
-
/** * @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){}//老手 } }
-
什么是字节
- 位(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_0000_0000; 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?"不及格":"及格";//必须掌握
-
-
优先级
- 不需要刻意去记 多加括号就好了
包机制
用于区别类名的命名空间
-
为了更好组织类 有效解决同名但不冲突
-
一般利用公司域名倒置作为包名
-
使用某一个包的成员,需要导入该包 import
推荐查看 《阿里巴巴开发手册》


浙公网安备 33010602011771号