自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 java学习之路目录(已完结)

java学习之路目录(持续更新中…)第一阶段 javaSE序号标题内容001java初识java语言特点、体系结构、运行机制002java SE基础语法注释、关键字、变量、标识符、基本数据类型、运算符、流程控制语句练习3个经典小问题猴子吃桃、统计并输出素数、青蛙爬井003数组概念、创建方式、基础排序算法、二维数组相关知识、Arrays工具类介绍004面向对象基础入门1类的介绍、构造方法、引用类型、this关键字、引用传递与值传递、stat

2022-01-27 17:12:27 1084 1

原创 【自我救赎--牛客网Top101 4天刷题计划】 第四天 登峰造极

第四天声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特此声明45.滑动窗口的最大值解题思路维护一个双端队列,先遍历一个窗口,加入第一个值,通过while循环去掉比自己先进队列但是值小于自己的节点遍历后续数组元素,此时双端队列头结点即为滑动窗口的最大值,继而通过 while 循环弹出窗口移走后的值代码实现public class Solution

2022-04-24 16:18:47 746

原创 【自我救赎--牛客网Top101 4天刷题计划】 第三天 渐入佳境

第三天声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特此声明30.二叉搜索树与双向链表解题思路创建两个指针采用中序遍历的方式代码实现public class Solution { TreeNode head = null, pre = null; public TreeNode Convert(TreeNode pRootOf

2022-04-24 11:05:08 677

原创 【自我救赎--牛客网Top101 4天刷题计划】 第二天 强化训练

第二天声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特此声明11.链表相加解题思路首先将两个链表反转,这样符合加法的规范,即从个位开始相加加法做完之后得到的结果是一个逆序的数字,需要再进行反转将其变为正序代码实现public class Solution { /** * * @param head1 ListNode

2022-04-23 11:31:33 1134

原创 【自我救赎--牛客网Top101 4天刷题计划】 第一天 热身运动

第一天声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特此声明1.反转链表解题思路使用双指针,依次对比两个链表每个节点的值,最后合并为一个新的链表。代码实现public class Solution { public ListNode ReverseList(ListNode head) { if (head == null ||

2022-04-21 21:35:22 687

原创 【java进阶之路】(Java基础篇)[扩展]深入解析String.intern()及字符串常量池问题

申明 : 此文仅仅作为个人学习使用 , 如果有人对于String.intern() 十分想要究其原理 , 请参考此文深入解析String#intern - 美团技术团队8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中

2022-04-16 20:48:41 382

原创 【java进阶之路】(并发编程篇)2.共享模型之管程

共享模型之管程例子两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗? static int counter = 0; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() -> { for (int i = 0; i < 5000; i++) {

2022-04-16 20:43:02 88

原创 【java进阶之路】(并发编程篇)1.Java线程

Java线程创建和运行线程的方式直接使用 Thread // 创建线程对象 Thread t = new Thread() { public void run() { // 要执行的任务 } }; // 启动线程 t.start();使用 Runnable 配合 Thread把【线程】和【任务】(要执行的代码)分开Thread 代表线程Runna

2022-04-13 21:56:24 213 1

原创 【数据结构的魅力】008.图

图自定义简单的图结构点集import java.util.ArrayList;//点结构的描述public class Node { public int value; //入度 public int in; //出度 public int out; public ArrayList<Node> nexts; public ArrayList<Edge> edges; public Node(int va

2022-03-13 21:44:15 1383

原创 【数据结构的魅力】007.贪心算法

贪心算法求解标准过程解题套路套路实战1) 会议时间package dataClass.code03;import java.util.Arrays;import java.util.Comparator;public class BestArrange { public static class Program { public int start; public int end; public Program(int

2022-03-13 09:48:57 122

原创 【数据结构的魅力】006.二叉树基本问题

二叉树基本问题二叉树的结构二叉树的先序,中序,后序遍历package dataClass.code02;import java.util.Stack;public class RecursiveTraversalBT { public static class Node { public int value; public Node left; public Node right; public Node(int

2022-03-13 08:10:18 170

原创 【java学习之路】(java框架)013.SpringMVC拦截器

SpringMVC拦截器SpringMVC拦截器拦截器(interceptor)的作用Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(Interceptor Chain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。拦截器和过滤器区别拦截器是快速入门自定义拦截器很简单,只有如下三步:① 创建拦截器类实现Ha

2022-03-12 11:30:00 155

原创 【java学习之路】(java框架)012.SpringMVC的请求和响应

SpringMVC的请求和响应SpringMVC的数据响应SpringMVC的数据响应方式1) 页面跳转直接返回字符串通过ModelAndView对象返回2) 回写数据直接返回字符串返回对象或集合页面跳转返回字符串形式直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。返回ModelAndView对象向request域存储数据在进行转发时,往往要向request域中存储数据,在jsp页面中显示,那么Controller中怎样向request域中存储

2022-03-12 06:30:00 205

原创 【java学习之路】(java框架)011.SpringMVC入门

SpringMVC入门Spring集成web环境ApplicationContext应用上下文获取方式应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。在Web项目中,可以使用ServletContextListener监听Web应用的启动

2022-03-11 17:06:09 118

原创 【java学习之路】(java框架)010.声明式事务控制

声明式事务控制编程式事务控制相关对象PlatformTransactionManager*PlatformTransactionManager 接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法。注意:PlatformTransactionManager 是接口类型,不同的 Dao 层技术则有不同的实现类。例如:Dao 层技术是jdbc 或 mybatis 时:org.springframework.jdbc.datasource.DataSourceTransacti

2022-03-11 08:36:31 234

原创 【java学习之路】(java框架)009.面向切面编程AOP

面向切面编程AOPSpring 的 AOP 简介什么是 AOPAOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP 的作用及其优势作用:在程

2022-03-11 08:35:40 170

原创 【java学习之路】(java框架)008.JdbcTemplate

JdbcTemplateSpring JdbcTemplate基本使用JdbcTemplate概述它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。JdbcTemplate开发步骤① 导入spring-jdbc和spring-tx坐标② 创建

2022-03-10 09:51:05 485

原创 【java学习之路】(java框架)007.IoC和DI注解开发

IoC和DI注解开发Spring配置数据源数据源(连接池)的作用• 数据源(连接池)是提高程序性能如出现的• 事先实例化数据源,初始化部分连接资源• 使用连接资源时从数据源中获取• 使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等数据源的开发步骤① 导入数据源的坐标和数据库驱动坐标② 创建数据源对象③ 设置数据源的基本连接数据④ 使用数据源获取连接资源和归还连接资源数据源的手动创建① 导入c3p0和druid的坐标、导入mys

2022-03-10 09:39:41 117

原创 【java学习之路】(java框架)006.springIOC

spring简介spring是什么​ Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以loC(Inverse Of Control:反转控制)和AOP (Aspect Oriented Programming:面向切面编程)为内核。​ 提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。发展历程1997年

2022-03-09 10:30:26 166

原创 【数据结构的魅力】005.链表问题专项

链表问题专项1.快慢指针package class03;public class LinkedListMid { public static class Node{ public int value; public Node next; public Node(int v){ value = v; } } public static Node midOrUpMidNode(Node

2022-03-07 12:08:10 355

原创 【java学习之路】(java框架)005.mybatis-plus的使用

04mybatis-plus的使用​ MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。​ 特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持

2022-03-05 02:00:00 451

原创 【数据结构的魅力】004.堆、前缀树、桶排序、排序算法总结

堆排序**注意:**如果不要求排好的大根堆必须是有序的,那么可以使用注释中的方法将时间复杂度从O(n*logn)降低到O(n)语言提供的堆结构VS手写堆结构相关题目实现思路:k是多少,就把前k+1个数生成一个小根堆从小根堆弹出最小值,放到数组0下标的位置将第k+2个数加入小根堆,弹出最小值,放到数组1下标的位置周而复始…前缀树1)前缀树v1.0package calss02;public class TrieTree { public static cla

2022-03-04 19:21:41 435

原创 【数据结构的魅力】003.算法归并与随机快排

归并排序的实现1)递归方法实现2)非递归方法实现快速排序Partition过程实现思路:给定一个num,划定一个<=区,初始坐标为-1如果[i]==num,i++如果[i]<=num,将[i]与<=区的下一个位置的元素互换,<=区下标+1,i++i在数组越界位置停止思考:如果是分成<num,=num,>num三个区域呢?实现思路:给定一个num,划定两个区,一个为<=区,出示下标为-1,一个为>=区,初始下标为数组最大长度

2022-03-04 15:23:32 423

原创 【数据结构的魅力】002.单向、双向链表&栈和队列&递归

单向、双向链表单链表和双链表最简单的练习1)单链表和双链表如何反转2)删除给定值的全部节点遍历链表,找到第一个不是给定值的元素,即为头结点while与if结合使用,通过两个变量(类似指针)来删除节点栈和队列

2022-03-03 09:53:17 197

原创 【java学习之路】(java框架)004.Mybatis SQL映射文件详解

02Mybatis SQL映射文件详解​ 在之前我们学习了mybatis的全局配置文件,下面我们开始学习mybatis的映射文件,在映射文件中,可以编写以下的顶级元素标签:cache – 该命名空间的缓存配置。cache-ref – 引用其它命名空间的缓存配置。resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。parameterMap – 老式风格的参数映射。此元素已被废弃,并可能在将来被移除!请使用行内参数映射。文档中不会介绍此元素。sql – 可被其它语句

2022-03-02 16:00:00 367

原创 【java学习之路】(java框架)005.mybatis框架整合及逆向工厂

03mybatis框架整合及逆向工厂1、三大框架整合​ 在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的。1、导入pom文件1、导入spring的pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.

2022-03-02 15:59:49 119

原创 【java学习之路】(java框架)003.Mybatis的介绍和基本使用

01Mybatis的介绍和基本使用0、数据库操作框架的历程(1) JDBC​ JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序优点:运行期:快捷、高效缺点:编辑期:代码量大、繁琐异常处理、不支持数据库跨平台(2) DBUtils​ DBUt

2022-03-02 09:46:07 259 1

原创 【数据结构的魅力】001.认识复杂度&二分法&异或运算

常数时间操作如果一个操作的执行时间不以具体样本量为转移,每次执行时间都是固定时间。称这样的操作为常数时间的操作。常见的算术运算(+、-、*、/、%等)常见的位运算(>>、>>>、<<、|、&、^等)赋值、比较、自增、自减操作等数组寻址操作如何确定算法流程的总操作数量与样本数量之间的表达式关系?1,想象该算法流程所处理的数据状况,要按照最差情况来。2,把整个流程彻底拆分为一个个基本动作,保证每个动作都是常数时间的操作。3,如果数据量为N,

2022-03-01 20:12:33 359

原创 【java学习之路】(java框架)002.Git配置及使用

目标了解Git基本概念能够概述git工作流程能够使用Git常用命令熟悉Git代码托管服务能够使用idea操作git概述开发中的实际场景场景一:备份小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流场景二:代码还原这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的 代码已经回不到从前了。什么地方能买到哆啦A梦的时光机啊?场景三:协同开发小刚和小强先后从文件服务器上下载了同一个文件:A

2022-03-01 06:30:00 419

原创 【java学习之路】(java框架)001.Maven配置及使用

Maven简介Maven是什么Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM (Project Object Model):项目对象模型Maven的作用项目构建:提供标准的、跨平台的自动化项目构建方式依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题统一开发结构:Maven 开发环境搭建前提安装 jdk :Maven 工作时需要通过网络下载各种插件以完成任务,因此应保证网络的通畅。下载 mav

2022-02-28 16:46:35 337

原创 【java学习之路】(javaWeb【后端】篇)007.Ajax&Axios

第一章 Ajax1. 学习目标了解服务器渲染和Ajax渲染的区别了解同步和异步的区别2. 内容讲解2.1 服务器端渲染2.2 Ajax渲染(局部更新)2.3 前后端分离真正的前后端分离是前端项目和后端项目分服务器部署,在我们这里我们先理解为彻底舍弃服务器端渲染,数据全部通过Ajax方式以JSON格式来传递2.4 同步与异步Ajax本身就是Asynchronous JavaScript And XML的缩写,直译为:异步的JavaScript和XML。在实际应用中Ajax指的是:不

2022-02-28 12:57:21 570

原创 【java学习之路】(javaWeb【后端】篇)006.Filter&Listener

第一章 Filter1. 目标了解什么是Filter了解Filter的作用掌握Filter的使用了解Filter的生命周期掌握过滤器链的使用2. 内容讲解2.1 Filter的概念Filter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能. 过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html)之前执行. 过滤器是javaweb技术中最为实用的技术之一2.2 Filter的作用F

2022-02-28 12:56:37 149

原创 【java学习之路】(javaWeb【后端】篇)005.会话

第一章 会话1. 学习目标了解为什么需要会话控制了解会话的范围掌握使用Cookie掌握使用Session2. 内容讲解2.1 为什么需要会话控制保持用户登录状态,就是当用户在登录之后,会在服务器中保存该用户的登录状态,当该用户后续访问该项目中的其它动态资源(Servlet或者Thymeleaf)的时候,能够判断当前是否是已经登录过的。而从用户登录到用户退出登录这个过程中所发生的所有请求,其实都是在一次会话范围之内2.2 域对象的范围2.2.1 应用域的范围整个项目部署之后,只会

2022-02-28 12:55:17 219

原创 【java学习之路】(javaWeb【后端】篇)004.Thymeleaf

第一章 Thymeleaf入门1. 学习目标掌握MVC了解Thymeleaf的简介掌握引入Thymeleaf掌握Thymeleaf的入门案例2. 内容讲解2.1 MVC2.1.1 为什么需要MVC2.1.2 MVC概念M:Model模型V:View视图C:Controller控制器MVC是在表述层开发中运用的一种设计理念。主张把封装数据的『模型』、显示用户界面的『视图』、**协调调度的『控制器』**分开。好处:进一步实现各个组件之间的解耦让

2022-02-28 12:53:45 1179

原创 【java学习之路】(javaWeb【后端】篇)003.Request&Response

第一章 Request1. 学习目标了解Request的概念了解Request的组成部分掌握Request获取请求行的信息掌握Request获取请求头的信息掌握Request获取请求参数掌握解决请求参数乱码掌握Request域对象掌握请求转发2. 内容讲解2.1 Request概述2.1.1 Request的概念在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求

2022-02-28 08:27:34 420

原创 【java学习之路】(javaWeb【后端】篇)002.Servlet

第一章 Servlet的入门1. 学习目标了解Web资源了解Servlet的概念掌握Servlet的作用掌握Servlet的XML方式配置了解Servlet的注解方式配置2. 内容讲解2.1 Web资源的概念Web资源就是运行在服务器上的资源,它一共分为两类: 静态资源以及动态资源2.1.1 静态资源静态资源就是web页面中供人们浏览的数据始终是不变,例如我们之前所学习的html、css、js、图片、音视频等等都属于静态资源2.1.2 动态资源动态资源就是w

2022-02-28 08:23:50 246

原创 【java学习之路】(javaWeb【后端】篇)001.XML&Tomcat&Http协议

第一章 XML1. 学习目标了解配置文件的作用了解常见的配置文件类型掌握properties文件的编写规范掌握xml文件的编写了解xml文件的约束掌握xml文件的解析2. 内容讲解2.1 配置文件2.1.1 配置文件的作用配置文件是用于给应用程序提供配置参数以及初始化设置的一些有特殊格式的文件2.1.1 常见的配置文件类型properties文件,例如druid连接池就是使用properties文件作为配置文件XML文件,例如Tomcat就是使用XML文件作为配置文件YA

2022-02-28 08:22:13 343

原创 【java学习之路】(javaWeb篇)008.VUE

1. 学习目标了解什么是框架了解什么是Vue掌握Vue的基本语法了解Vue的生命周期2. 内容讲解2.1 什么是框架任何编程语言在最初的时候都是没有框架的,后来随着在实际开发过程中不断总结『经验』,积累『最佳实践』,慢慢的人们发现很多『特定场景』下的『特定问题』总是可以『套用固定解决方案』。于是有人把成熟的『固定解决方案』收集起来,整合在一起,就成了『框架』。在使用框架的过程中,我们往往只需要告诉框架『做什么(声明)』,而不需要关心框架『怎么做(编程)』。对于Java程序来说,我们使

2022-02-27 15:44:31 323

原创 【java学习之路】(javaWeb篇)007.正则表达式专题

正则表达式1. 学习目标掌握正则表达式的作用掌握正则表达式的语法了解常见的正则表达式2. 内容讲解2.1 正则表达式的概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。用我们自己的话来说: 正则表达式用来校验字符串是否满足一定的规则的公式2.2 正则表达式的用途所以正则表达式有三个主要用途:模式验证: 检测某个字符串是否符合规则,例如检测手机号、身份证号等等是否

2022-02-27 15:41:32 274

转载 【java奇思妙想】eval(data)和eval(“(“+data+“)“)的区别

如果data是字符串,使用eval("("+data+")")可以将其转换为json对象,和JSON.parse的功能一样。如果data是json对象,使用eval("("+data+")")会报错,正如你描述的错误。eval一个json对象,没有什么作用,这个时候不需要使用eval方法,直接用data即可。所以,如果你那边能确定后台返回的是字符串,就使用eval("("+data+")")(eval会带来很多问题,不建议使用,如果想实现转化用JSON.parse更好),如果后台返回的是json对象,什

2022-02-22 15:26:54 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除