![](https://img-blog.csdnimg.cn/bd4a7164050b4ff58e4e3d56e3f4fe4e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java学习笔记
本人的java学习笔记
零零年代的风
这个作者很懒,什么都没留下…
展开
-
Idea中如何在一个项目中引入其他子模块?
首先在Settings打开Project Structure,然后找到Modules,点击加号点击import module,将需要引进的module引进来。原创 2023-09-10 19:19:09 · 1159 阅读 · 0 评论 -
IDEA 断点调试,为啥有的时候断点没有起作用?
1.编译问题:确保代码已经编译并且最新版本已经部署到运行环境中。如果代码没有被正确编译或部署,断点可能无法生效。2.优化编译器:有些情况下,编译器可以对代码进行优化以提高性能。这可能会导致某些断点无法正常使用。您可以尝试禁用编译器优化来解决此问题。在Debug配置中打开“Enable alternative view for collections classes"选项。3.位置与源代码不匹配:如果您在调试时更改了源代码或移动了断点,但是运行时的代码与此不一致,那么断点可能会失效。请确保断点位置与实际执原创 2023-06-29 17:09:02 · 9506 阅读 · 0 评论 -
面试官:你说一说有哪些类型的缓存?
缓存是高并发场景下提高热点数据访问性能的一个有效手段,在开发项目时会经常使用到。缓存的类型分为:本地缓存、分布式缓存和多级缓存。原创 2022-12-13 20:21:10 · 217 阅读 · 0 评论 -
Java中抽象类(abstract class)和接口(Interface)的区别(详细)
1.抽象类可以有构造方法;接口不能有构造方法。2.抽象类中可以有普通成员变量;接口没有普通成员变量。3.抽象类中可以包含非抽象的普通方法;接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4.抽象类的抽象方法的访问类型可以是public、protected;接口中的抽象方法只能是pulic类型,且默认为public abstract5.抽象类中可以包含静态方法;接口中不能包含静态方法。6.抽象类和接口中都可以包含静态成员变量,抽象类中静态成员变量的访问类型可以任意,但接口中定义的变原创 2022-12-12 22:14:14 · 234 阅读 · 0 评论 -
看完就明白的CAS机制
CAS全称是Compare And Swap,比较并交换。原理:CAS机制当中使用了3个基本操作数:内存地址V,预期值A,要修改的新值B。在更新一个变量的时候,只有当内存地址当中的值等于预期值才会去修改为新值B。否则就会不断地重试,再次拿到预期值,然后再去与内存地址之中的数据进行判断,以此往复,会占用很大的CPU资源。CAS有一个经典的问题:**ABA问题**比如现在有三个线程:1,2,3 有一个数据数值为A线程1要将A修改为B。线程2要将A修改为B。线程3要修改为A。原创 2022-11-29 19:24:54 · 517 阅读 · 0 评论 -
进程与线程的区别
举个例子:就说咱们平时用的QQ,整个QQ是一个进程,他在传输文字,传输图片等都开线程。一个进程可以有多个线程,线程又叫轻量级进程,多个线程共享进程中的资源。进程是分配资源的最小单位,线程是CPU执行的最小单位。进程是运行中的应用程序,线程是进程内部的执行单位。进程有地址空间,线程地址空间是在进程中的。进程之间切换代价大,线程之间切换代价小。进程拥有的资源多,线程拥有的资源少。进程是父亲,线程是儿子。原创 2022-11-26 15:28:57 · 175 阅读 · 0 评论 -
面试官:你说一说ThreadLocal内存泄漏问题以及怎么解决
内存泄漏是由于疏忽或者错误未能释放已经不再使用的内存。每个线程都有一个自己的ThreadLocalMap,是线程独有的,别的线程无法访问到你所在的线程的ThreadLocalMap,ThreadLocalMap是entry结构的,他的key(是Threadlocal对象)是弱引用, 当不存在外部强引用的时候,在垃圾回收的时候会随时被回收,但是他的value是强引用,强引用链是Thread->ThreadLocalMap->entry->value。可以知道,只有当Thread被回收的时候,这个value才原创 2022-11-14 12:20:44 · 952 阅读 · 0 评论 -
浅谈HashMap的put方法
1.判断当前的hashmap长度是否为零或者等于null,是就resize(),否则往下走2.根据key找到数组的下标,找到该数组,看该位置是否等于null,是的话,直接插入,否的话,看key是否存在,是的话直接覆盖value,否的话看当前的数组是否是红黑树,是的话在红黑树中直接插入,否则他就是链表,遍历链表,看key是否存在于这个链表当中,若在,就覆盖value,若不在,就将key插入到链表的尾部(尾插法)。3.最后判断 一下当前的 hashmap中的元素个数是否大于threshold( capaci原创 2022-11-12 21:51:36 · 201 阅读 · 0 评论 -
浅谈volatile的实现原理
volatile可以保证可见性和禁止指令重排,但是不能保证原子性。一、在JVM底层中,被volatile修饰的变量,赋值之后有一个lock操作,这个操作相当是一个内存屏障,不允许lock之后的指令重排到lock之前执行。这是volatile可以禁止指令重排的原因。二、lock操作,它还有将处理器中的缓存写入内存的作用,该写入还会引起其他处理器无效化其缓存,在用到其值得时候只能去主内存中去刷出来在缓存到本地。这是volatile保证可见性的原因。原创 2022-11-12 17:31:38 · 120 阅读 · 0 评论 -
类变量和实例变量的区别
类变量是类中的静态变量,是用static修饰的变量,实例变量就是类中的成员变量,没有用static修饰的。原创 2022-11-10 21:28:16 · 5395 阅读 · 0 评论 -
浅聊一下分布式锁
分布式锁要保证有以下几点功能:1.互斥性:任意时刻,只有一个线程能够拿到锁。2.可重入:一个人拿到锁之后以后还可以再次的拿到锁。3.高可用:如果哪个服务的释放锁的逻辑出现问题,就可能会导致锁没有释放。高可用就是保证了即使出现问题锁也要正常的释放。原创 2022-11-06 17:52:02 · 755 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩的概念及解决方案
描述:指大量请求去访问缓存中的一个数据,然后这条数据过期了,然后短时间内大量的请求就打到了数据库上面,可能会把数据库给打挂掉。描述:缓存穿透是有些人恶意请求缓存和数据库中都不存在的数据,如果他请求次数非常的频繁,可能会把数据库打挂掉。描述:缓存服务宕机或者缓存同一时间大面积失效,造成大量请求打到了数据库上面,可能将数据库给打挂掉。,同一个key值只允许一个去访问数据库然后写缓存,其他线程访问缓存。,让一个线程去访问数据库将缓存写进来,其他线程访问缓存。解决办法:对于热点数据,设置永不过期,定时更新缓存。原创 2022-11-04 21:49:15 · 264 阅读 · 0 评论 -
java操作MongoDB随机取一条数据
mongo使用聚合函数可以直接实现、在控制台的命令如下。原创 2022-08-11 22:55:00 · 1239 阅读 · 0 评论 -
SpringTask定时任务---知识点
基本上,假定同时指定值的话,意义就会变得含混不清了:考虑一下,如果一个表达式在日域上有值11,同时在周域上指定了 WED。对于定时任务,我们使用的时候主要是注重两个方面,一个是定时任务的业务,另一个就是Cron表达式。只要记住,假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个?,表示每月、每天的17:00至17:59分,每分钟都会触发一次。不能同时这两个域上指定值的理由是难以解释甚至是难以理解的。作用:逗号表示给这个域指定一个值列表,即指定多个值。作用:表示在这个域上包含所有合法的值。....原创 2022-08-05 20:36:20 · 328 阅读 · 0 评论 -
Linux---常用命令
命令,查看文件的详细信息,其中每个文件的前10个字符就是文件的权限。,查看端口占用情况,从中找到"8080"第5~7个字符是拥有者同组用户的权限。第2~4个字符是文件拥有者的权限。第8~10个字符是其它用户的权限。第一个字符文件的类型。touch文件路径。rm-f文件路径。......原创 2022-07-22 15:35:07 · 545 阅读 · 0 评论 -
已解决com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL
大概就是SQL语句错误,我找来找去也没找到,因为我是先在数据库里测试好的SQL语句直接拿过来用的,所以目光没有在sql语句上面放太多。切记,SQL语句一定仔细写,建议新手先在数据库里写一遍试好了直接拿过来用。问题在拼接SQL语句的时候没有空格,就像下图的,连上了,所以出错了。最后查来查去都没有问题,还是检查SQL语句吧,终于找到了,看图。这是我的postman里的报的状态码500。这是在idea里报的错。...原创 2022-07-26 22:07:54 · 781 阅读 · 0 评论 -
阿里云短信服务接口触发天级流控Permits:10
短信验证码使用同一个签名,对同一个手机号码发送短信验证码,支持1条/分钟,5条/小时,累计10条/天。短信通知使用同一个签名和同一个短信模板ID,对同一个手机号码发送短信通知,支持50条/日。阿里云短信服务接口触发天级流控Permits10,这是个阿里云返回来的错误信息。...原创 2022-07-25 17:46:43 · 294 阅读 · 0 评论 -
Maven的常用命令以及生命周期
作用把程序包安装到本地仓库。项目里可以通过坐标引入程序包了。作用把主体代码进行编译,编译结果放到target目录里。默认生命周期DefaultLifeCycle。清理生命周期CleanLifeCycle。站点生命周期SiteLifeCycle。作用批量执行项目里的单元测试方法。作用删除掉target文件夹。注意单元测试类的类名必须以。作用把编译好的文件进行打包。...原创 2022-07-22 15:52:26 · 229 阅读 · 0 评论 -
Redis基本操作以及知识点
Redis基本操作以及知识点原创 2022-07-22 15:12:00 · 230 阅读 · 0 评论 -
Docker启动问题Job for docker.service failed because the control process exited witherror code.See...
Linux系统Docker启动问题Job for docker.service failed because the control process exited witherror code.See "systemctl status docker.service"原创 2022-07-22 12:56:57 · 245 阅读 · 0 评论 -
解决idea可以正常启动tomcat而直接部署项目启动cmd窗口一闪而过无法启动的问题
解决idea可以正常启动tomcat而直接部署项目启动cmd窗口一闪而过无法启动的问题原创 2022-07-01 18:25:33 · 905 阅读 · 1 评论 -
已解决idea连接数据库异常:Exception in thread “main“ com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version出现这个异常有两个原因:1.仔细查看自己的sql语句写错了没,可以把sql语句放到电脑安装数据库软件中去试试,没问题的话就是2.的问题;原创 2022-06-10 22:04:21 · 2853 阅读 · 0 评论 -
java上传文件到服务器
只有tomcat,所以就上传到本地的磁盘了,其实就是相当于在本地将文件复制到别的地方去,只不过经过了一个服务器首先是一个表单文件上传三要素;1.文件上传项的type属性值必须是file ===>>>才会有文件上传窗口!2.表单提交方式必须是post ===>>>get对提交数据大小有限制!3.表单form的enctype属性值必须是multipart/form-data默认是application/x-www-form-urlencoded:将整个表单作为一个整休!提交表单的数据都是文本数据(val原创 2022-06-01 17:46:22 · 5836 阅读 · 1 评论 -
java用户登录案例以及乱码处理问题(Filter)
java用户登录案例和用过滤器解决中文乱码问题原创 2022-06-01 17:11:35 · 405 阅读 · 0 评论 -
MVC模式的简单实例--查询所有用户信息(el表达式和jstl)
目录结构执行流程图执行结果(修改和删除功能未实现)index.html<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%-- Created by IntelliJ IDEA. User: 16949 Date: 2022/5/7 Time: 15:41 To change this template use File | Settings | File Templates原创 2022-05-07 19:16:14 · 1107 阅读 · 0 评论 -
浅谈Session与Cookie的区别与联系
一、Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一...转载 2022-05-06 21:38:45 · 312 阅读 · 0 评论 -
用Java简单实现验证码功能以及校验
目录结构流程图LoginServletpackage com.itheima.web.servlet.session;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.h原创 2022-05-06 21:28:32 · 2350 阅读 · 0 评论 -
简单的保存学生信息和查看学生信息(Servlet)
目录结构UserSevlet类package com.itheima.web.servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServle原创 2022-05-02 22:46:47 · 703 阅读 · 0 评论 -
Servlet模板配置
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#endimport javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;impor原创 2022-04-30 21:54:18 · 109 阅读 · 0 评论 -
Servlet接口实现类、路径匹配和url-pattern的配置几种方法
实现Servlet接口中的几个实现类(5个)* 重点 init(ServletConfig config):生命周期方法,会在serlvet对象创建之后马上执行,只执行一次 service(ServletRequest req, ServletResponse res):生命周期方法,会被调用多次,每次处理请求都会调用该方法 destroy():生命周期方法,会在servlet被销毁之前执行,只执行一次* 了解 getServletInfo(): 获取serlvet的信息 getServle原创 2022-04-29 21:24:12 · 559 阅读 · 0 评论 -
javascript的一些基础
js常用事件: onclick 鼠标单击 【文本、图片、超链接、按钮】 ondblclick 鼠标双击 【文本、图片、超链接、按钮】 onmouseover 鼠标移入 【商品图片、导航栏】 onmousemove 鼠标移动 onmouseout 鼠标移出 onfocus原创 2022-04-29 21:13:31 · 1185 阅读 · 0 评论 -
HTML中input标签功能介绍
我们先来了解一下input标签的几个基本控制属性。1. name属性:元素的名称,也就是name的值代表当前input元素的名字; 2.value属性:元素的默认值 1)当input type=“text”、“password”、"hidden"时,定义输入字段的初始值; 2)当input type=“button”、“reset”、"submit"时,定义按钮上的显示的文本; 3)当input type=“checkbox”、“radio”、"image"时,定义与输入相关联的值; 注意:input原创 2022-04-27 21:10:20 · 9528 阅读 · 0 评论 -
dom4j结合反射实现接口解耦合
一个Animal接口package demo04;/** * @program: * @description * @author: YunLong **/public interface Animal { void eat();}Animal接口实现类Catpackage demo04;/** * @program: * @description * @author: YunLong **/public class Cat implements Anim原创 2022-04-21 14:04:56 · 256 阅读 · 0 评论