2021届_还好
学习规划(2023.3.9)
课程大纲: 所有课程大纲入口 ,PS:你要的东西,课程大纲基本都会有哈,需要学啥记得来课程大纲看看。
由于你是社招的,所以你到时候需要多做点项目,然后你编程也没啥基础,一开始入门容易学了忘,你前期可以跟着做一做练习,后具体安排如下
1、Java理论:先学习 Java基础,学的时候,请严格按照我说的来,因为课程内容很多,但是你们有些原理不需要学,每个目录都有说明哈,之后在学习 Java进阶,Java进阶那里,你没学过数据结构的话,源码分析有点难,有点难,看不懂可以不理哈,问题不大的,后面基于面试去复习。课程有点长,不过能够跟着吃下来,后面面试也会容易很多。
划重点:为了学习更快,请学习的时候,按照我网站的说明来,每个目录都会说明需要掌握哪些,该跳过的就跳过哈,不要担心自己忘了,然后里面有很多作业和实战,你感兴趣就跟着做一下哈。
2、框架与项目:直接按照这个步骤学:web学习路线整合(框架+项目),等你做完springboot项目,其实就可以慢慢投递简历了,在之后估计还得做微服务的项目,但是其实做完springboot就可以慢慢投递了。
注意点:学的时候也按照我说的来哈,比如Javaweb快速学,忘了没事,直接学习框架,ssm框架学习我网站上的,比较简短,之后项目的话,你就做 电商支付+牛客网论坛 ,在之后在考虑微服务的内容。。
3、八股文:等你做了项目,再来学习八股文,你就按照 八股文复习建议 这个复习哈。记得做一下简单笔记,或者第二遍复习再做也行。主要就是 java集合+JVM+mysql+redis这
4、算法:先不学。
学习顺序:就直接按照 1=》2=〉3 的顺序学就可以了。
做完了 1 和 2,其实就可以写简历了,写完简历发我修改,主要看看自己的时间。然后记得来每周打卡学习进度哈,比如像他们这样:23与22届做的比较好的成员示例
有什么问题记得随时私聊帅地
课程大纲: 所有课程大纲入口
每周学习跟进
第一周20230310-20230312
2、变量入门 int,double,char,string,boolean
变量三要素:数据类型+变量名+值
某个变量在同一类型下不断变化,在同一作用域下(class)不能重名,即不能有两个变量a,不同域(即不同的class)中可以
加法
4.数据类型(0311)分为两大类:基本类型8种和引用类型(类class,接口interface,数组[])
数值:1.整型:byte(1),short(2),int(4),long(8)
2.浮点型:float(4),double(8)
字符型:char(2),布尔:boolean(1),存放true,flase

浮点数=符号位+指数位+尾数位
5.数据类型转换

5.1有多种类型的数据进行运算,系统会自动将所有数据转化成容量最大的数据类型然后进行计算
精度大的数据类型不能转化成精度小的类型,小到大可以
byte,short与char不能转换
byte,short与char三者随意计算都是转换成int,
(例如byte+byte=int;byte+short=int)
boolean不参与类型的自动转换
自动提升原则:表达式结果自动提升为操作数中最大的类型
5.2强制类型转换:将精度大的转换成小的(逆向),转换符() ,会造成精度降低, 例如int i = (int)1.9;
细节:转换符()只对最近的数有效,算数又很多数据操作需加括号提升优先级,例如int i =(int)(103.5+61.5)将值44.0变成44
基本类型转string 后面加”” 例如:int i = 100; string s = i + “”; string转基本类型:调用Parsexx()方法
7.运算方法
% 取模 公式a-a/b*b
表达式使用:自增(前++ ++i先自增后赋值,后++ i++先赋值后自增)
关系运算符
逻辑运算符

