Java后端开发学习路线
2022-06-05 20:17:10   80  举报             
     
         
 AI智能生成
  Java后端开发学习路线包括以下几个阶段:1. Java基础语法和面向对象编程;2. 数据库基础知识和SQL语句编写;3. Web开发技术,如HTML、CSS、JavaScript等;4. Servlet和JSP技术,用于构建Web应用程序;5. Spring框架,用于管理Java应用程序的依赖关系和事务处理;6. Hibernate框架,用于实现对象关系映射(ORM)和持久化数据;7. MyBatis框架,用于简化数据库操作;8. Spring Boot框架,用于快速构建基于Spring的应用程序;9. 分布式系统和微服务架构。
    作者其他创作
 大纲/内容
  编程基础    
     Java语言(javaSE)    
     语言基础     图形化(Swing)/省略      
     基础语法    
     常量和变量    
     注释    
     //     /**/   /***/  
     关键字  
     常量    
     字面值常量    
     5大普通常量(整,小,串,字符,布)+空常量  
     自定义常量    
     finnal  
     变量    
     概念    
     在程序的运行过程中其值可以在某个范围发生改变的量  
     变量的本质是内存中的一小块区域被  
     数据类型  变量名 = 初始化值  
     数据类型(限制变量的变化范围)  
     数据类型    
     基本类型    
     byte:一个字节 -2^7~2^7-1     -128~128(十进制)  
     short:两个字节  两个字节 -2^15~2^15-1  
     int:4个字节 -2^31~2^31-1  
     long:8个字节  -2^63~2^63-1  
     double:8个字节  1.7*10^(-308)~1.7*10^(+308)  
     char:2个字节  0~2^16-1  
     boolean:一个字节 true,false  
     float:4个字节  3.4*10^(-38)~3.4*10^(+38)  
     (优化内存)    
     计算机中最小的储存单元是字节(Byte“B”),每个字节包含8个位(bit“比特”)  
     1B = 8bit    1KB = 1024B  1MB = 1024KB  
     引用类型    
     类  
     接口  
     数组  
     类型转换    
     自动类型转换    
     小转大  
     强制类型转换    
     大转小“目标类型 变量名 = (目标类型)大类型数据”  
     标识符  
     运算符    
     算数运算符    
     +  -  *  /   %  ++  --(表达式类型就是表达式结果类型)  
     '0'=48,'9'=57.'A'=65,'Z'=90.'a'=97,'z'=122  
     赋值运算符    
     基本赋值运算符    
     =  
     扩展赋值运算符    
     好处:省略了强制类型转换的操作  
     +=  
     -=  
     /=  
     *=  
     %=  
     关系运算符    
     ==  
     <  
     >  
     >=  
     <=  
     !=  
     逻辑运算符    
     && : 逻辑与,并且  
     || : 逻辑或,或者  
     ! : 逻辑非,表示否定  
     三元运算符    
     (关系表达式)?表达式1:表达式2;  
     流程控制    
     顺序结构    
     从上往下,从左往右  
     选择结构    
     if区间值判断  
     switch固定值判断    
     switch(值)  
     循环结构    
     for  
     while  
     do while  
     方法(函数)    
     1.方法名  
     2.返回值类型  
     3.参数列表(引用类型或基本类型)  
     4.修饰符  
     方法调用(注意输出)  
     方法重载    
     方法名相同,其他不同        案例:全参构造,空参构造  
     数组    
     概念    
     存储同一种数据类型多个元素的容器  
     可以是基本类型也可以是引用类型  
     格式    
      数据类型 []  数组名 = new 数据类型[长度]  
     数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,.....}  
     数据类型 [] 数组名 = {元素1,元素2,.....}   
     面向对象    
     抽象类    
     abstract  
     方法必须全部重写  
     封装    
     定义    
     将一系列相关事务共同的属性(变量)和行为(方法)提取出来,放到一个类中,隐藏(private)对象的属性和实现细节, 仅对外提供公共的访问方式(set,get)  
     绝不能让其它类中的直接访问类中的数据(变量)程序仅仅通过对象的方法与对象的数据进行交互(this)  
     继承    
     extends  
     子类  对名 = new 子类  
     体现“是一个”  
     多态    
     父类 对名 = new 子类  
     重写  
     接口    
     一个功能  
     接口名  对象名 = new 实现类  
     普通类,抽象类,必须重写所有方法  
     变量为“公共的静态的常量”  
     public abstract  
     implements  
     API常用类    
     Object    
     Object()//构造方法  
     hashCode()//获取对象的哈希码值  
     equals()//比较两个对象是否相等  
     toString()//获取对象的字符串形式  
     getClass()//获取对象的字节码文件  
     Scanner    
     Scanner(InpuStream)  
     hasNextXxx()//判断是否有下一个输入项  
     nextXxx()//返回下一个输入项  
     nextLine()//String形的,获取下一“行”数据  
     next()//获取下一“个”输入 项  
     String    
     String(byte[])  
     String(char[])  
     equalsIgnoreCase(String)  
     startWith(String)  
     isEmpty()  
     length()  
     charAt(int )  
     indxOf(String)  
     lastIdexOf(String)  
     Substring(int)  
     substring(int,int)  
     getBytes()  
     toCharArray()  
     ValueOf(...)  
     replace(old,new)  
     split(String)  
     trim()  
     equals(String)  
     StringBuilder    
     StringBuilder()  
     StringBuilder(String)  
     append()  
     toString()  
     reverse()  
     基本类的包装类    
     装箱 ,拆箱  
     Integer.parseInt(String)  
     Double.parseDouble(String)  
     .....................  
     APL文档网址  
     Java简单的程序设计的程度,在另一方面说明了API的使用程度   
     关键字    
     break(终止一层循环)  
     continue(结束本次循环,继续下次循环)  
     return(结束整个方法)  
     集合    
     单列集合    
     collection接口    
     Iist集合(接口)    
     ArrayList(实现类)    
     应用(实例化)List l = new ArrayList()(多态)  
     特点:可重复,有序(存取顺序相同)  
     Set集合(接口)    
     HashSet(实现类)  
     不可重复,无序  
     Set <T> s = new HashSet<>();  
     唯有重写equals和hashCode才可去重  
     add();get(x);  
     collections(工具类)    
     sort(List<T(类型)>)   根据元素的自然顺序,将指定列表按升序排序  
     max(Collection<T>) 返回集合的最大元素  
     reverse(List<T>) 反转List集合元素  
     shuffle(List<T>)  使用默认的随即源随机置换指定的列表  
     双列集合    
     Map集合(接口)    
     HashMap(实现类)  
     元素由键值对(Entry)构成  
     key(键“唯一性”)不可以重复,value(值)可以重复  
     Map<T1,T2> m = new HashMap<>();  
     put();keySet();get();iterator();  
     使用集合的步骤    
     1,创建集合对象  
     2,创建元素对象  
     3,将元素对象添加到集合对象中  
     4,遍历集合  
     增强for循环    
     格式  
     迭代器    
     iter  
     转型  
     迭代器对象: Iterator it = list.iterator();//再遍历集合的同一时刻不可添加或者删减元素(不可并发修改)  
     列表迭代器对象: ListIterator it = list.listIterator();必须调用列表迭代器的方法实现  
     列表迭代器可避免并发修改异常  
     hasNext()   next()  
     泛型    
     即任意类型,又叫参数类型,对具体类型起到辅助作用  
     表示该集合中存放指定类型的元素  
     1.类型安全        2.代替了手动类型转换  
     泛型一般只和集合类结合使用  
     演示:  List<String> t = new ArrayList<>();  
     异常    
     概述    
     即非常情况,异常就是程序出现的错误  
     分类    
     Throwable(顶层)    
     (可能)Exception(可预料的)    
     合理的应用程序可能需要捕获的问题  
     (错误)Error(不可预料的)    
     合理的应用程序不应该捕获的问题  
     处理方式    
     JVM默认方式    
     在控制台打印错误信息,并终止程序  
     开发中处理方式    
     try.....catch(finally)    
     捕获,自己处理  
     finally高于retuen  
     throws    
     抛出,交给调用者(即调用方法者)自己处理  
     ALT+回车  如果一个类或接口中的方法没有抛异常,那么他们的子类或实现类重写的方法就不能抛异常,必须要自己trycatch  
     IO    
     概念“作用    
     用来做数据传输的一项技术,方式  
     I(Input),O(output)  
     输入流:读数据          输出流:写数据  
     在本地磁盘和网络上操作数据  
     分类    
     流向    
     输入流(读取数据)  
     输出流(往外写数据)  
     操作方式    
     字符流    
     Reader(抽象类)    
     FileReader类(普通字符输入流)  
     BufferedReader类(高效字符输入流)  
     Writer(抽象类)    
     FileWriter类(普通字符输出流)  
     BufferedWriter类(高效字符输出流)  
     字节流    
     InputStream(抽象类)    
     FileInputStream类(普通字节输入流)  
     BufferedInputStream类(高效字节输入流)  
     OutputStream(抽象类)    
     FileOutputStream类(普通字节输出流)  
     BufferedOutputStream类(高效字节输出流)  
     File类    
     概念    
     文件,文件夹,一个File对象代表代表磁盘上的某个文件或文件夹  
     构造方法    
     File(String pathname)    
     :\\x\\  
     :/x/  
     File(String parent,String child)  
     File(File parent,String child)  
     成员方法    
     创建    
     createNewFile():创建文件  
     mkdir()“单级”,mkdirs()“多级”,:创建目录(文件夹)  
     如果不存在就创建,返回true。否则不创建,返回false  
     判断    
     isDirectory():判断File对象是否为目录“文件夹 ”  
     isFile(),:判断File对象是否为文件  
     exists():判断File对象是否存在  
     获取    
     getAbsolutePath():    
     获取绝对路径  
     绝对路径:以盘符开头的路径  
     getPath();                  
     获取相对路径  
     相对路径:一般是相对于当前项目路径来讲的  
     getName();    
     获取文件名  
     list();    
     获取指定目录下所有文件名或者文件夹名称数组(String)"一级"  
     listFiles();    
     获取指定目录下所有文件或者文件夹(名字)File数组(File)”多级,多功能“  
     字符流    
     读    
     Reader r = new FileReader("路径");    
     方法  
     异常处理;IOException  
     int x = r.read();     (注意:read出现一次读写一次)读取一个字符,返回该字符代表的整数,若到达流的末尾,返回—1  
     r.close();关闭资源  
     char [] chs = new char[长度];  
     int len = r.read(chs);一次读写一个字符数组 (返回读到的有效字符的个数)  
     写    
     Writer w = new FileWriter("文件名")    
     方法  
     异常处理;IOException  
     void write(int ch)   :一次写一个字符  
     void write(char[]  chs,int indx,int len):一次写一个指定的字符数组(indx起始字符)  
     void write(String str):一次读写一个字符串  
     w.close();释放资源  
     拷贝文件(Rreader读Writer写)一次读一个字符
    
     代码  
     如果目的地文件不存在,程序会自动创建  
     拷贝文件(Rreader读Writer写)一次读一个字符数组    
     代码  
     字符缓冲流Buffered    
     普通用法(拷贝文件)  
     一次读写一行  
     字符流只能拷贝纯文本文件  
     普通字节流(拷贝文件)    
     一次读写一个字节  
     一次读取一个字节数组  
     高效字节流(拷贝文件)  
     用不同方式实现字节流,字符流读写文件  
     JVM虚拟机    
     类加载机制  
     字节码执行机制  
     JVM内存模型  
     GC垃圾回收  
     JVM性能监控与故障定位  
     JVM调优  
     概念    
     定义    
     1.在软件层面屏蔽不同操作系统在底层硬件与指令的区别  
     2.Java程序的运行环境(Java二进制字节码的运行环境)  
     好处    
     1.一次编写,到处运行  
     2.自动内存管理  
     3.数组下标越界检查  
     4.多态  
     组成    
     1.类装载子系统  
     2.运行时数据区(内存区)    
     1.元空间(方法区)  
     2.堆  
     3.虚拟机栈(线程)    
     概念:线程运行需要的内存空间,方法运行时使用的内存  
     一个线程需要一个虚拟机栈,多个线程需要多个虚拟机栈  
     一个栈内是由多个栈帧组成(一个栈帧就代表一个方法的调用运行时需要的内存(先进后出))  
     每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法  
     如果方法内局部变量没有逃离方法的作用访问,他是线程安全的  
     如果是局部变量引用了对象,并逃离方法的作用方法,需要考虑线程安全  
     4.程序计数器(寄存器)    
     作用:记住下一条jvm指令的执行地址,然后解释器直接根据计数器取下一条jvm指令  
     特点:    
     1.线程私有,每个线程都有自己的计数器  
     2.不会出现内存溢出  
     5.本地方法栈  
     3.字节码执行引擎  
     反射    
     基本概念    
     在程序运行期间,根据类的字节码文件对象来获取类的成员并使用的一项技术  
     类加载器    
     概念:负责将类的字节码文件(.class)加载到内存中,并生成对应的Class对象  
     运行场景:1.创建类的实例  2.访问某个类的静态成员   3.初始化子类   4.反射方式创建类的Class对象    
     Class是一个类(其对象被称为字节码文件对象  Java.long.Class)    
     每个Class对象对应一个字节码文件  
     .class是类的字节码文件后缀  
     Class对象可以获取构造器对象  
     常用函数    
     静态函数    forName("类的正名")  
     getConsturctor(Class<?>...parameterTypes)  
     getDeclaredConsturctor(Class<?>...parameterTypes)  
     getConsturctors()  
     getMethod(String name,Class<?>...ParameterTypes)  
     getDeclaredMethod(String name,Class<?>...parameterTypes)  
     getMethods()  
     getField(String name)  
     getDeclaredField(String name)  
     getDeclaredFields()  
     Constructor<T>类    
     1.其对象称为构造器对象,属于java.base模块、java.lang.reflact包  
     常用函数    
     String   getName()  
     T     newInstance(Object...initargs)  
     Method类    
     常用函数    
     String getName()  
     Object invoke(Object obj,Object...args)  
     Field类    
     常用函数    
     void  set(Object obj,Object value)  
     void  setAccessible(boolean flag)  
     作用    
     通过类加载器分析类    
     加载并初始化一个类  
     查看类的所有属性和方法  
     查看并使用对象    
     查看一个对象的所有属性和方法  
     使用对象的任意属性和方法  
     应用场景    
     构建通用的工具  
     搭建具有高度灵活性和扩展性的系统框架  
     用法    
     1.先获取Class对象    
     根据对象获取  
     根据类名获取  
     根据类名字符串获取  
     获取Class对象的三种方式    
     1.  对象名.getClass();  
     2.  类名.class;(依据类的静态属性)  
     3.  Class类的静态方法      Class.forName("类的正名")  
     再使用    
     获取构造方法并使用    
     2通过Class对象获取构造器对象  
     3.根据构造器对象和参数,创建对应的目标对象    
     newInstance(Object...initargs)  
     4.打印结果  
     使用成员方法    
     2通过Class对象获取构造器对象  
     3.根据构造器对象和参数,创建对应的目标对象(newInstance(Object...initargs))  
     4.获取该类成员方法对象,然后调用此方法  
     5.打印结果  
     使用成员变量    
     2通过Class对象获取构造器对象  
     3.根据构造器对象和参数,创建对应的目标对象  
     4.设置目标对象的各个变量值  
     计算机协议    
     APP协议  
     IP协议、ICMP协议  
     TCP、UDP协议  
     DNS/HTTP/HTTPS协议  
     Session/Cookie  
     网络编程    
     网络编程三要素    
     1.IP地址    
     IPv4  
     IPv6  
     常用命令    
     ipconfig  
     ping IP地址  
     127.0.0.1  
     InetAddress类    
     Static getByName(String host)  
     String  getHostName()  
     String  getHostAddress()  
     2.端口    
     端口号  
     3.协议    
     UDP协议    
     发送端    
     1.创建发送端的DatagramSocket对象  
     2.创建数据,并把数据打包(DategramPacket)  
     3.调用DatagramSocket对象的方法发送数据  
     4.释放资源  
     接收端    
     1.创建接受端的DatagramSocket对象  
     2.创建“箱子”,用于接收数据(DatagramPacket)  
     3.调用DatagramSocket对象的方法接收数据并把数据打包  
     4.解析数据包,并把数据打印在数据台  
     5.释放资源  
     实例  
     UDP的三种通信方式    
     单播    
     详解在上面发送端备注里  
     组播    
     组播代码实现步骤  
     广播    
     广播代码实现步骤  
     子主题  
     TCP协议    
     客户端(发送端)    
     1.创建客户端的Socket对象与指定的服务器连接  
     2.获取输出流,写数据  
     3.释放资源  
     服务器端(接收端)    
     1.创建的服务器端的SeverSocket对象  
     2.监听客户端连接,返回一个Socket对象  
     3.获取输入流读数据,并把数据打印在控制台上  
     4.释放资源  
     主体代码  
     执行流程    
     1.先执行服务器端Socket对象  
     2.执行到appect()方法,等待与客户端建立连接,开始执行客户端所有代码  
     3.读取数据,然后关闭两端通道  
     流程图  
     三次握手    
     子主题  
     四次挥手    
     子主题  
     实例联系    
     例1    
     客户端  
     服务器端  
     例2    
     客户端  
     服务器端  
     多线程    
     相关概念    
     *.(多线程技术就是同时执行多个应用程序)是指从软件或硬件上实现多个线程并发执行的技术  
     *.(多线程技术需要硬件的支持)具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能、  
     并行    
     在同一时刻,多个指令在多个CPU上“同时”执行  
     并发    
     在同一时刻,多个指令在单个CPU上“交替”执行  
     进程    
     正在运行的软件(应用程序)  
     1.独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位  
     2.动态性:进程的实质是指程序的一次的执行过程,进程是动态产生,动态消亡的  
     3.并发性:任何进程都可以同其他进程一起并发执行  
     线程    
     是进程中的单个顺序控制流,是一条执行路径  
     单线程:一个进程如果只有一条执行路径,则称为单线程程序  
     多线程:一个进程如果只有多条执行路径,则称为多线程程序  
     Thread线程类,一个thread对象就是一个线程对象。run函数是通过start函数调用的  
     运行底层过程           
     start()函数:给予调用它的线程对象执行资格(只有执行资格没有执行权,执行权需要靠其线程对象本身去和CPU抢)  
     实现方案    
     1.继承Thread类    
     重写run()    
     多线程开启后执行的是run方法里面的代码  
     run方法是用来封装被线程执行的代码(不可直接调用)  
     start    
     启动线程;然后由JVM调用此线程的run()方法  
     2.实现Runnable接口    
     1.定义一个x类实现Runnable接口  
     2.在定义的x类中重写run()  
     3.创建定义的x类的对象(创建了一个参数的对象)  
     4.创建Thread类的对象(创建了一个线程的对象),把x对象作为构造方法的参数传递给各个线程  
     5.启动线程  
     Callable接口和Future接口    
     1.创建Callable接口实现类X  
     注意Callable接口泛型,这里泛型表示返回值的数据类型  
     2.在X类中重写call()  
     call方法有返回值,表示线程完毕之后的结果  
     3.创建X类的对象  
     4.创建FutureTast类的对象,将X类对象作为FutureTast类对象构造方法的参数  
     FutureTast类是Future接口的实现类  
     FutuerTast类有泛型,泛型与Callable接口泛型保持一致  
     5.创建Thread类的对象,将FutureTast类对象作为Thread类对象构造方法的参数  
     6.启动线程  
     Therad对象.start();  
     7.获取线程完毕结果  
     FutureTast对象.get();  (千万不可在start()之前调用)  
     需要用相应类型获取FutureTast对象.get(),然后打印  
     三种实现方式优缺点对比    
     Runnable接口,Callable接口    
     优点    
     扩展性强,实现该接口的同时还可以继承其他的类  
     缺点    
     编程比较复杂,不能直接使用Thread类中的方法  
     继  承   T  h  r  e  a  d   类         
     优点    
     编程比较简单,可以直接使用Thread类中的方法  
     缺点    
     可扩展性差,不能在继承其他的类  
     线程类(Thread)的常见方法    
     获取名称    
      getName();  返回此线程的名称  
     有默认名字Thread-编号  
     设置名字    
     setName(String name);将此线程名称更改为参数name  
     1.可在实现类中直接调用  
     2.可以在子类调用父类构造方法,然后通过构造方法设置线程名称  
     获取当前线程的对象    
     public static Thread currentThread();    
     返回对当前正在执行的线程对象的引用  
     currentThread()可以调用getName()获取对象名称  
     适用与Runnable接口和Callable接口(因为他们不可以直接调用Thread里的私有方法)  
     如果一个类或者接口中的方法没有抛出异常,那么他的子类或者实现类重写的方法就必须自己try catch异常(依然可用ALT+回车)  
     线程休眠    
     public static  void sleep(long time):让线程休眠指定的时间,单位为毫米秒  
     守护线程/后台线程/备胎线程    
     public final void steDaemon(boolean on)  
     设置为守护(服务线程或者副线程)线程  
     守护线程:当普通线程执行完毕之后,守护线程也没有执行下去的必要(因为CPU的关系,备胎线程不会立马结束,会针扎一会)  
     线程调度    
     线程并发运行  
     分时调度模型    
     所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片  
     抢占式调度模型    
     优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选一个。优先级高的线程获取的CPU时间片相对多一些  
     public final void setPriority(int newPriority):设置线程的优先级  
     public final int getPriority():获取线程的优先级  
     线程的生命周期(多线程中,执行任意一行代码时,其执行权都有可能被抢走)  
     多线程的安全问题(锁)    
     来源:一般是由操作共享数据时争夺CPU的执行权引起的  
     同步代码块    
     代码  
     同步方法    
     格式:  修饰符  synchronized 返回值类型 方法名 (参数){}  
     与同步代码块的区别    
     1.同步代码块可以锁住指定代码,同步方法是锁住方法中的所有代码  
     2.同步代码块可以指定锁对象,同步方法不能指定锁对象  
     例子  
     同步方法的锁对象是this  
     静态同步方法的锁对象是“类名.class”  
     Lock接口    
     实现类:ReentrantLock  
     实例  
     死锁           
     实例  
     生产者消费者(等待唤醒机制)    
     思路分析  
     等待和唤醒的函数(Object类里)    
     void wait() : 使当前线程进入等待状态,直到另一个线程对象唤醒(直到另一个对象调用notify()或notifyAll()  
     void notify():唤醒正在等待状态的一个线程  
     void notifyAll():唤醒正在等待状态的所有线程  
     自主设计例一  
     例一面向对象版  
     并发容器  
     原子类  
     JUC并发工具类  
     线程池  
     数据结构和算法    
     数据结构    
     字符串  
     数组  
     堆、栈、队列  
     二叉树  
     哈希  
     图  
     线性表    
     顺序表  
     链表  
     算法    
     simple    
     comparable接口  
     冒泡           
     相邻的元素进行比较(换位)  
     创建API  
     选择           
     与最小值索引换位排序  
     API  
     插入           
     common  
     API  
     逆置  
     complex    
     希尔排序           
     common  
     API  
     归并    
     递归排序  
     分治  
     快速排序  
     设计模式    
     相关    
     设计模式概述    
     软件设计模式产生背景  
     软件设计模式概念  
     学习设计模式的必要性  
     设计模式分类    
     创建型模式  
     结构型模式  
     行为型模式  
     UML图    
     UML类图    
     概述  
     作用  
     表示方式    
     关联关系    
     一般关联关系    
     单向关联  
     双向关联  
     自关联  
     聚合关系  
     组合关系  
     依赖关系  
     继承关系  
     实现关系  
     软件设计原则    
     开闭原则  
     里氏代换原则  
     依赖倒转原则  
     接口隔离原则  
     迪米特法则  
     合成复用原则  
     创建者模式5    
     单利  
     原型  
     工厂方法  
     抽象工厂  
     建造者  
     结构型模式7    
     代理  
     适配器  
     桥接  
     装饰者  
     外观  
     享元  
     组合  
     行为型模式11    
     模板方法  
     策略  
     命令  
     责任链  
     状态  
     观察者  
     中介者  
     迭代器  
     访问者  
     备忘录  
     解释器  
     综合实例    
     自定义Spring框架    
     分析Spring核心功能结构  
     确定Spring核心功能使用的设计模式  
     功能实现    
     Spring IOC  
     SQL/数据库    
     数据库概念    
     关系型数据库  
     非关系型数据库  
     数据库术语    
     DBMS  
     DBA  
     DBS  
     MySQL启动与关闭    
     CMD管理员    
     net stop mysql  
     net start mysql  
     此电脑--》管理---》服务  
     MySQL的管理工具    
     可视化工具 : SQLyog、  Navicat   
     自带的命令行工具: mysql Command line Client    
     常用命令    
     `1Cd  
     Mysql逻辑结构  
     SQL    
     基本语法    
     在mysql Command line Client或者Navicat等工具中都可以编写SQL语句  
     SQL指令不区分大小写  
     每条SQL指令结束都以分号结尾  
     SQL指令与指令之间以空格进行分割  
     SQL指令不限制换行  
     数据类型    
     数值类型    
     tinyint  
     smallint  
     mediumint  
     int/intteger  
     bigint  
     float  
     double  
     decimal(总位数,小数位数)  
     字符类型    
     char  
     varchar  
     tinyblob  
     blob  
     mediumblob  
     longblob  
     tinytext  
     text  
     longtext  
     日期类型    
     date  
     time  
     year  
     datetime  
     timestamp  
     字段约束    
     not null  
     unique  
     primary key  
     foreign key    
     例  
     外键约束----级联操作  
     primary key(列名1,列名2,....);  
     分类    
     DDL    
     操作数据库    
     show databases;  
     show create database 名字;   
     create database 名字;  
     create database if not exists 名字;  
     alter database 名字 character  set 字符集;  
     drop database 名字;  
     drop database is exists 名字;  
     use 数据库名字;  
     create database 名字 character  set 字符集;  
     操作数据表及字段    
     create table 表名(列名  数据类型,列名  数据类型......)  
     例子  
     show tables;  
     desc 表名;  
     drop table 表名;  
     drop table is exists 表名;  
     alter table 旧表名  rename to 新表名;  
     alter table 名字 character  set 字符集;  
     alter table 名字  add 列名 列的数据类型;  
     alter table 表名 modify 列名 数据类型;  
     alter table 表名 change 旧列名  新列名  新列名的数据类型;  
     alter table 表名  drop 列名;  
     alter table 表名 drop primary key;  
     alter table 表名 modify 列名 数据类型 primary key;  
     alter table 表名 add constraint 逻辑外键字段名 foreign key(列名) references 要关联的表名(要关联的表的列名);  
     列名 int primary key auto_increment;  
     DML    
     insert into 表名 (字段名,字段名....)  values(value,value.......)  
     insert into 表名 values(值1,值2,值3....)  
     delete from 表名 where 条件;  
     delete from 表名;  
     update 表名 set 列名=新值 where 条件;  
     update 表名 set 列名=新值;  
     update 表名 set 列名=新值,列名=新值,列名=新值....  where 条件  
     DQL    
     单表查询    
     select 列名1,列名2...  from 表名;  
     select * from 表名;  
     where 子句    
     =  
     <  
     >  
     !=  
     <=  
     >=  
     多条件(用and/or/not连接)  
     LIKE子句  
     操作查询数据的结果    
     计算列  
     对计算列重新命名  
     as:通用取别名(都可以用)也可以隐藏  
     distinct :消除查询结果的重复项(位置在列名前)  
     排序    
     正序:order by  
     逆序:order by 排序的列名 desc  
     聚合函数    
     count() : select count(列名) from 表名;  
     max()  
     min()  
     sum()  
     avg()  
     日期函数    
     now()或sysdate()  
     字符串函数    
     concat(列名1.列名2...)  
     upper()  
     lower()  
     sunstring(列名,开始截取那位,长度)  
     分组查询group by    
     select 被分组的字段或聚合函数 from 表名 (where子句)group by 分组依据的字段;
  
     select 被分组的字段或聚合函数 from 表名 (where子句)group by 分组依据的字段 order by 列名(依据此列明对分组好的结果排序);  
     .......... group by havaing 条件.......  
     分列查询limit    
     select 列名 from tablename (where子句) limit 起始位 , 步长;  
     select 列名 from tablename (where子句) limit (pageName-1)*pageSize,pageSize   
     数据表的关联关系    
     例  
     一对一关联    
     1:主键关联  
     2:唯一外键  
     一对多关联    
     外键约束  
     多对一关联    
     外键约束  
     多对多关联           
     连接查询    
     inner join 内连接    
     格式:select * from 表名 inner join 被连接的表名;  
     格式:select * from 表名 inner join 被连接的表名 where 表名.外键=被链接的表名.另一张表的主键;  
     格式:select * from 表名 inner join 被连接的表名 on  表名.外键=被链接的表名.另一张表的主键(where子句);  
     left join 左连接    
     格式:select * from 表名 left join 被连接的表名 on  表名.外键=被链接的表名.另一张表的主键(where子句);  
     right join 右连接    
     格式:select * from 表名 left join 被连接的表名 on  表名.外键=被链接的表名.另一张表的主键(where子句);  
     数据表别名    
     不用前  
     用之后  
     子查询    
     例1  
     例:多条件  
     union关键字  
     DCL    
     SQL高级    
     存储过程  
     索引  
     触发器,视图  
     数据库设计    
     数据库的设计步骤  
     数据库的设计范式  
     E-R图  
     PowerDesigener工具、PDMan  
     事务特性ACID  
     事务隔离级别  
     事务管理  
     操作系统    
     进程、线程  
     并发、锁  
     内存原理和调度  
     I/O原理  
     项目设计    
     1.吃透需求  
     2.步骤梳理  
     3.代码实现  
     4。调试错误  
     基本步骤    
     先设计    
     需求分析  
     概要设计  
     再编码    
     1.底层框架代码  
     2.顶层业务逻辑代码  
     研发工具    
     集成开发环境     Eclipse“个人当前阶段认为它的存在很尴尬'      
     Intellij IDEA  
     VSCode  
     Linux系统    
     基础    
     Linux网络连接的三种方式    
     桥接模式  
     NAT模式  
     主机系统  
     centOS安装           
     虚拟机克隆    
     方式一:直接拷贝一份安装好的虚拟机文件。“ZYJ.linux.虚拟机”  
     方式2:使用VMware的克隆操作,克隆时需要关闭正在运行的Linux系统  
     VMtoos安装  
     虚拟机快照           
     Linux目录结构    
     /bin  
     /sbin  
     /home  
     /root  
     /lib  
     /lost+found  
     /etc  
     /usr  
     /boot  
     /proc  
     /srv  
     /sys  
     /tmp  
     /dev  
     /media  
     /mnt  
     /opt  
     /usr/local  
     /var  
     /selinux  
     实操    
     远程    
     远程登录  
     远程文件传输  
     vi和vim编译器    
     打开:vim空格  
     插入:I,o,O,a,A,r,R  
     命令行模式:esc+:  
     开机、重启和用户登录注销    
     shutdown -h now  
     su+空格+用户名  
     用户管理    
     添加用户:useradd空格用户名  
     添加指定目录用户:useradd空格-d空格目录空格用户名  
     修改/添加密码:passwd空格用户名  
     显示当前所在的目录:pwd  
     删除用户并删除其用户文件下的所有目录:userdel -r 用户名  
     删除用户但保留其用户文件下的所有目录:userdel 用户名  
     实用指令  
     定时任务调度  
     磁盘分区、挂载  
     进程管理  
     RPM和YUM  
     网络配置  
     用户管理  
     高级    
     日志管理  
     定制自己的Linux  
     Linux内核源码&内核升级  
     Linux备份与恢复  
     Linux可视化管理webmin和bt运维工具  
     Linux入侵检测&权限划分&系统优化  
     Linux面试题  
     服务器领域  
     大数据定制篇之Shell脚本编程  
     Linux之Java定制篇    
     JDK安装  
     IDEA安装  
     Tomcat安装  
     MySQL安装  
     项目管理/建构工具    
     Gradle  
     Maven  
     代码管理工具    
     SVN  
     Git  
     应用框架    
     后端    
     SSM    
     Spring    
     IoC  
     AOP  
     SpringMVC  
     MyBatis  
     Spring Boot    
     自动配置、开箱即用  
     整合Web  
     整合数据库(事物wenti)  
     整合权限    
     Shiro  
     Spring Security  
     整合各种中间件    
     Redis、MQ、RPC框架、NIO框架  
     服务器软件    
     Web服务器    
     Nginx(特别重要)  
     应用服务器    
     Tomcat  
     Jetty  
     Undertow  
     中间件    
     缓存    
     Redis    
     5大基础数据类型  
     事物  
     管道  
     持久化  
     集群  
     消息队列    
     RocketMQ  
     RabbitMQ  
     Kafka  
     RPC框架    
     Dubbo  
     gRPC  
     Thrift  
     Spring Cloud  
     Netty  
     数据库框架    
     ORM层框架    
     Mybatis  
     Hibernate  
     JPA  
     连接池    
     Druid  
     HikariCP  
     C3P0  
     分库分表    
     MyCAT  
     Sharding-JDBC  
     Sharding-Sphere  
     搜索引擎    
     ElasticSearch  
     Solr  
     分布式/微服务    
     服务发现/注册    
     Eureka  
     Consul  
     Zookeeper  
     Nacos  
     网关    
     Zuul  
     Gateway  
     服务调用(负载均衡)    
     Ribbon  
     Feign  
     熔断/降级    
     Hystrix  
     配置中心    
     Config  
     APollo  
     Nacos  
     认证和鉴权    
     Spring Security  
     OAuth2  
     SSO单点登录  
     分布式事物    
     JTA接口    
     Atomikos组件  
     2PC、3PC  
     XA模式  
     TCC模式    
     tcc-transaction  
     Byte-TCC  
     EasyTransaction  
     Seata  
     SAGA模式    
     ServiceComb  
     Seata  
     LCN模式    
     tx-lcn  
     任务调度    
     Quartz  
     Elastic-Job  
     链路追踪和监控    
     Zipkin  
     Sleuth  
     Skywalking  
     日志分析与监控    
     ELK    
     ElasticSearch  
     Logstash  
     Kibaba  
     虚拟化/容器化    
     容器技术    
     Docker  
     容器编排技术    
     Kubernetes  
     Swarm  
     javaweb    
     前端    
     三大件    
     HTML5    
     基础语法    
     标签  
     整体结构  
     DOCTYPE(版本状态)    
     <!DOCTYPE html>(html5版本申明)  
     常用标签    
     标题和水平线    
     body标签    
     <body bgcolor="pink"></body>  
     bgcolor背景颜色  
     text字体颜色  
     1.颜色名2.rgb3.16进制  
     标题标签    
     <h1>小标题<h1>  
     <h1><h2>.........<h6>(依次从大到小,会自动换行)  
     h1标签可以被搜索引擎获取到,如果有多个,可能会进入搜索引擎的黑名单  
     水平线标签    
     <hr width=""   align=""  size=""/>  
     hr是单标签  
     width(宽度 1.  %   2.  px)  
     align(对其方式    1.left  2.right   3.center)  
     size(水平线粗细)  
     段落    
     <p></p>    
     段落会自动换行  
     常用属性    
     <p align=""></p>  
     left  
     right  
     center  
     justify  
     换行    
     <br />    
     加几个换几行  
     列表    
     无序列表    
     <ul>   <li></li>   </ul>     
     常用属性:type  
     square  
     circle  
     disc  
     无序列表    
     <ol>    <li></li>  <ol>    
     常用属性:type  
     1  
     a  
     A  
     i  
     I  
     div    
     层,块级元素,标签会自动换行  
     默认宽度占整个屏幕的宽度,高度取决于内容  
     <div></div>    
     <div align=""></div>  
     div中元素的对其方式  
     left  
     right  
     center  
     justify  
     span    
     <span></span>  
     行内元素,标签不会自动换行  
     空间大小根据内容决定  
     格式化标签    
     font    
     常用属性  
     color(颜色)  
     sise(尺寸大小)  
     face(字体风格)  
     pre  
     <b></b>和<strong></strong>  
     <i></i>斜体  
     <u></u>下划线  
     <sub></sub>下标  
     <sup></sup>上标  
     a    
     常用属性  
     href    
     本地磁盘路劲  
     网页路径  
     target    
     self(当前窗口)  
     blank(新窗口)  
     parent(父窗口)  
     top(顶层窗口)  
     锚点    
     回到顶部  
     回到指定位置  
     图片    
     img    
     src  
     title  
     border  
     height  
     width  
     alt  
     alidn  
     表格    
     <table></table>    
     width  
     align  
     height  
     border  
     <tr></tr>    
     align  
     valign  
     bgcolor  
     <td></td>  
     <th></th>  
     表单    
     <form></form>    
     属性  
     action  
     method  
     target  
     name  
     子标签<input/>    
     常用属性  
     type  
     disable禁用  
     value  
     readlony  
     maxlength  
     <textarea></textarea>    
     cols  
     rows  
     <lable></lable>  
     <button>提交标签</button>    
     属性:type  
     可嵌套img标签做小图标  
     <select><option>下拉框</option></select>    
     <select>外层标签</select>    
     name  
     multiple  
     size  
     disable  
     <option>内层标签</option>    
     selected  
     value  
     字符实体    
     <小于号  
     >大于号  
     空格  
     版权©  
     标签的分类    
     块级标签    
     换行,段落,水平线,标题,列表,div,表格,表单,pre  
     行内标签    
     span,font,加粗,下划线,倾斜....,图片,a标签,表单里的子标签input,textarea........,  
     行内块级标签    
     可将以上标签设置为行内块级标签  
     CSS    
     CSS基本使用    
     基本语法  
     注释  
     使用    
     行内式  
     嵌入式  
     引入外联样式文件  
     CSS选择器    
     通用选择器  
     元素选择器  
     id选择器  
     类选择器  
     分组选择器  
     组合选择器    
     后代选择器  
     子代选择器  
     相邻兄弟选择器  
     普通兄弟选择器  
     CSS常用属性    
     背景    
     backdround-color  
     backdround-image:url
  
     backdround-repeat
  
     backdround-size
  
     文本    
     颜色  
     对齐方式  
     文本修饰  
     去除文本修饰  
     首行缩进  
     字体    
     字体样式font-family:  
     字体大小font-size:  
     字体风格font-style:  
     字体粗细font-weight:  
     display属性    
     bolck  
     none  
     inline  
     inline-block  
     浮动float    
     none  
     left  
     right  
     style="clear:both"  
     盒子模型    
     padding    
     内边距有上下左右四条线,可以单独设置样式  
     border    
     例子  
     border-color:   
     border-width:  
     border-style:  
     边框有上下左右四条线,可以单独设置样式  
     border-collapse:设置表格边框  
     margin    
     顺序上右下左  
     案例    
     人物简历  
     JavaScript    
     表单  
     ECMAscript    
     基本用法    
     行内js  
     内部js  
     外部js  
     零碎    
     onclick(点击元素时触发)  
     alert('内容')  
     console.log("内容")  
     基础语法    
     语句和注释  
     标识符和关键字  
     变量    
     变量声明  
     只有用var声明的变量才会有变量声明  
     数据类型    
     数值型  
     undefined  
     null  
     布尔  
     字符串  
     object  
     类型转换    
     自动类型转换  
     函数转换  
     显示转换    
     toString();  
     toFixed(参数);(参数表示保留几位小数)  
     Number("")  
     String();  
     +“”  
     运算符    
     算数运算符    
     +  
     -  
     *  
     /  
     %  
     ++  
     --  
     赋值和扩展运算符    
     =  
     +=  
     -=  
     *=  
     /=  
     %=  
     比较运算符    
     ==  
     ===  
     >  
     <  
     <=  
     >=  
     !=  
     逻辑运算符    
     &&  
     ||  
     !  
     三元运算符    
     表达式?语句1:语句2  
     控制语句    
     if  
     switch  
     while  
     do while  
     for  
     break,continue和Java中一样  
     数组    
     数组的定义和赋值    
     var 数组名 = [值1,值2,值3];  
     var 数组名 = new Array(值1,值2,值3);  
     var 数组名 = new Array(size);  
     数组名.length= 长度  
     设置属性  
     数组的遍历    
     for循环(和Java一样)  
     for in    
     格式  
     forEach    
     格式  
     数组函数    
     数组名.函数名();  
     push();  
     unshift();  
     pop();  
     shift();  
     reverse();  
     join();  
     indexOf(元素):  
     slice(index,index);  
     splice();  
     concat();  
     函数    
     函数的定义    
     函数声明语句    
     格式:function 函数名([参数列表]){}  
     函数定义表达式    
     var  变量名 = function([ 参数列表]){}  
     Function构造函数    
     var  变量名 = function([ 参数列表,语句体]);  
     函数的参数、调用与return语句  
     函数的作用域  
     对象    
     对象的创建    
     格式  
     1.字面量形式创建:var 对象名 = {}  
     2.通过new object对象创建  
     3.通过Object对象中的create函数创建对象  
     比较  
     对象的序列化与反序列化    
     序列化    
     例子  
     反序列化    
     例子  
     this  
     事件    
     事件类型  
     常用事件    
     1oad  
     onload  
     onblur  
     onfocus  
     onchange  
     onclick  
     onmouseover  
     onmouseout  
     onkeyup  
     onkeydown  
     事件流    
     事件顺序    
     事件捕获  
     事件冒泡  
     事件处理程序    
     HTML事件处理程序  
     DOM 0级事件处理程序  
     DOM2级事件  
     Dom对象  
     Bom对象  
     组件化框架    
     Vue  
     React  
     Angular  
     Node  
     模板框架    
     JSP/JSTL  
     Thymeleaf  
     FreeMarker  
     BootStrap  
     基础套餐    
     基础库    
     jQuery  
     Ajax  
     servlet    
     HTTP协议    
     respones headers(16)请求头  
     request headers(10)响应头  
     http://(规则)+ip或域名:端口 / 项目路径/项目里的资源的路径?参数  
     http请求协议    
     请求行  
     HTTP响应协议  
     HTTP消息头    
     referer  
     location  
     refresh  
     Tomcat    
     开启步骤  
     目录结构    
     bin(脚本)  
     conf(相关配置文件)  
     sever设置端口  
     tomcat-users设置权限(xml)  
     lib  jar包  
     logs日志文件  
     webapps   tomcat自带项目  做的项目可以放此目录下  
     work-localhost     放JSP生成的源码  
     idea配置tomcat  
     Servlet的实现    
     创建Web项目    
     例子  
     @WebServlet注解    
     value(对外访问路劲)  
     子主题  
     cookie  
     HttpSession  
     ServletContext  
     文件上传和下载  
     JSP  
     过滤器  
     监听器  
     Maven  
     SVN  
     FreeMarker  
     Spring  
     运维知识(工作时间学习)    
     Web服务器    
     Nginx  
     应用服务器    
     Tomcat  
     Jetty  
     Undertow  
     CDN加速  
     持续集成/持续部署    
     JenKins  
     代码质量检查    
     sonar  
     日志收集和分析    
     ELK  
     大捷    
     徒手撕源码  
     光脚造轮子  
     闭着眼睛深度调优  
     寄语    
     11.26  
     自由主题  
      收藏 
     
 
 
 
 
  0 条评论
 下一页