![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA学习
文章平均质量分 68
一些JAVA的入门视频以及相关资料和一些练习中碰到的问题
minastinis of king
这个作者很懒,什么都没留下…
展开
-
基于session的验证方式和Token验证方式的区别,以及JWT的具体实现流程
1、传统的cookie认证过程长期以来,基于Session的认证(Session based authentication)一直处于主流地位。由于http协议是无状态的,借助cookie,客户端登陆成功后,服务端就能识别其后续请求,而不需要每次都登陆。它是有状态的(statefull),也就是服务端和客户端都需要保存生成的session,也就是说在服务端需要在数据库中追踪session是否alive,客户端要把session写入cookie中。基本过程如下:客户端登陆,一般输入用户名和密码服务端如原创 2021-07-29 20:42:23 · 529 阅读 · 0 评论 -
Elasticsearch的相关知识
最近项目中用到了elasticsearch来进行商品搜索的,所以专门总结如下:1. 倒排索引又称反向索引,比如以诗歌中的字作为key,诗歌作为value,但直接对诗中的每一个字和诗的内容建立索引就会导致索引量爆炸,所以一般都会直接将value换成诗的题目:再比如下面这个表格:我们可以建立名字和内容之间的索引:size的倒排索引:sex的倒排索引:大家可以看到所有的倒排所有都有Term和Posting List这两个概念,Posting list就是一个int的数组,存储了所有符合某个原创 2021-07-22 15:13:20 · 147 阅读 · 1 评论 -
前序遍历、中序遍历和后序遍历
前序遍历:前序遍历就像是从根节点出发的一个小人围着树跑了一圈中序遍历中序遍历就像是树画好之后在底下的投影比如这个图,中序遍历的结果就是HDIBEJAFKCG后序遍历:后续遍历就像剪葡萄,将葡萄一颗颗的剪下来比如这个图:HIDJEBKFGCA...原创 2020-02-03 10:01:57 · 462 阅读 · 0 评论 -
SpringBoot相关知识
1、SpringBoot介绍1.1 什么是Spring框架,说一说对Spring框架的理解Spring 是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring 为企业级 Java 开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java 对象(Plain Old Java Object,POJO) 实现了 EJB 的功能。Spring是很多模块的集合,这些模块是:核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测原创 2021-07-12 19:46:17 · 310 阅读 · 1 评论 -
Redis相关知识
1、简单介绍一下RedisRedis是一个使用C语言开发的非关系型数据库,不过与其他数据库不同的是,它直接存在于内存当中的,读写非常快美因茨Redis被广泛应用于缓存方向。作用:除了做缓存之外,常用于做分布式锁,甚至消息队列优势:除了支持多种数据类型的键值对之外,还支持事务、持久化,以及lua脚本语言以及多种集群方案。2、关系型数据库和非关系型数据库的区别非关系型数据库:性能:关系型数据库是基于二维表的,而非关系型数据库是基于键值对的,不需要经过SQL层的解析,性能十分高。可扩展性:数据原创 2021-07-09 17:08:59 · 86 阅读 · 0 评论 -
MySQL数据库相关知识
1、数据库底层1.1 MySQL的相关介绍1.1.1 常用的关系型数据库有哪些?MySQL、PostgreSQL、Oracle、SQL Server、SQLite1.1.2 MySQL的默认端口号?33061.1.3 MySQL存储引擎MySQL支持的存储引擎有InnoDB、MyISAM这两种是最终要的,此外MySQL还支持很多存储引擎,现在默认的存储引擎是InnoDB,也是唯一一个支持事务的存储引擎各存储引擎之间的区别(问题变种:如何选择存储引擎,主要是在MyISAM和InnoDB之间选择原创 2021-07-05 21:53:32 · 190 阅读 · 1 评论 -
计算机网络的相关知识
1. OSI与TCP/IP各层的结构与功能,都有哪些协议?五层协议结构:物理层、链路层、网络层、运输层、应用层1.1 应用层通过同一台主机应用进程间的交互来完成也定网络应用,其中包括域名系统DNS协议、支持万维网应用的HTTP协议、支持电子邮件的SMTP协议。1.2 运输层负责两台主机进程之间的通信提供通用的数据传输服务,也就是解决不同台主机应用进程间的交互,主要包含传输控制协议TCP以及用户数据协议UDP1.3 网络层负责不同主机间的逻辑通信,网络层的任务就是选择合适的网件路由和交换节点,确原创 2021-07-04 20:00:56 · 147 阅读 · 2 评论 -
操作系统的相关知识
1. 操作系统基础1.1 什么是操作系统?操作系统是管理计算机软硬件资源的一个程序,是计算机的基石。举例:你电脑上的程序就是通过操作系统来访问计算机上的CPU和硬盘资源的;屏蔽了硬件的复杂性,相当于是硬件的使用负责人操作系统的内核是操作系统的核心,主要负责硬件设备的管理、系统内存的管理、文件系统的管理。是软件和硬件之间的桥梁,决定着系统的性能和稳定性。1.2 什么是系统调用?进程在系统上运行有两种级别,首先是用户态,其次是系统态,前者可以直接获取用户程序运行的数据,而后者几乎可以访问计算机上原创 2021-07-02 21:36:20 · 149 阅读 · 1 评论 -
Java集合框架
1.Java集合概述从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。集合框架主要包含一下内容:接口:是代表集合的抽象数据原创 2021-06-21 15:26:50 · 325 阅读 · 0 评论 -
Java基础
1、Java语言的特点:1、面向对象2、平台无关性3、支持多线程4、可靠性5原创 2021-06-14 17:07:07 · 2159 阅读 · 2 评论 -
Java当中的常用的类型转换
1、如何将整数int转换成字符串String使用String.valueOf或者Integer.toStringint a = 100;String s1 = String.valueOf(a);String s2 = Integer.toString(a);注:Double、Float、Long转成字符串的方法大同小异2、如何将字符串String转换成整数int、float、double?Integer.parseInt(s)或者Integer.valueOf(s).intValue()原创 2021-06-15 16:34:49 · 1046 阅读 · 1 评论 -
有关JVM的一些学习资料
其中比较全面的就是Java Guide中的有关JVM的一些知识,因为这些东西说实话我是真的不懂,你让我自己去学,我就只能去看书了,但是书又太贵,所以只能死记硬背一些别人的东西,说实话这样原创 2021-06-06 11:20:04 · 104 阅读 · 0 评论 -
有关乐观锁和悲观缩的知识
今天学习JVM,在学到对象的创建过程中有一个步骤叫做内存分配,为了解决内存的并发问题主要有两种方式,一种是CAS+失败重试,一种是TLAB,前者就涉及乐观锁的相关思想,所以在这里总结一下乐观锁和...转载 2021-05-28 22:13:46 · 72 阅读 · 0 评论 -
有关脏读、脏写、不可重复读、幻读的企业级理解
https://zhuanlan.zhihu.com/p/150107974转载 2021-05-28 22:06:12 · 74 阅读 · 0 评论 -
有关符号引用和直接引用
最近在学习JVM时,经常会看到对象创建的过程中有一个步骤是类加载检查,它主要是去运行时常量池中查看是否存在有该类的符号引用,从而检查这个类是否被加载、解析和初始化过。这个符号引用究竟是什么意思呢?查了一些资料...转载 2021-05-28 22:04:26 · 443 阅读 · 0 评论 -
有关JAVA中的字段和属性
属性和字段区别:Java中的属性(property),通常可以理解为get和set方法。更形象的说就是:属性是对字段的封装,供外部访问。而字段(field),通常叫做“类成员”,或 "类成员变量”,有时也叫“域”,理解为“数据成员”,用来承载数据的。比如,name字段是私有的,调用getName()方法时,我们要说是获得name属性,调用setName(String name)方法时要说设置name属性。对字段的操作通过属性来控制。通常属性将相应的私有字段通过封装成公共属性,以便于外界访问和修改转载 2021-05-28 21:47:06 · 535 阅读 · 0 评论 -
各种排序方法以及JAVA实现
先给出一张表,今天这个博客介绍的就是这10种排序方法,都是从互联网上其他经典讲解中搜刮过来的。1、插入排序这个我就是始终和选择排序混淆,现在定义这个插入排序的功能是将无序段中的第一个数不断往前平移,直到在有序段中找到适合它的位置。public void order(int[] s) { for (int i = 1; i < s.length; i++) { for (int j = i; j > 0; j--) { if(s..原创 2021-05-23 11:40:47 · 132 阅读 · 1 评论 -
转一转大佬们有关“==“、“equals“、“hashcode“的说法
1、有关"=="其作用就是为了判断两个对象的地址是不是相等。说明白一点,就是判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型比较的是内存地址)2、有关equals其作用就是为了判断两个对象是否相等。一般分两种情况:1、Object类中默认的equals方法,是和"=="等价的,即比较内存地址2、重写equals方法。这个就是开发者自己设定判断条件了,一般比较的是两者的内容是否相等。比如String中的equals方法是被重写过的,直接比较对象的值;而且放创建转载 2021-05-06 16:26:56 · 135 阅读 · 0 评论 -
Java遍历Map的4种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 2); // 1. entrySet遍历,在键和值都需要时使用(最常用) for (Map.Entry<Integer, Integer>.转载 2021-01-14 11:09:32 · 81 阅读 · 0 评论 -
SSM三大框架整合
SSM三大框架整合是一个十分重要的内容,涉及到之前对三大框架的理解,在以后项目中用到的也是最多的,所以在这里写下一个比较详细的步骤1.创建数据库数据库创建的脚本如下:create database ssm;create table account(id int primary key auto_increment,name varchar(100),money double(7,2),);2.新建maven工程,导入依赖的包:<?xml version="1.0" e原创 2020-12-03 10:16:59 · 173 阅读 · 0 评论 -
安装oracle数据库踩的坑
1.没有关闭虚拟机的防火墙,这样你ping都ping不通2.ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:https://blog.csdn.net/weixin_42829639/article/details/892247813.安装一开始让你输入的口令就是oracle的密码。...原创 2020-10-29 22:30:01 · 122 阅读 · 0 评论 -
Spring MVC知识点复习二
一、有关SpringMVC的响应问题1.响应之返回值是字符串这种响应就像我们前面一篇博客说的没有什么特殊之处。在这里仅把代码放在这里@RequestMapping("/stringResponse") public String stringResponse(Model model){ System.out.println("testResponse执行了"); User user = new User(); user.setUserna原创 2020-10-25 10:55:29 · 69 阅读 · 0 评论 -
Spring MVC知识点复习一
一、SpringMVC环境搭建既然学到了SpringMVC了,那么我们就把前面的MyBatis、Spring都联系起来,在一整个web项目中他们三个是各司其职,分别负责服务器端的表现层、业务层、持久层。1.首先还是导入jar包依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source&原创 2020-10-24 10:30:07 · 109 阅读 · 0 评论 -
MyBatis知识点复习
MyBatis的这个老师比较厉害,直接教你手撕源码,但是这个手撕的过程有点困难,有点晦涩。我连听了两遍还是一脸的懵逼,所以这个地方我们有空再回来听,还是把入门的代码在这里记录一下,不然时间越长忘得越多,到时候就啥都想不起来了。MyBatis的环境搭建1.创建Maven工程并导入坐标<dependencies> <dependency> <groupId>org.mybatis</groupId>原创 2020-10-22 10:31:42 · 108 阅读 · 0 评论 -
上传图片报错:returned a response status of 403 Forbidden
有小伙伴可能在学习到上传图片的时候发现,上传出现500的错误。我们知道,500的错误是服务器的错误,并不是我们代码的错误。看了报错代码发现关键字:returned a response status of 403 Forbidden这是什么意思呢?翻译过来就是返回了“被禁止(403)的响应”。上传文件涉及到读写权限,这个报错的意思就是服务器(Tomcat)没有写入的权限。解决方法如下:找到Tomcat的目录,依次打开/conf/web.xml文件在web.xml文件中找到servle转载 2020-10-15 21:09:40 · 653 阅读 · 0 评论 -
Spring知识点复习二
1.一个简单的转账案例我们以一个最简单的转账的例子开始,就是像前面学JAVA Web时用到的转账,然后结合事务的操作来引入Spring的AOP。在这里其他代码都跟前一天的数据库增删改查大差不差,所以在这里只展示AccountServiceImpl中的transfer方法,即转账功能:public void transfer(String sourceName, String targetName, Float money) { //1.根据名称查询转出账户 A原创 2020-10-08 22:28:32 · 96 阅读 · 0 评论 -
Spring知识点复习一
学习Spring主要需要掌握两种技术或者说思想,一个IoC(Inversion of Control)控制翻转以及AOP(Aspect Oriented Programming)面向切面编程。这些在之后使用Springboot后都会得到大大的简化,但是这种解耦的思想与方法还有中间使用的设计模式是十分重要的,在面试的时候也经常会被问到。一、耦合性和解耦耦合:1、耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。2、在软件工程中,对象之间的耦合度就是对象之间的原创 2020-10-04 21:18:18 · 343 阅读 · 0 评论 -
复习5:filter、JQuery、redis
之所以把这三个放在一起说是因为这些东西的内容都比较少。优势JAVA-web的一些收尾部分,所以放在最后一起进行一个复习。1.过滤器filter作用:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。应用: 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤…它的学习过程和servlet是一致的,第一步是学习如何创建,即继承一个接口,然后重写其中的方法。第二步是学习其中的三种生命周期方法,用的比较多的就是doFilter。第三步就是学习如何配置滤波器,配置滤波器还原创 2020-08-27 09:35:38 · 241 阅读 · 0 评论 -
复习4:会话机制与JSP
1.总结一下编码的问题对于request.setCharacterEncoding(“utf-8”);用来确保发往服务器的参数的编码格式,设置从request中取得的值或从数据库中取出的值。指定后可以通过request.getParameter()获取自己想要的字符串,如果没有提前指定,则会按照服务器端默认的“iso-8859-1”来进行编码;当提交的表单中存在中文字符时务必使用这个编码语句。response.setContentType(“text/html;charset=utf-8”);原创 2020-08-18 21:15:04 · 172 阅读 · 0 评论 -
复习3:Request和Response
1.Servlet的相关知识首先是要清楚Servlet的一个体系结构,原先我们是通过实现Servlet接口并重写其中的抽象方法来实现类的创建的。就像下面这样:package cn.itcast.web.servlet;import javax.servlet.*;import javax.servlet.annotation.WebServlet;import java.io.IOException;@WebServlet("/demo1")public class ServletDem原创 2020-08-01 17:12:21 · 168 阅读 · 0 评论 -
复习2:JAVA Script、BootStrap以及XML复习
1.JDBC练习题采用Java Script编写一个9*9乘法表<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>9*9乘法表</title> <style> td{ border: 1px solid; } </style>原创 2020-08-01 06:03:20 · 245 阅读 · 0 评论 -
复习1:数据库以及JDBC复习
这段时间一直都是在学习javaEE的相关内容,一直都是边听课边操作,一直听到了后面会话的内容了,但是前面的一些知识由于内容过多所以很多都忘记了。在这里分几次进行复习,第一次先复习数据库的先关内容。在这里主要不是将所有的知识点都囊括进来,而是将上课老师提到的面试题以及一些经典例题以及老师上课的一些思路进行一些整体,方便之后能够对照着代码进行反复学习。1.面试题:1. 什么是SQL?答:Structured Query Language:结构化查询语言其实就是定义了操作所有关系型数据库的规则。每一种数据原创 2020-07-30 23:03:26 · 351 阅读 · 0 评论 -
sun.misc.BASE64Encoder 不建议使用java.sun自带包中的内容
https://blog.csdn.net/qq_29178991/article/details/79666924http://www.voidcn.com/article/p-baohgfhb-bwe.html原创 2020-07-29 11:38:30 · 137 阅读 · 0 评论 -
java.lang.classnotfoundexception问题
https://www.jianshu.com/p/009c75ef09e4转载 2020-07-28 13:10:00 · 133 阅读 · 0 评论 -
MySQL数据库相关知识
DDL、DML、DQL以及DCL1.DDL操作数据库:CRUD1.C(Create):创建create database 数据库名称;create database if not exits 数据库名称;create database if not exits 数据库名称 character set gbk;2.R(Rereieve):查询show databases;show create database 数据库名称;3.U(Update):修改修改数据库的字符集alter dat原创 2020-07-14 16:25:52 · 244 阅读 · 0 评论 -
插入算法(直接插入、二分插入、希尔)
直接插入排序(straight insertion sort)的做法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。直接插入排序是由两层嵌套循环组成的。外层循...转载 2020-03-02 09:44:41 · 7718 阅读 · 1 评论