8.标识符
命名规则:有英文字母,数字,特殊符号组成,严格区分大小写(大小写代表两种不同的变量),不可以使用关键字和保留字但可以包含,标识符不能包含空格
命名规范:包名-小写;类名、接口名-所有单词首字母大写
变量名、方法名-第一个单词首字母小写,第二,第三之后的单词首字母大写,例如studentName 常量名-所有字母全大写
关键字的字母全小写
9.进制转换和位运算
11.分支
Scanner用法
一导入Java.util.Scanner包 import java.util.Scanner;
二创建Scanner类的对象 Scanner sc = new Scanner(System.in);
三是创建一个变量来接收数据 int a=sc.nextInt();double b=sc.nextDouble();
20230313-20230319
12.switch
13.for循坏
14.while循坏
15.嵌套循环
16.break
17.contine和return
19.数组
数组的引用传递指的是地址传递,int a2[] = int a1[] 两个数组指的时同一个地址即同一个空间,数据空间是共享的,一个数组的里的数据发生改变,另外那个也会变化,(理解成一个人的大名和小名,不管教导那个名字都是同一个人)

数组拷贝:两个数组的数据空间是独立的,是不相同的,即地址不同。
用for循环进行拷贝,两个数组的数据修改对另外一个没影响
20.排序与查找
21.二位数组


23.类class与对象Object
类class:
1.属性/成员变量/field字段
2.方法

Person p1 = new Person(); p1指的是对象的名字,new Person()指的才是一个Person对象
class Person{
string name; //成员变量即属性
int age;
}
访问属性:对象名.属性名 例如person.age
对象分配机制如下图:

栈:一般存放基本数据类型(局部变量)
堆:存放对象
方法区:常量池,类加载信息
创建对象的流程:
1.先加载xx类信息,(属性,方法)只会加载一次
2.在堆中会分配空间,进项默认初始化(int为0,double为0.0, string为null,boolean为flase)
3.把地址赋给xx,xx就指向了对象
4.进行指定初始化 例如xx.name = “jack”
24.方法

20230320-20230327
24.方法定义
public 返回值的类型 方法名(形参列表){ //括号里为方法体
语句;
return 返回值;
}
25.克隆和递归

26.递归案例
27.重载详解
28.可变参数及作用域
20230328-20230402
29.构造器和对象创建详解


30.this详解

32.IDEA入门
33.包和访问修饰符
34封装和继承
封装过程1、将属性私有化private 2、提供一个公共的set方法,用于对属性进行判断并赋值 3、提供一个公共的get方法,用于获取属性的直即return
继承 class 子类 extends 父类{
}
细节:1、子类继承了父类的所有属性和方法,但私有的属性和方法不能在子类中直接访问,需要在父类中建公共的public方法然后在子类中调用即可。例如public 数据类型 getXxx()
2、子类会调用父类的构造器,完成父类初始化
3、
4、指定调用父类的某个构造器,显示调用即super(参数列表)
5、super在使用时需要放在构造器的第一行,只在构造器中使用
6、super和this不能同时在构造器中使用
7、Object是所有类的基类
8、父类构造器的调用不限于直接父类,将一直追溯到Object基类
9、子类最多之能继承一个父类,单继承机制
继承的本质:

