- 博客(32)
- 收藏
- 关注
原创 JUC并发学习笔记
文章目录JUC并发什么是JUC进程和线程Lock(锁)生产者消费者问题**JUC版本的生产者消费者问题**八锁现象不安全集合Callable常用的辅助类(必会)CountDownLatchCyclicBarrierSemaphore读写锁阻塞队列BlockingQueueSynchronousQueue线程池(重点)四大函数式接口Stream流式计算ForkJoin异步回调JMMVolatile单例模式深入理解CAS原子引用各种锁的理解公平锁/非公平锁可重入锁自旋锁死锁JUC并发什么是JUCJUC就是
2021-05-10 19:56:57
350
原创 Docker学习笔记---通俗易懂
文章目录Docker简介Docker安装Docker的基本组成安装Docker配置阿里云镜像加速回顾helloworld流程工作原理Docker的常用命令**帮助命令**镜像命令容器命令**常用其它命令**小结练习部署部署Nginx部署Tomcat部署es+kibana可视化Docker镜像Docker镜像加载原理分层理解commit镜像容器数据卷使用数据卷部署MySQL具名挂载和匿名挂载初识Dockerfile数据卷容器DockerFileDockerFile介绍DockerFile构建过程DockerF
2021-05-06 19:41:47
1562
原创 Redis学习笔记
文章目录RedisNoSQLNoSQL的四大分类Redis入门概述Windows安装Linux安装性能测试基础的知识五大数据类型**String(字符串)****List**(列表)**Set(集合)****Hash**(哈希)**Zset(有序集合)**三种特殊数据类型**Geospatial**(地理位置)HyperloglogBitmap事务Jedis常用APISpringBoot整合Redis.conf详解Redis持久化RDB(Redis DataBase)AOF(Append Only File
2021-05-05 15:34:55
888
原创 Git学习使用
文章目录GitGit 与 SVN 区别安装配置基本理论Git文件操作使用码云IDEA集成GitGit分支Git**Git 是一个开源的分布式版本控制系统,**用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git 与 SVN 区别Git 不仅仅是个版本控制系统,它也是个内容管理
2021-05-04 22:08:53
338
原创 Linux入门学习
文章目录Linux概述环境搭建走进Linux常用的基本命令基本命令文件属性文件内容查看Vim编辑器用户管理用户组管理磁盘管理进程管理环境安装**JDK安装****项目发布**tomcat安装Docker(yum安装)Linux概述Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运
2021-05-04 22:06:03
603
原创 ElasticSearch入门学习笔记
文章目录ElasticSearch简介ElasticSearch和solr的区别ElasticSearch安装ES核心概念IK分词器插件Rest风格说明**索引的基本操作**文档的基本操作集成SpringBoot实战爬虫,前后端分离,搜索高亮ElasticSearch简介**Elasticsearch是一个基于Lucene的搜索服务器。**它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码
2021-05-03 22:12:23
429
原创 MyBatisPlus入门学习
文章目录MyBatisPlus概述快速入门配置日志输出CRUD拓展插入**主键生成策略**更新操作自动填充乐观锁查询操作分页查询删除操作逻辑删除性能分析插件条件构造器代码自动生成器MyBatisPlus概述官网:https://baomidou.com/MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatisPlus可以节省我们大量的工作时间,所有的CRUD可以自动化完成。JPA,tk-ma
2021-05-03 22:11:05
413
原创 Vue入门学习
文章目录Vue简介第一个Vue程序Vue基本语法双向绑定组件Axios异步通信计算属性Slot自定义事件第一个Vue-cli程序webpack学习使用Vue-Router路由vue+elementUI嵌套路由参数传递及重定向404和路由钩子路由钩子与异步请求Vue简介Vue:是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。CSS预处理器:提供CSS缺失的样式层复用机制,减
2021-04-27 22:12:39
373
原创 SpringCloud学习笔记
文章目录SpringCloud简介微服务与微服务架构微服务的的优缺点微服务技术栈为什么选择SpringCloud作为微服务架构什么是SpringCloudSpringBoot和SpringCloud的关系Dubbo和SpringCloud技术选型Spring Cloud特性SpringCloud学习环境搭建**springcloud-api****springcloud-provider-dept-8001****springcloud-consumer-dept**Eureka服务注册与发现springc
2021-04-24 20:52:19
749
原创 SpringBoot学习笔记
SpringBoot什么是Spring:Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。如何简化Java的开发的基于POJO的轻量级和最小侵入性编程通过IOC,依赖注入和面向接口实现松耦合基于切面和惯例进行声明式编程通过切面和模板减少样式代码SppringBoot主要优点:开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有冗余代码和生成XML配置的要求让所有的Spring开发者更快的入门什么是微服务:微服务是一种架构风格,它要求我们在开发一个
2021-04-22 22:24:02
697
原创 SpringMVC学习笔记
SpringMVCSpringMVC:controller:控制器获得表单数据调用业务逻辑转向指定页面model:模型业务逻辑保存数据的状态view:视图显示页面SpringMVC优点:轻量级,简单易学高效,基于请求响应的MVC框架与 Spring 兼容性好,无缝集成约定优于配置功能强大:restful,数据验证,格式化等将业务逻辑,数据,显示分离,降低各个模块之间的耦合,初识SpringMVCSpring的web框架围绕DispatcherS
2021-03-28 22:17:56
447
原创 Spring学习笔记---学习狂神
SpringSpring简介Spring—>给软件行业带来了春天。2002年,首次推出了Spring的雏形,interface21框架。Spring以interface21框架为基础,经过重新设计,不断丰富,于2004年3月24号发布了1.0正式版。目的:解决企业应用开发的复杂性,使现有的技术更容易使用。官方下载地址:https://repo.spring.io/release/org/springframework/springGitHub:https://github.com/
2021-03-14 12:20:41
232
原创 MyBatis学习笔记-------狂神视频学习整理
Mybatis文章目录Mybatis简介什么是Mybatis?持久化持久层为什么需要Mybatis搭建Mybatis搭建环境创建一个模块编写代码测试CRUDMap模糊查询配置解析核心配置文件环境配置(environments)属性(properties)类型别名(typeAliases)设置(settings)其它配置映射器(mappers)生命周期和作用域属性名和字段名不一致的问题问题resultMap日志日志工厂LOG4J分页limit分页RowBounds分页(了解)分页插件使用注解开发面向接口编程
2021-02-28 20:21:12
263
原创 JavaWeb实现文件上传及邮件发送
文章目录文件上传邮件发送简单邮件(只有文字的)文字+图片邮件文字+图片+附件邮件注册成功邮件发送文件上传pom.xml配置,导入文件上传的相应jar包<dependencies> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2
2020-12-06 20:47:34
598
原创 JavaWeb搭建超市管理系统
文章目录SMBMS准备工作登录功能实现登录功能优化密码修改密码验证Ajax用户管理实现用户数量用户列表角色列表SMBMS准备工作搭建一个Maven项目、配置Tomcat测试项目能否跑起来导入项目所需的jar包(servlet,jsp,mysql,jstl,standard…)创建项目包结构编写实体类(ORM映射:表—类映射)编写基础公共类(数据库配置文件)driver=com.mysql.jdbc.driverurl=jdbc:mysql://localho
2020-12-06 20:44:38
1178
5
原创 JavaWeb知识梳理
文章目录JavaWebWeb服务器技术讲解Web服务器TomcatHttpMavenpom.xmlServletHelloServletServlet原理MappingServletContextHttpServletResponse下载文件验证码功能实现重定向HttpServletRequestCookie, SessionCookieSessionJSP什么是JSPjsp原理JSP基础语法定制错误页面JSP指令九大内置对象四大作用域JSP标签,JSTL标签,EL表达式JavaBeanMVC三层架构过滤器
2020-12-06 20:38:21
965
1
原创 MySql学习笔记--狂神视频详细整理--下
文章目录索引测试索引索引原则权限管理和备份备份规范数据库设计三大范式JDBCJDBC程序**Statement对象**工具类实现sql注入PreparedStatement对象事务数据库连接池DBCPC3P0索引MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的的数据结构,提取句子主干,就可以得到作用的本质,索引是数据结构。索引的分类主键索引:PRIMARY KEY唯一的标识,主键不可重复,只能由一个列作为索引唯一索引:UNIQUE KEY避免重复的列出现
2020-11-27 21:58:03
743
原创 MySql学习笔记--狂神视频详细整理--上
文章目录MySqlMySql安装连接数据库操作数据库数据库的列类型数据库的字段属性创建数据库修改删除表数据管理外键DML语言添加修改删除DQL查询数据(重点)查询去重where条件子句模糊查询连表查询分页和排序子查询MySQL函数数据库级别的MD5加密事务MySqlMySql安装压缩包安装,解压后放入指定的环境目录中添加环境变量,我的电脑–属性–高级设置–环境变量;将MySq的bin目录的路径放入Path中。在MySql下新建配置文件my.ini,添加以下内容,date目录会自动生成。
2020-11-27 21:53:52
727
原创 JVM简单入门
文章目录初识JVM双亲委派机制沙箱安全机制NativePC计数器方法区栈堆工具分析OOMGC算法GC算法总结JMM初识JVMJVM的位置:jre中包含jvm。双亲委派机制双亲委派机制:是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。在IDE中编写的Java源代码会被编译器编译成.class文件,然后再由ClassLoader(类加载器)将这些class文件加载到JV
2020-11-22 22:47:22
295
原创 Java反射详解
文章目录反射机制Class类类的加载过程类的初始化类加载器获取类运行时结构动态创建对象执行方法setAccessible性能分析获取泛型信息获取注解信息反射机制Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部消息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息。我们可以通过这个对象看到类的结构,
2020-11-21 23:12:29
294
原创 Java注解
注解注解(Annotation)是jdk5引入的新技术。Anotation的作用:可以对程序作出解释,可以被其它程序(比如编译器等)读取。Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值。Annotation可以在package,class,method,filed等上面,相当于给它们添加了额外的辅助信息,可以通过反射机制来实现这些元数据的访问。内置注解@Override:定义在java.long.Override中,此注解只适用于修辞方法,表示一个方法声明打
2020-11-21 23:07:19
71
原创 Java线程状态,同步,锁学习
线程状态五大状态创建状态:Thread thread = new Thread(); 线程对象一旦创建就进入了新生状态。就绪状态:当调用start()方法时,进入就绪状态,但不代表立即调度执行(等待cpu调度)。运行状态:进入运行状态,线程才真正执行线程体的代码块。阻塞状态:当调用sleep,wait或同步锁时,线程进入阻塞状态,就是代码不往下执行,阻塞解除后进入就绪状态,等待cpu调度。死亡状态:线程中断或者结束,进入死亡状态,不能再次启动。停止线程停止线程:不推荐使用jdk的方法(已
2020-11-20 19:05:39
356
原创 Lambda表达式
Lambda表达式Lambda表达式:避免匿名内部类定义过多,去掉一些没有意义的代码,去掉没有意义的代码,只留下核心的逻辑,其本质属于函数式编程的概念(jdk8新增!)。new Thread (()->System.out.print(“Lamda表达式”)).start();使用lambda表达式必须是函数式接口。package com.lamda;//推导lamda表达式public class TestLambda1 { //静态内部类 static class Li
2020-11-20 18:59:05
121
原创 Java静态代理
静态代理模式真实对象和代理对象都要去去实现同一个接口,代理对象需代理真实角色。代理对象可以做很多真实对象做不了的事情,真实对象专注做自己的事情。多线程Thread底层使用了代理模式。package com.proxy;//静态代理public class StaticProxy { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(ne
2020-11-20 18:53:14
112
原创 Java多线程学习
文章目录多线程线程Process和Thread线程创建Thread:继承Thread类Runnable:实现Runnable接口Callable:实现Callable接口多线程线程多任务,多线程Process和Thread在操作系统中运行的程序就是进程,一个进程可以有多个线程,如视频中听声音,看图像,看弹幕等。程序是指令和数据的有效集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位。通常在一个进程中可以包含若干个下线程,
2020-11-20 18:48:17
78
原创 URL下载实现
URLhttps://www.baidu.com/URL:统一资源定位符DNS:域名解析 https://www.baidu.com/ 解析成一个ip1.协议://ip地址:端口/项目名/资源package com.zr.lesson04;import java.net.MalformedURLException;import java.net.URL;public class URLDemo01 { public static void main(String[] args)
2020-11-15 16:53:52
345
1
原创 UDP聊天实现
UDP聊天实现循环发送消息package com.zr.udpChat;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class UdpSenderD
2020-11-15 16:52:56
131
原创 UDP发送消息
UDP发短信,不用连接,需要知道对方地址。发送端package com.zr.lesson03;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;//不需要连接服务器public class UdpSendDemo01 { public static void main(String[]
2020-11-15 16:50:56
103
原创 Java实现文件上传
文件上传把winC.jpg放在根目录下package com.zr.lesson02;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.net.SocketImpl;public class TcpServerDemo02 { public static void main(String[] args) throws IOException { //创建服
2020-11-15 16:49:48
147
原创 TCP实现聊天功能
TCPTCP实现聊天服务端package com.zr.lesson02;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;//服务端public class TcpServerDemo01 { public static void main
2020-11-15 16:48:40
94
原创 网络编程概述
网络编程概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:无线—>传播交流信息,数据交换,通信。网络通信的要素:通信双方的IP,端口号。网络通信的协议:http, ftp, smtp, tcp, udp等。IPIP地址:InetAddress,唯一定位网络上的计算机;本机 localhost:127.0.0.1。ip地址
2020-11-15 16:47:00
82
原创 Java基础
Java基础文章目录Java基础语法注释标识符数据类型类型转换变量常量变量名命名规范!!运算符包机制Scanner对象流程控制顺序结构选择结构循环结构方法重载可变参数递归数组Arraya类冒泡排序稀疏数组面向对象面向过程&面向对象(简称oo)值传递和引用传递类与对象的关系创建对象与初始化面向对象三大特性封装继承多态抽象类接口内部类异常Error和Exception自定义异常IO流语法注释单行注释 //多行注释 /* …*/文档注释 //** * */标识符J
2020-10-31 21:33:35
240
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人