学习笔记
文章平均质量分 79
fager漫长路
记录学习点点滴滴。
展开
-
websocket详细介绍
HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理,HTTP 协议无法实现服务器主动向客户端发起消息。转载 2022-07-06 10:22:57 · 287 阅读 · 0 评论 -
SpringBoot 起步依赖+SpringBoot配置
一、SpringBoot 起步依赖1)版本锁定如spring-boot-starter-parent中,指定了版本,子module中不需要再次指定版本<dependencyManagement></dependencyManagement>2)依赖传递如spring-boot-starter-web中二、SpringBoot配置(一)配置文件分类SpringBoot 是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认的话,就可以使用applica原创 2021-09-04 14:29:07 · 661 阅读 · 0 评论 -
java的Stream流、方法引用
传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元 素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如:import java.util.ArrayList;import java.util.List; public class Demo01ForEach { public static void main(String[] args) { List<St原创 2021-08-14 14:50:08 · 219 阅读 · 0 评论 -
JVM调优_jdk自带的小工具
jvm调优原创 2020-07-07 23:25:57 · 335 阅读 · 0 评论 -
偏向锁_升级_降级
偏向锁是为了在资源没有被其他线程竞争的情况下尽量减少锁带来的性能开销。在锁对象的对象头中有一个ThreadId字段,当第一个线程访问锁时,如果该锁没有被其他线程访问,即ThreadId字段为空,那么JVM让其持有偏向锁,并将ThreadId字段的值设置为该线程的ID。当下次获取锁时,会判断当前线程的ID是否与锁对象的ThreadID的值一致。如果一致,那么线程就不会再重复获取锁,从而提高了程序的运行效率。如果出现锁的竞争情况,那么偏向锁会被撤销并升级为轻量级锁。如果资源竞争非常激烈,会升原创 2020-06-29 09:20:07 · 379 阅读 · 0 评论 -
JVM内存模型_图文并茂
有了这些图,JVM就是活的!原创 2020-06-14 21:50:53 · 338 阅读 · 0 评论 -
并发编程的魅力_3天打基础_fager
内存模型+volatile+synchronized+AQS++...原创 2020-06-14 11:43:41 · 466 阅读 · 0 评论 -
ConcurrentHashMap_没想到我还是躲不过你
写在前HashMap、ConcurrentHashMap,我在还没学java的时候就有耳闻。记得大三那会,去西二旗那面试,被问到HashMap,我也不会啊,只学了基本的面向对象、继承、基本类型啊,一问三不知…当然,面试不到10分钟,被叫回去等通知了…时隔一年,哦不,是2年,我又回来了,这次谁再问我HashMap, 直接360度无死角的怼死他…在这里, 我查阅不下20篇博客, 看了好几个老师讲源码, 自己也看了源码, 也来聊聊我脑子里存的干货。不过,码字这玩意太费神了,我就拿一些大佬们的过来记一笔,省的原创 2020-06-12 21:33:30 · 199 阅读 · 0 评论 -
transient关键字_序列化理解
transient 关键字1)transient修饰的变量不能被序列化;2)transient只作用于实现 Serializable 接口;3)transient只能用来修饰普通成员变量字段;4)不管有没有 transient 修饰,静态变量都不能被序列化;...原创 2020-06-11 23:05:33 · 315 阅读 · 0 评论 -
volatile关键字理解_Sync_AQS
良心推荐彻底理解volatile关键字https://blog.csdn.net/fumitzuki/article/details/81630048【Java线程】volatile的适用场景https://blog.csdn.net/vking_wang/article/details/9982709自己的理解volatile关键字是由JVM提供的最轻量级同步机制。被volatile修饰的变量保证对所有线程可见(可见性)。禁止指令重排序优化(有序性)。不满足原子性。对被volatile修饰的原创 2020-06-09 18:15:43 · 149 阅读 · 0 评论 -
AQS_手撕同步器锁_探究AQS并发核心实现
AQS全称为AbstractQueuedSynchronizer,抽象队列同步器。是java.util.concurrent.locks包下的抽象类,可在源码中阅读注解了解其如何使用,实现原理。AQS是java实现的同步机制,对比synchronize这个c++实现的同步锁有更细致的设计、更贴切生产中的场景。原创 2020-06-08 23:56:56 · 158 阅读 · 0 评论 -
懵懂红黑树_弱点
我想系统的学习红黑树,之前或多或少了解了一些红黑树的概念,它是一种数据结构,是由二叉树衍生的,节点估计是红黑交替的,红黑树会旋转。也仅仅如此的模糊印象,一探究竟,揭开神秘面纱。原创 2020-06-06 14:57:18 · 183 阅读 · 0 评论 -
简单排序_java实现_自定义
简单排序的java代码实现: 包括冒泡排序、插入排序、选择排序等原创 2020-06-06 12:05:24 · 108 阅读 · 0 评论 -
数据结构_数组_自定义
前言想搞算法题,还是需要精通数据底层结构. 使用java语言封装简单的数组类.package ch01;public class MyArray { private long[] arr; //表示有效数据的长度 private int elements; public MyArray() { arr = new long[50]; } public MyArray(int maxsize) { arr = new long[maxsize]; } /** *原创 2020-06-06 11:09:04 · 147 阅读 · 0 评论 -
SpringBoot_入门_日志与Web_弱点2
接上https://blog.csdn.net/qq_41953807/article/details/106498533三、日志1、日志框架小张;开发一个大型系统; 1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件? 2、框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar; 3、高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar? 4、将以前框架卸下来?换上原创 2020-06-03 23:08:40 · 385 阅读 · 0 评论 -
SpringBoot_入门_配置文件_弱点
虽然已经参与过几个使用spring boot开发的项目,但今天再回头系统学习spring boot还是让我打开眼界. 尤其是在自动配置的用法上, 受益匪浅.原创 2020-06-02 16:11:52 · 190 阅读 · 0 评论 -
ElasticSearch_得心应手_弱点
写在前希望通过学习从了解->理解->使用->得心应手->底层探究->改进。能够理解ElasticSearch的作用能够安装ElasticSearch服务能够理解ElasticSearch的相关概念能够使用Postman发送Restful请求操作ElasticSearch能够理解分词器的作用能够使用ElasticSearch集成IK分词器能够完成es集群搭建一、ElasticSearch简介概念Elaticsearch,简称为es, es是一个开源的高原创 2020-06-01 16:22:28 · 157 阅读 · 1 评论 -
Lucene_全文检索_弱点
Lucene全文检索,是java编写的全文检索工具,solr和es底层都是用的Lucene原创 2020-06-01 13:43:44 · 188 阅读 · 0 评论 -
Mybatis_使用至上_自过篇
- mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。- mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。- 采用 ORM 思想解决原创 2020-06-01 10:46:28 · 188 阅读 · 0 评论 -
MySQL基础_4类SQL_约束_多表_事务_弱点
本节主要讲述SQL的基本概念,DDL、DML、DQL、DCL的sql分类;DQL增强语法介绍;约束专题;在业务开发过程中常用的是DML和DQL,也就是对数据的基本操增删改查。也是主要学习的内容。原创 2020-05-31 12:42:36 · 136 阅读 · 0 评论 -
Linux&Nginx_弱点
- 之前未接触过Nginx,对Nginx的印象比较模糊,希望通过本节的学习,了解Nginx的概念, 作用, 使用 ,最后到原理探究, 去吧, 皮卡丘!- 经过对Nginx的学习,大致掌握了反向代理、负载均衡的概念,反向代理就是当我们访问tomcat上部署的应用程序时,不是直接访问到tomcat,而是在用户和tomcat之间夹杂着Nginx,通过Nginx进行拦截分配,根据Nginx的调度之后去访问指定的tomcat,达到了访问一个Nginx实现n*tomcat并发数的高并发的作用。而负载均衡就是Nginx原创 2020-05-30 17:26:47 · 156 阅读 · 0 评论 -
Linux_参照
之前有接触过服务器, 也熟悉linux的基本操作,对于基本使用已经没什么问题了.一些关于linux的语法运用还不是很熟练, 对于linux的脚本也运用生疏,需要一些练习加强.原创 2020-05-30 17:02:34 · 165 阅读 · 0 评论 -
Maven_弱点
- maven用pom.xml来管理jar包,大大节省了程序的空间,尤其是多个项目时,很多重复jar包浪费大量空间.- 本节将重点关注maven的常用命令, 浅显一点的原理, 掌握坐标的概念...原创 2020-05-29 23:15:52 · 229 阅读 · 0 评论 -
Redis&Jedis_弱点
还没想好转载 2020-05-29 15:52:30 · 145 阅读 · 0 评论 -
Ajsx&Json_弱点
本节内容较少,也不难, 但是很重要, 在前后端集成的时候用的比较频繁. 之前开发就使用过ajax的请求方式, JSON的话,用fastJson比较多,不过实现的效果都是一样的. 比较有用的是 注解@JsonFormat:属性值得格式化,很多时候,实体类在接收前端数据的时候, 需要将前端传输过来的时间转化成指定的格式,再进行处理.原创 2020-05-29 14:07:47 · 134 阅读 · 0 评论 -
JQuery由浅入深_弱点
本质就是对javascript原生代码的封装的js文件,不难,自己就能封,花点时间罢了(自我心里安慰+1)。使用`<script src="js/jquery-3.5.1.min.js"></script>`引入js文件。大家都在用jquery,确实有必要非常熟练一些常用的方法了,尤其是前后端集成的时候。jquery提供了选择器、属性操作、删改操作、动画、事件绑定、遍历等,也保留了对外开放(可自行增加插件\$.fn.extend和\$.extend),学完之后的总体感觉是比较简单, 主要是多运用实战,熟练语原创 2020-05-28 20:28:16 · 255 阅读 · 0 评论 -
Filter&Listener_弱点
Web三大组件,Servlet、Filter、Listener,差不多都是从概念、作用、原理、注意事项、如何使用 的思路进行学习,过滤器印象比较深的就是想起小红帽去外婆家,路上遇到土匪,拦截一波,到达外婆家;回来又被土匪拦截。路上可能有多伙土匪,拦截的顺序也是类似。然后谈到生命周期,就是初始化、等待拦截、销毁的过程,主要作用就是可以拦截客户端向服务器访问的资源,进行权限控制或者在当中增强某些操作。再就是谈到注解配置和web.xml配置, 注解都是好简单的那种,一个注解.Servlet的注解是@WebServ原创 2020-05-28 15:11:46 · 135 阅读 · 0 评论 -
JSP+EL+JSTL_弱点
本文主要讲解el和jstl的基本语法和快速使用, 略带了一下jsp的9大内置对象, el的11个隐式对象,主要讲pageContext获取reques和获取contextPath虚拟目录的用法. el表达式获取域内的值的问题,优化空的问题,empty运算; jstl标签引包,jsp使用taglib导入的使用, 主要讲if choose forEach三大标签. 其实很简单的...然后带过三层架构,联系Servlet与JSP与DAO的问题..原创 2020-05-27 22:05:23 · 222 阅读 · 0 评论 -
Cookie&Session笔记_弱点
今天学完Cookie和Session的会话技术后, 获益匪浅,同时也巩固了之前学的零零散散的jsp.首先Cookie是存储在客户端浏览器上,创建时是两个String的入参,表明大小受限制;可以存储多个Cookie,载体是请求头和响应头,Cookie: 会话就是在同一个浏览器上,如果中途换浏览器或关闭浏览器,Cookie就会失效的.Session的原理是依赖Cookie,存储在服务端的,String,Object的键值对的 大小无限制的,原创 2020-05-27 10:22:40 · 88 阅读 · 0 评论 -
Servlet与Http_Request&Response_代码
Servlet接口的简单实现类, 不使用web.xml配置,而使用servlet3.0支持的注解@WebServlet配置.关于HttpServletRequest的常用方法, 重点关注post请求体数据流乱码解决+Enumeration类的迭代获取请求头+ServletContext 理解+URI vs URL+根据请求头内容防盗链/处理浏览器兼容问题.原创 2020-05-27 09:32:13 · 125 阅读 · 0 评论 -
Servlet与Http_Request&Response_理论
之前对Http协议进行了精读、细读,知道现在的主流框架Spring对Http的封装,也常常反思所用到的RestTemplate的工具类底层如何实现,在经过前前后后的学习中,已初步有了一定的猜想,理论上研读了http和tcp/ip协议群,已经打通,在代码实现上,经历了Socket编程的tcp和简单udp实现,虽未精通,但路已通,还差socket如何成就封装成HTTP。现在贯通Http与Servlet这条路……解答心中疑惑原创 2020-05-26 16:57:39 · 238 阅读 · 0 评论 -
Tomcat与Servlet学习笔记_全面普及
此前已断断续续的学习了韩顺平老师讲的Servlet,自行又参与了多个ssm项目,因此对Servlet有了新的认识,现在回顾查缺补漏,完善知识体系,完善tomcat和servlet的相关系统性的概述知识,同时巩固、验证所学所想。原创 2020-05-26 14:53:51 · 176 阅读 · 0 评论 -
XML初探_可扩展标记语言
XML的发展之路充满艰辛,由于html语法松散,各大浏览器运营开发商恶性竞争,导致w3c不满,要研制一款语法严谨的xml. 当然xml语法严谨,难以在展示数据上与html匹敌, 于是根据自己的优势,可扩展且自定义、可视化较好,便从展示数据战略转移到存储数据战略上,渐渐获得认可,与properties竞争渐渐占据上风,xml的学习也因此拉开帷幕……原创 2020-05-26 09:51:14 · 219 阅读 · 0 评论 -
Web 前端框架_Bootstrap简单使用
前言学完html+css+javascript后,发现难度最高的不是逻辑复杂的JavaScript,也不是标签多的html,而是css.bootstrap提供了前端css的样式和js代码,供使用,便于开发Bootstrap:1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。 * 框架:一个半成品软件,开发人员可以在框架基础上,在进行开发原创 2020-05-25 23:01:45 · 340 阅读 · 0 评论 -
JavaScript的演示demo_html文件
介绍javascrip的简单使用demo, 可以根据demo快速的搭建起需要的功能, 主要是简单的具体化的知识体系框架,供后续使用方便查看.原创 2020-05-25 18:02:57 · 919 阅读 · 0 评论 -
java异常总述_自定义异常
【异常】主要内容异常教学目标 能够辨别程序中异常和错误的区别 说出异常的分类 说出虚拟机处理异常的方式 列举出常见的三个运行期异常 能够使用try…catch关键字处理异常 能够使用throws关键字处理异常 能够自定义异常类 能够处理自定义异常类第一章 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终原创 2020-05-25 15:20:24 · 964 阅读 · 0 评论 -
简述Comparable和Comparator两个接口的区别_自定义比较规则
2.2 Comparator比较器我们还是先研究这个方法public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。不过这次存储的是字符串类型。public class CollectionsDemo2 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String&原创 2020-05-25 15:03:38 · 555 阅读 · 0 评论 -
Java集合总述_单列集合Collection+双列集合Map
集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?* 数组的长度是固定的。集合的长度是可变的。* 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。原创 2020-05-25 14:50:45 · 1190 阅读 · 0 评论 -
JavaScript课堂笔记_从了解到掌握
超链接具有点击功能和跳转到href指定的url页面,现在有需求是利用a标签实现点击a标签,只保留点击事件,而不需要跳转,如何实现?设置href="javascript:void(0);" 其中void方法可以改成自定义的方法.原创 2020-05-22 10:05:36 · 165 阅读 · 0 评论 -
自定义openwrt的配置界面:luci进阶之路
Luci是 Lua ConfigurationInterface的简称,主要为openwrt提供配置接口,openwrt利用uhttpd服务,运行web程序,进而使luci的代码能够在浏览器上与用户进行可视化的操作,便于配置路由参数和一些其他应用的参数。原创 2020-05-20 10:21:34 · 18925 阅读 · 7 评论