System.out.println(son.mane);//返回大头儿子
System.out.println(son.age);//返回父类的39
System.out.println(son.hobby);//返回父类的父类的旅游
查找:
(1)首先会看子类是否有这个属性
(2)如果子类有这个属性,并且可以访问,则返回信息
(3)如果子类没有这个属性,就需要看父类有没有这个属性(如果父类有这个属性并且可以访问,就返回信息)
(4)如果父类没有就按照(3)的方式继续找上级父类,直至找到Object
20230403-20230409
35.super
36.方法重写
37.多态
38.equals 对引用,判断对象是否相同(就是地址)
39.hashCode toString finalize
40.断点调试
20230410-20230416
1.类变量即静态变量: 访问修饰符 static 数据类型 变量名;
同一个类的所有对象实例共享,在类加载时就生成了
class A{
public static int a = 0;
}
如何访问:类名.变量名(一般这样用) 或者 对象名.变量名
非静态变量/实例变量/普通变量 去掉static,只能有每个对象独享,类不能使用
类方法: 访问修饰符 static 数据类型 方法名();
类方法的调用:类名.方法名 或者 对象名.方法名
注意细节:静态方法不可以使用和对象有关的关键字,比如this,super等,但普通方法可以使用
静态方法只能使用静态变量和其他静态方法,非静态方法可以使用静态变量、其他静态方法、非静态变量、其他非静态方法(都得遵守访问权限规则)
普通方法与对象有关,需要使用对象来访问
2.main方法
Java虚拟机调用类的main方法,访问权限是public
Java虚拟机执行类的main()方法时不必创建对象,所以方法必须为static
3.代码块
3.1静态代码块static{}随着类的加载而执行只会执行一次;普通代码块每创建一个对象都执行一次
3.2类加载的情况(非常重要)
创建对象实例(new) 例如A a = new A();
创建子类对象时,父类也会被加载(先执行父类的代码块,在执行子类的代码块 A extends B
使用类的静态成员(静态属性和方法) class{ public static int a = 999;{代码块};}
3.3普通代码块,在创建对象时会被隐式的调用,被创建一次就调用一次。如果只是使用类的静态成员时,普通代码块不会被调用。关键在于是否被创建即new,与加载无关,静态看是否加载创建必加载
3.4创建一个对象,一个类中的调用顺序
先静态(静态属性,方法,代码块按书写的顺序)
后普通(属性,方法,代码块按书写的顺序)
再构造器
3.6创建一个子类对象
父类的静态成员和静态代码块(优先级一样,按照定义顺序执行)
子类的静态成员和静态代码块(优先级一样,按照定义顺序执行)
父类的普通成员和普通代码块(优先级一样,按照定义顺序执行)
父类的构造器
子类的普通成员和普通代码块(优先级一样,按照定义顺序执行)
子类的构造器
3.7静态代码块只能调用静态成员(静态属性和静态方法),普通代码块调用任意成员
静态变量,方法,代码块,比较重要的就是要掌握他们的作用范围,生命周期,区分他和实例变量的不同。
1全局变量,分配的内存在静态存储区内存上面,其作用域是全局作用域,也就是整个程序的生命周期内都可以使用,同时,有些程序并不是由一个源文件构成的,可能有许多个源文件构成,全局变量只要在一个文件中定义,就可以在其他所有的文件中使用,当然,必须在其他文件使用extern关键字声明该变量。
2局部变量,分配内存是分配在栈存储区上的,其作用域也只是在局部函数内,在定义该变量的函数内,只要出了该函数,该局部变量就不再起作用,该变量的生命周期也只是和该函数同在。
3全局静态变量,分配的内存与全局变量一样,也是在静态存储内存上,其生命周期也是与整个程序同在的,从程序开始到结束一直起作用,但是与全局变量不同的是,全局静态变量作用域只在定义它的一个源文件内,其他源文件不能使用它。
4局部静态变量,分配的内存也是在静态存储内存上的,其第一次初始化后就一直存在直到程序结束,该变量的特点是其作用域只在定义它的函数内可见,出了该函数就不可见了
4.单例模式和final
5.抽象类
6.接口
7.四种内部类
8.枚举enum
9.注解
11.异常
12.try
catch
throws
13.异常
14.8大常用类
15。integer类
16.thring
20230417-20230423
阳了–头疼一星期未学习
20230424-20230430
17.

18.
19.常用类
20.集合
20230501-20230507
21.ArryList和vector
22.HashSet和LinkedHashSet
刷Java编程题
5月是看进阶的集合那里,list,map源码看了两遍,自己看源码,看的一般般吧
20230605-20230611
学完javaWeb,mybatis,学的懵懵比比的
Spring的IoC,依赖注入property,注解(主要是@Resource)
<!-- ref注入依赖对象 -->
20230612-20230618
学了springMVC 学的感觉不知道人在讲啥