Skip to content

Commit 786ec76

Browse files
committed
upload
1 parent 3d1937a commit 786ec76

11,271 files changed

Lines changed: 5088547 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,75 @@
1-
# java
1+
# java
2+
3+
​ 欢迎大家进入马士兵大学,希望大家在这里能够学到自己想要学习的技术,获得提升,找到理想的工作!
4+
5+
​ 本课程最贴合企业级需求的java基础课程,向上有完整的知识点覆盖,除了语言自身,数据结构、算法、设计模式、框架思想,多领域实现;向下,生动清晰阐述JVM原理,内存管理,垃圾回收算法,系统调用,多线程及各种锁实现源码分析,BIO/NIO/AIO到Netty源码原理,全程项目贯穿,推动理论实践,上课等于上班,经验超过传统教学后工作一年经验,夯实的课程内容保证你面试时气质、气场双优,同时我们设计课程更多的参考了架构师、大数据方向课程的依赖性,保证学有所用,用之不竭!
6+
7+
##### 为了方便大家更快的进入学习状态,并且能够更好的掌握我们学习的知识,现将资料进行统一整理,大家可以按照自己的实际情况选择性的进行学习:
8+
9+
​ 本课程相关软件下载地址:
10+
11+
https://pan.baidu.com/s/1G4mDP_JyJdIpqpTzgqZJ1Q ;提取码:05fu
12+
13+
##### 本课程共享目录地址:
14+
15+
https://github.com/bjmashibing/java
16+
17+
​ 在本仓库中所有的内容整理成单独的目录,每个目录中存放对应的资料,大家需要下载的时候去指定的目录下载即可,现将目录每个目录的名称目录展示如下:
18+
19+
```
20+
javase : java基础语法部分
21+
database : 数据库部分
22+
javaweb : java web部分
23+
```
24+
25+
​ 每个具体阶段的目录又按照如下目录存放资料,大家需要哪部分下载即可。
26+
27+
```java
28+
code //存放上课使用的代码
29+
iamge //存放markdown文档中使用的图片,注意,下载到本地之后,需要将文档中的图片路径换成自己的图片路径,这样才能正常显示,否则图片显示不出来,在github中是可以直接查看的
30+
note //存放上课使用的笔记文档或者markdown文档
31+
ppt //存放上课使用的ppt文件,已转换成对应的pdf,避免不同的软件打开后排版错误
32+
作业 //存放上完课之后的作业,包含答案,但是作业只到继承结束,原因是继承之后更多的是代码,没有理论上的练习题了
33+
```
34+
35+
##### 注意:
36+
37+
​ 1、希望大家详细参阅上面的描述,以方便找到自己要下载的资料
38+
39+
​ 2、所有的课程相关的资料都是同步更新的,每节课上完之后会上传对应的资料
40+
41+
课程列表名称(已上完的课程):
42+
43+
```
44+
1 开班典礼 2019/8/6 20:00-22:00
45+
2 Java基本介绍、环境搭建、HelloWorld程序 2019/8/10 15:00-17:00
46+
3 Java基础语法:标识符、保留字、数据类型、运算符 2019/8/10 20:00-22:00
47+
4 Java二进制运算、数据类型的转换、分支结构 2019/8/11 15:00-17:00
48+
5 Java循环结构、Scanner类 2019/8/17 15:00-17:00
49+
6 Java递归算法、数组讲解、排序算法 2019/8/17 20:00-22:00
50+
7 Java面向过程与面向对象编程思想、类与对象 2019/8/18 15:00-17:00
51+
8 Java面向对象之局部变量和成员变量、引用类型、this、static 2019/8/24 15:00-17:00
52+
9 Java面向对象之代码块、Package、Import、封装 2019/8/24 20:00-22:00
53+
10 Java面向对象之继承、Super、重写、抽象类、抽象方法 2019/8/25 15:00-17:00
54+
11 Java面向对象之Object、多态 2019/8/31 15:00-17:00
55+
12 Java面向对象之接口 2019/8/31 20:00-22:00
56+
13 Java面向对象之内部类、异常简单介绍 2019/9/1 15:00-17:00
57+
14 Java异常及常用类(包装类、String) 2019/9/7 15:00-17:00
58+
15 Java常用类、Java集合框架(Collection) 2019/9/7 20:00-22:00
59+
16 Java集合框架(ArrayList、LinkedList、Vector、Set、HashSet) 2019/9/8 15:00-17:00
60+
17 Java集合框架(HashSet、TreeSet)以及泛型 2019/9/21 15:00-17:00
61+
18 Java集合框架(HashMap、TreeMap)及源码分析 2019/9/21 20:00-22:00
62+
19 Java集合框架(Collections、Arrays)及File类讲解 2019/9/22 15:00-17:00
63+
20 IO流(字节流、字符流、输入流、输出流) 2019/9/22 20:00-22:00
64+
21 IO流(标准输入、标准输出、打印流等) 2019/9/28 15:00-17:00
65+
22 多线程-线程与进程、线程的实现方式 2019/9/28 20:00-22:00
66+
23 多线程-线程的生命周期、线程同步与死锁 2019/9/29 15:00-17:00
67+
24 多线程-生产者消费者问题、线程池 2019/10/12 15:00-17:00
68+
25 网络编程-IP、TCP、UDP1 2019/10/12 20:00-22:00
69+
26 网络编程-IP、TCP、UDP和lambda表达式 2019/10/13 15:00-17:00
70+
27 jdk新特性-lambda表达式 2019/10/19 15:00-17:00
71+
28 jdk新特性-stream api及自定义注解 2019/10/19 20:00-22:00
72+
29 javase复习 2019/10/20 15:00-17:00
73+
......持续更新
74+
```
75+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
常量和变量
3+
常量:在程序运行过程中,值不会发生改变的量叫做常量
4+
变量:在程序运行过程中,值会发生改变的量叫做变量
5+
6+
变量:变量名称,变量类型,作用域
7+
1、先声明,后赋值
8+
int a;声明
9+
a =10;赋值
10+
2、声明+赋值
11+
常量:
12+
使用final关键字修饰的变量称之为常量或者叫做最终常量,表示不可修改
13+
注意:
14+
在类内,方法外定义的变量叫成员变量,会存在默认值
15+
在方法内,定义的变量必须要进行初始化操作,不会存在默认值
16+
在一行中可以定义多个变量,但是不推荐,每个变量最好单独一行
17+
给变量赋值过程中,变量的值成为常量
18+
*/
19+
public class ConstantAndVar{
20+
21+
static int d ;
22+
public static void main(String[] args){
23+
//声明
24+
int a;
25+
//赋值
26+
a =10;
27+
//声明+赋值
28+
//int b = 20;
29+
//int c;
30+
//System.out.println(d);
31+
//int x=10,y=20;
32+
33+
System.out.println(a);
34+
a=30;
35+
System.out.println(a);
36+
final int c = 20;
37+
System.out.println(c);
38+
c=30;
39+
System.out.println(c);
40+
41+
42+
43+
44+
45+
}
46+
47+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
数据类型
3+
Java是一种强类型的语言
4+
强类型表示,变量在定义的时候必须显式的声明类型是什么 java
5+
弱类型表示,变量会根据值自己去推断,不需要指定类型是什么 js,python,scala
6+
java数据类型
7+
基本数据类型(4类8种)
8+
整数类型:byte short int long(不同类型表示不同的长度)
9+
byte: 使用一个字节存储,因此范围是 -128-127
10+
short: 使用两个字节存储,因此范围是 -32768-32767
11+
int: 使用四个字节存储,因此范围是 正负21亿
12+
long: 使用八个字节存储,因此范围是。。。。。。
13+
注意:
14+
1、在使用整型类型的时候,默认都是int类型,
15+
2、如果需要使用long类型的话,必须要在数字的后面添加L,建议使用大写,小写容易跟1混淆。
16+
浮点类型: float double 小数类型:使用小数点 使用科学计数法
17+
float: 单精度,精度可以精确到小数点后7位
18+
double: 双精度,精度是float的双倍
19+
注意:
20+
1、默认浮点类型是double类型
21+
2、使用float的时候,数字后要添加f
22+
3、浮点类型并不能表示一个精确的值,会损失一定的精度
23+
字符类型: char
24+
占用2个字节,使用的时候使用''表示
25+
布尔类型: boolean
26+
只有true和false两值,在存储的时候占1位
27+
引用数据类型:
28+
29+
接口
30+
数组
31+
32+
*/
33+
public class DataTypeDemo{
34+
35+
public static void main(String[] args){
36+
//byte b = 128;
37+
//short s = 44444;
38+
//int i = 1111111111111;
39+
//long l = 1213123123123123L;
40+
//int a = 10;
41+
42+
//int a = 3111111111;
43+
//long b = 3111111111L;
44+
45+
float f1 = 2.1223123234123131F;
46+
float f2 = 2.122312331231312123F;
47+
System.out.println(f1==f2);
48+
49+
//表示一个字符
50+
char a = 'A';
51+
//表示一个字符串,表示一个字符序列
52+
String s = "A";
53+
System.out.println(a==65);
54+
char ch = '\t';
55+
System.out.println("["+ch+"]");
56+
57+
}
58+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
使用命令行的方式执行的时候,cmd的默认编码格式是GBK
3+
因此在输入中文的时候需要设置文件的编码格式位ANSI,不会出现乱码错误
4+
5+
注意:
6+
1、java文件的名称必须跟public class的名称保持一致
7+
2、一个java文件中可以包含多个class,凡是public class只能有1个
8+
3、public static void main(String[] args)是所有java程序的入口,如果向
9+
执行对应的java代码,则必须要添加如下方法,且格式是固定
10+
4、main方法中参数列表可以支持多种写法:String[] args,String [] args,String args[]
11+
5、main方法中参数的名称无所谓,但是一般写成args
12+
6、java代码在编写的时候,每行结尾的时候需要使用;结束
13+
7、java代码的代码块需要使用{}括起来,前后匹配
14+
*/
15+
/*java中的注释分为三类*/
16+
// 1、单行注释:
17+
/* 2、多行注释:*/
18+
/**
19+
*3、文档注释:
20+
*/
21+
public class HelloWorld{
22+
23+
public static void main(String aabb[]){
24+
System.out.println("欢迎大家学习java");
25+
}
26+
}
27+
28+
class Test{
29+
30+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
标识符命名规范
3+
硬性规定:
4+
1、标识符必须以字母,下划线或者美元符号开头
5+
2、其他部分必须是字母,数字,下划线或者美元符号,但是不能出现特殊符号
6+
3、标识符大小写敏感
7+
4、不能是java的关键字或者保留字(留给系统使用的表示特殊含义的字符串)
8+
常规建议:
9+
1、驼峰标识
10+
1、类名,接口名称在命名的时候要首字符大写
11+
2、方法,变量命名的时候首字符要小写
12+
3、多个单词拼接表示一个标识符的时候,每个单词的首字符都大写
13+
2、见名知义
14+
通过标识符的名称能知道代表的含义
15+
千万不要写拼音
16+
*/
17+
public class IdentifiedDemo{
18+
public static void main(String[] args){
19+
int _a = 10;
20+
int $b=20;
21+
//int a+b=30
22+
int a = 10;
23+
int public = 20;
24+
int getValueById = 12;
25+
}
26+
}
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
2+
/*
3+
运算符:
4+
算术运算符: +,-,*,/,%,++,--
5+
6+
赋值运算符 =
7+
java中=表示赋值运算符,==表示相等的操作
8+
扩展赋值运算符:+=,-=,*=,/=
9+
10+
关系运算符: >,<,>=,<=,==,!=
11+
用来比较两值的关系,
12+
逻辑运算符: &&,||,!
13+
逻辑运算符一般两边的值不是具体的值,而是表达式
14+
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
15+
条件运算符 ?:
16+
17+
*/
18+
public class OperatorDemo{
19+
20+
public static void main(String[] args){
21+
int a = 1;
22+
int b = 2;
23+
24+
//算数运算符
25+
System.out.println(a+b);
26+
System.out.println(a-b);
27+
System.out.println(a*b);
28+
//取整除,或者取商
29+
System.out.println(a/b);
30+
//取余数,或者取模
31+
System.out.println(a%b);
32+
33+
//单目运算符
34+
//++,表示在变量原有的基础上+1,谁在前,先运算谁
35+
System.out.println(a++);
36+
System.out.println(++a);
37+
//--,表示在变量原有的基础上-1,谁在前,先运算谁
38+
System.out.println(a--);
39+
System.out.println(--a);
40+
//6 ????
41+
System.out.println(++b+b++);
42+
43+
//扩赋值运算符
44+
int c = 1;
45+
//两写法意义一样,表示加2的基本操作
46+
c = c + 2;
47+
c += 2;
48+
//类型转换问题,d是byte,d+1整体变成int类型,需要将int类型的值转换位byte,会有精度算是,因此需要强制转换
49+
//建议在进行操作的时候使用扩赋值运算符
50+
byte d = 10;
51+
//d = d+1;
52+
d+=1;
53+
54+
//关系运算符:返回的值是布尔类型,也就是说只有true和false两情况
55+
System.out.println(1>2);
56+
System.out.println(1<2);
57+
System.out.println(1>=2);
58+
System.out.println(1<=2);
59+
System.out.println(1==2);
60+
System.out.println(1!=2);
61+
System.out.println("-----");
62+
//逻辑运算符
63+
/*
64+
&&:表示短路与,两边表达式中只要有一个是false,整体结果就是false
65+
两边表达式从左向右开始对比,如果左边的表达式是false,右边不需要进行判断
66+
||:表示短路或,两边表达式中只要有一个是true,整体结果就是true
67+
两边表达式从左向右开始对比,如果左边的表达式是true,右边不需要进行判断
68+
!:取反,如果是true,取反是false,如果是false,取反就是true
69+
&:与运算符,但是两都会参与运算
70+
|:或运算符,两边都会参与运算
71+
*/
72+
System.out.println(3>5 & 3<4);
73+
System.out.println(3>5 | 3<4);
74+
System.out.println(!true);
75+
System.out.println(!false);
76+
77+
//位运算符:只能操作数值,操作的时候会转成二进制进行运算
78+
System.out.println(4 & 5);
79+
System.out.println(4 | 5);
80+
System.out.println(4 ^ 5);
81+
//移码,补码,原码,反码 ????
82+
System.out.println(~4);
83+
//左移表示乘以2,右移表示除以2
84+
System.out.println(2<<3);
85+
System.out.println(16>>2);
86+
87+
//条件运算符或者三目运算符
88+
//使用的时候需要跟一个表达式,表达式如果是true,则返回?后的结果,
89+
//如果是false,则返回:后的结果
90+
System.out.println(3>2?3:2);
91+
System.out.println(false?false:true?false:true);
92+
93+
94+
/*
95+
96+
基本数据类型之间的转换
97+
自动转换(隐形转换):
98+
强制转换
99+
100+
注意:
101+
1、在进行算术运算操作的时候,必须要求数据类型一致,否则无法操作
102+
2、在运算过程中,如果两个值得类型不一致,会自动将小的类型转换为大的类型
103+
3、在运算过程中,可以手动强制转换,将大的类型转换为小的类型
104+
实现方式,(datatype)
105+
4、强制转换,会发生精度损失,结果可能不准确
106+
*/
107+
byte bb = 10;
108+
int aa = 200;
109+
byte cc;
110+
cc = (byte)(aa+bb);
111+
System.out.println(cc);
112+
113+
114+
115+
116+
117+
118+
119+
120+
121+
122+
123+
124+
125+
126+
127+
128+
129+
}
130+
}

0 commit comments

Comments
 (0)