具体视频:bilibili,搜索遇见狂神说;免费系统学习java全课程
网址:https://space.bilibili.com/95256449/video?tid=0&page=2&keyword=&order=pubdate
基础部分第一阶段
1. 注释,标识符,关键字
注释
- 平时我们编写代码,在代码量比较少的时候,我们可以看懂自己写的代码,但是当项目结构一旦复杂起来,我们就需要用到注释了.
- 注释并不会被执行,是该我们写代码的人看的.
- 书写注释是一个非常好的习惯
Java中注释有三种:
- 单行注释://
- 多行注释:/* */
- 文档注释: /** */
标识符
关键字:
java所有的组成部分都需要名字,类名,变量名以及方法名都都被称为标识符.
标识符注意点
- 所有的标识符都应该以字母(A-Z,a-z),美元符号($),或者下划线(_)开始
- 首字符之后可以是字母,美元符号,下划线,或者数字任意字符组合.
- 不能使用关键字作为变量名或者方法名.
- 标识符大小写敏感
- 可以使用中文命名,但是不建议使用,也不建议拼音.
2. 数据类型
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
- 强类型语言:java 要求变量的使用都要严格符合规定,所以变量都必须先定义后使用(比较安全,速度较低)
- 弱类型语言:javascript
Java的数据类型分为两大类
- 基本类型:primitive type
- 引用类型:reference type
-
byte:-128~127占一个字节
-
short:-32768~32767占两个字节
-
int:-2147483648~2147483647占四个字节
-
long:占八个字节
-
float:占四个字节定义时末尾加上F
-
double:占八个字节末尾加上L
-
char:两个字节
-
boolean:占一位
String:不是关键字
什么是字节?
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示
1B(byte,字节)=8bit(位)
字符:是指计算机中使用的字母,数字,字和符号
1bit表示1位
1Byte表示一个字节 1B=8b
1024B=1KB
1024KB=1MB
1024MB=1GB
整数扩展:二进制0b 十进制 八进制0 十六进制0x
int i1=10;
int i2=010;//八进制,表示8
int i3=0x10;//十六进制表示16
浮点数扩展:银行业务怎么表示?钱
BigDecimal:数学工具类
float:有限 离散 舍入误差 大约 接近但不等于
double:
最好不要用浮点型数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//false
float d1=232323232323232f;
float d2=d1+1;
System.out.println(d1==d2);//true
字符扩展:所有的字符本质还是数字
编码Unicode表U0000-UFFFF:97=a 2字节 0-65535
char c1='a';
char c2='中';
System.out.println(c1);//a
System.out.println((int)c1);//强制转换97
System.out.println(c2);//中
System.out.println((int)c2);//强制转换20013
转义字符:
布尔值扩展:
boolean flag = true;
if(flag==true){}//新手
if(flag){}//老手
//代码要精简容易读
3. 类型转换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低---------------------------------------------------------->高
byte,short,char----->int---->long---->float---->double
参与运算时,byte,short,char会自动转化为int
运算中,不同的类型的数据先转化为同一类型,然后进行运算.
强制类型转换:(类型)变量名 高–>低
int i = 128;
byte j = (byte)i;
System.out.println(i);//i=128
System.out.println(j);//j=-128,byte范围-128~127,内存溢出了
自动类型转换:低–>高
int i = 128;
double j = i;
System.out.println(i);//i=128
System.out.println(j);//j=128.0
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转为不相干的类型
-
在把高容量换到低容量时候,强制类型转换
-
转换的时候可能存在内存溢出,或者精度问题
//操作比较大的数的时候,注意溢出问题 //jdk7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; System.out.println(money);//1000000000 int years = 20; int total = money*years;//-1474836480,计算的时候溢出了 long total2 = money*years;//-1474836480,计算的时候默认是int,已经溢出转换之前已经存在问题 long total3 = money*((long)years); System.out.println(total3);//20000000000
4. 变量,常量
变量
- 变量是什么:就是可以变化的量.
- java是一种强类型语言,每个变量都必须声明其类型.
- java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域.
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型.
- 变量名必须是合法标识符.
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量:可以在局部变量直接使用,或者类名.类变量名.
- 实例变量:可以不初始化,数字默认值为0或者0.0;除了基本类型其余默认为null;布尔值默认false;
- 局部变量:必须先初始化再使用
public class Variable{
static int allClicks = 0;//类变量
String str = "hello";//实例变量
public void method(){
int i = 0;//局部变量
}
}
常量
- 常量(Constant):初始化后不能再改变值.不会变动的值.
- 所谓的常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变.
- final 变量名=值;
- 常量名一般都使用大写字符.
final double PI = 3.14;
变量的命名规范
- 所有的变量,方法,类名:见名知意
- 类成员变量:首字母小写小驼峰规则monthSalary
- 局部变量:首字母小写小驼峰规则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和大驼峰规则:Man,CoodMan
- 方法名:首字母小写小驼峰规则
5. 运算符
java语言支持如下运算符:优先级()
- 算术运算符:+,-,*,/,%,++,–(很多运算我们会使用Math工具类操作:例如Math.pow(2,3)表示2的3次方=8)
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&(两个为真则为真),||(一个为真则为真),!(非真即假)
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
&&和&,||和|区别:
& 不管前面的条件是否正确,后面都执行
&& 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好
如果&&运算符的第一个操作数是false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true,||运算符就返回true,无需考虑第二个操作数的值。但&和|却不是这样,它们总是要计算两个操作数。
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
面试题:2*8 = 16
<<左移*2>>右移/2
2<<3--->18
二进制:10左移三位10000
字符串连接符:+
int a = 10;
int b = 20;
a+b=30//数字
""+a+b=1020//字符串
a+b+""=30//字符串
三目运算符:
x?y:z
如果x为true,结果为y,否则为z.
6. 包机制,JavaDoc
包机制
- 为了更好的组织类,java提供了包机制,用户区别类名的命名空间.
- 包语句语法格式:package com.kuang;
- 一般利用公司域名倒置作为包名;www.baidu.com----->com.baidu.www
- 为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用"import"语句可完成此功能
import package1[.package2…].(className|*);
例如import com.kuang.base.Demon01;导入base包下的Demon01这个类
import com.kuang.base.*;导入base包下的所有类
JavaDoc
idea生成javadoc文档和命令行生成详细链接:https://blog.csdn.net/qq_43324113/article/details/106389385
-
javadoc命令是用来生成自己的API文档的
-
参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况
-
doc命令:javadoc -encoding UTF-8 -charset UTF-8 类名.java
基础部分必须理解完整!!!