java
文章平均质量分 50
起个名字12143
这个作者很懒,什么都没留下…
展开
-
@TableLogic注解
@TableLogic注解原创 2023-02-07 16:36:55 · 600 阅读 · 0 评论 -
Zipkin和Sleuth
多少度原创 2022-08-11 22:25:59 · 2087 阅读 · 0 评论 -
设计模式XX
的原创 2022-08-10 23:31:17 · 102 阅读 · 0 评论 -
为什么implements Serializable
implements Serializable原创 2022-06-26 10:49:48 · 89 阅读 · 0 评论 -
获取本地github地址的网址
132原创 2022-06-20 22:21:40 · 701 阅读 · 0 评论 -
对于SpringBoot中starter的理解
1.spring-boot-starter-web包自动帮我们引入了web模块开发需要的相关jar包。2.官方那个提供的starter长这样:spring-boot-starter-*** 第三方的starter长这样 ***-spring-boot-starter原创 2021-07-07 10:11:10 · 106 阅读 · 0 评论 -
类的全限定名是什么
包名+类名原创 2021-06-29 16:40:44 · 1642 阅读 · 0 评论 -
Mybatis使用系统提供的增删改查方法
service层要继承IService<对应的pojo名字>例如:public interface LessonService extends IService<Lesson> {ServiceImpl层要继承ServiceImpl<LoginMapper, Login>例如:public class LoginServiceImpl extends ServiceImpl<LoginMapper, Login> implem.原创 2021-03-14 21:21:38 · 100 阅读 · 0 评论 -
Shiro
1.JPARealm 直接到how2J里面的这一块看这块的代码2.Shiro配置 如上shiro 使用shiro进行登录的验证Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(name, userParam.getPassword()); try { subject.login(token...原创 2021-03-14 20:35:52 · 84 阅读 · 0 评论 -
Static
1.修饰成员变量和成员方法。这时候可以使用类名.变量名 来调用。在类被初次加载的时候就会被初始化。2.修饰代码块就是静态代码块当调用静态方法或者静态变量的时候,也会随着调用静态代码块静态代码块无论你创建几个该类的对象,静态代码块都只会执行一次。比如:Test类static{ System.out.println("Test6 static block");}{ System.out.println("Test6 non-static block");}.原创 2020-05-31 22:44:09 · 143 阅读 · 1 评论 -
记数组的使用方法
1.静态使用int [] arr=new int[]{1,2,3,4};int [] arr={1,2,3,4};2.动态使用int [] arr=new int[10];arr[0]=1;arr[1]=2;原创 2021-03-10 20:54:14 · 105 阅读 · 0 评论 -
记int和Integer问题
1.当int类型和Integer类型进行比较的时候会把integer类型进行拆箱,如果值一样的话就会相等。2.new的Integer是对象 是存储在堆中的 而普通的不是new的Integer对象则是存储在常量池中的3.②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为falsejava在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-1...原创 2021-03-10 16:23:05 · 118 阅读 · 0 评论 -
正则表达式学习
正则表达式以/开头和结尾 //g表示全局匹配 //i表示忽略英文字母的大小写//m多行匹配?这个没搞明白1.[sad] 匹配一个字符串里所有的sad字母 会把这些字母都给打印出来2.[^sad] 会匹配除了sad的所有字母3.[A-Z] 匹配所有大写字母 同理可以应用为小写字母和数字4.[\s\S] \s是匹配所有空白符包括 包括换行 \S匹配所有的非空白字符 不包括换行5.\w 匹配字母数字下划线等 等价于[A-Za-z0-9_]量词1.*...原创 2021-03-09 01:12:39 · 65 阅读 · 0 评论 -
Calendar和Date,DateTime等日期类
1.SimpleDateFormat的使用Date date=new Date();SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); // 注意MM和HH要大写,因为就像MM(月),mm(分钟) 要区分开String date1=simpleDateFormat.format(date); //转换成 SimpleDateFormat 的格式,但是转换后要成成Date date2=simp原创 2021-02-04 11:11:11 · 157 阅读 · 0 评论 -
Mybatis使用问题
当有多个相同类型的参数同时到mapper.xml中去操作的时候再mapper文件中对参数要加上@Param("接收的参数值")int getBByTeacherIdAndCategoryIdAndCatsn(@Param("teacherId")int teacherId, @Param("categoryId")int categoryId, @Param("catSn")int catSn); <select id="getBByTeacherIdAndCategoryId.原创 2020-12-28 11:44:58 · 72 阅读 · 0 评论 -
双亲委派
双亲委派模型的作用:避免类的重复加载(相同的类文件被不同的类加载器加载产生的是不同的类)。??也保证了 Java 的核心 API 不被篡改??如果没有使用双亲委派模型,而是每个类加载器加载自己的话就会出现一些问题,比如我们编写一个称为 java.lang.Object 类的话,那么程序运行的时候,系统就会出现多个不同的 Object 类。什么是双亲委派模型:就是一个类加载收到了一个...原创 2020-05-02 23:00:53 · 82 阅读 · 0 评论 -
TCP三次握手和四次挥手
1.各个符号的意思标志位 ACK:确认序列号有效,ACK=1时,确认序号才有效,为0时无效 SYN:发起一个新链接ack:确认序号,ack=发起方seq+1,两端配对,只有ACK标志位为1时,确认字段才有效seq:占32位,用来标识从源端向目的端发送的字节流,发送方发送数据时对此进行标记2.三次握手是什么第一次握手:发...原创 2020-04-07 19:06:55 · 351 阅读 · 0 评论 -
Dubbo
SOA Service-Oriented Service 面向服务的架构分布式就是把系统分为多个服务,然后把这些服务放在不同的服务器上以减低单体服务的压力提高并发量和性能。比如电商系统可以简单地拆分成订单系统、商品系统、登录系统等等。RPC :remote procedure call 远程过程调用RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从...原创 2020-03-17 15:22:08 · 59 阅读 · 0 评论 -
Jquery和Restful风格
RestFul是什么:就是使用相同的url,但是使用不同的http方法来实施不同的业务Jquery:1.$( function(){})这个东西和$(document).ready(function(){});是一个意思;是为了防止文档在完全加载之前就运行JQuery代码,就是说这里面的代码是在文档完全加载完成之后获得的就避免了获取一个还没有加载好的图片...原创 2020-03-10 17:32:32 · 646 阅读 · 0 评论 -
Jpa中的count()计数查询
比如 userRepository.count()。意思就是找出user的所有数量计数 查询 long count() 或者 根据某个属性的值查询总数 countByAge(int age)原创 2020-01-09 15:38:41 · 7822 阅读 · 1 评论 -
@GetMapping、@PostMapping、@RequestMapping的区别
总结下来就是@PostMapping和@GetMapping都可以用@RequestMapping代替,如果读者怕在映射的时候出错,可以统一写@RequestMapping,当然这样写的话也有弊端,笼统的全用@RequestMapping, 不便于其他人对代码的阅读和理解!还是建议区分开来写!养成良好的代码习惯!@GetMapping是一个组合注解 是@RequestMapping(metho...原创 2020-01-09 15:18:31 · 198 阅读 · 0 评论 -
.split()
对指定字符串进行分割,如String[] ids=String.split(",");用逗号对String进行分割。一个String数组分割完成之后是字符串数组原创 2020-01-09 10:38:12 · 119 阅读 · 0 评论 -
RabbitMq;
1.how2j解释微信公众号,就可以通过消息中间件来实现。站长把教程发给消息中间件服务器,学生微信上的消息中间件客户端,就会自动把消息获取出来并显示2.原理RabbitMq拿到消息之后不是直接就放进队列中的,他是先交给交换机,(Exchange(交换器) 有4种类型,不同的类型对应着不同的路由策略:direct(默认),fanout, topic, 和 headers)交换机再............原创 2020-01-03 13:10:39 · 148 阅读 · 0 评论 -
线程和锁1
启动线程的三种方式(若是创建线程还有一个利用线程池创建的方式):目录启动线程的三种方式(若是创建线程还有一个利用线程池创建的方式):一.继承thread类方式二.实现Runnable接口的方法三.实现Callable接口线程池问题:写在前面:一.几种线程池的简单介绍1.newSingleThreadExecutor2.newCachedThrea...原创 2019-09-20 08:33:14 · 121 阅读 · 0 评论 -
已合并
目录一.hashCode()和equals()二:java的三大特征1.封装public class Test { }}2.继承3.多态三.Object类的方法四:进程和线程(我老是不能说出这两者的概念)、协程一.hashCode()和equals()1.hashCode()和equals()都是object的固有属性equal...原创 2019-10-24 16:48:56 · 988 阅读 · 0 评论 -
线程和锁2
一.synchronized和Lock:synchronized:有一个共享资源,我们只允许一次一个线程访问它。把所有能访问该资源的方法都封装到一个类中,然后把这些方法全都加上synchronized关键字,如果这时候有一个线程正在调用一个该关键字标记的方法,那么当这个线程从该方法返回之前,其他所有要调用该关键字所标记的方法的线程都会被阻塞。https://www.jianshu.c...原创 2019-10-25 17:32:18 · 106 阅读 · 0 评论 -
Collection工具类和Arrays常见方法工具类的
一.Collections可进行的操作可以分为1.排序2.查找,替换3.不推荐1.排序Collections.reverse(arraylist); //把一个arraylist的数组进行反转Collections.sort(arraylist);//按自然顺序的升序排序Collection.swap(arraylist,2,5);//交换数组中两个索引位置的数据...原创 2019-12-02 16:06:43 · 142 阅读 · 0 评论 -
JVM相关问题
一.对象到底死了没1.引用计数器给对象添加一个引用计数器,每当有一个地方引用他,数值就加1,引用失效,计数器就减1。任何时候计数器 为0 的时候就是对象不可用了问题就是解决不了对象之间相互引用的问题。public class ReferenceCountingGc { Object instance = null; public static void main(Str...原创 2019-11-22 18:40:36 · 88 阅读 · 0 评论 -
对象的创建过程和类的加载过程
一.对象的创建过程1.类加载检查看看是否进行过那一系列的类加载的过程,如果没有就进行类加载2.分配内存空间3.初始化零值为了保证对象中实例字段不赋初值就可以直接使用4.设置对象头比如这是哪个类的对象5.执行init方法二:类的加载过程1.加载2.链接(验证、准备、解析)3.初始化...原创 2019-11-20 22:43:45 · 147 阅读 · 0 评论 -
JVM内存区域
一.程序计数器1.是当前线程所执行的字节码的行号指示器,字节码解释器通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理都需要依赖程序计数器来完成2.多线程情况下,需要依赖程序计数器来记录当前线程执行的位置,从而当线程切换回来的时候知道上次线程执行到哪了随着线程的结束而死亡二.java虚拟机栈描述的是java方法的执行内存模型(实际上,J...原创 2019-11-20 09:38:40 · 126 阅读 · 0 评论 -
JavaWEB知识(重定向,请求转发,servlet这种的)
一.请求转发和重定向重定向过程: 所以,当这个Servlet处理完后,看到response.sendRedirect()方法,立即向客户端返回个响应,响应行告诉客户端你必须再重新发送一个请求,去访问student_list.jsp,紧接着客户端收到这个请求后,立刻发出一个新的请求,去请求student_list.jsp,在这两个请求互不干扰、相互独立,请求转发:客户端首先发送一个请...原创 2019-11-19 00:25:28 · 200 阅读 · 0 评论 -
java中编码问题和乱码问题
一.如何输出某一种编码的字符串String ss=new String(str.getBytes("ISO-8859-2"),"GBK");ss=ss.trim();//str.getBytes(Stringdecode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表//这个new String(byte[],decode)实际是使用指定的编码deco...原创 2019-11-18 19:53:43 · 110 阅读 · 0 评论 -
两种数据库引擎的区别(Innodb/MyIASM)和行级锁
1.Innodb 支持事务,支持外键,支持行级锁即操作时只锁一行,不锁其他行,对高并发好2.MyIASM不支持事务,不支持外键,支持表级锁那么外键到底是什么呢?比如学号是一个表的主键,然后在另一个表中也有学号这个列,那么第二个表中的学号就是第一个表的外键,或者也可以成学号就是第二个表的外键保证数据的一致性和完整性为什么保证呢?你插入表2学号字段的值...原创 2019-11-15 22:33:00 · 165 阅读 · 0 评论 -
数据库(sql)优化持续更新
1.水平拆分和垂直拆分水平拆分就是比如有1亿条数据,你每次从这一亿条数据中找不累死了吗,所以我们可以把它分别装到100个表中,这样不就好了吗。通过用ID取模的方法把数据分散到四张表内Id%4+1 = [1,2,3,4]然后查询,更新,删除也是通过取模的方法来查询$_GET['id'] = 17, 17%4 + 1 = 2, $tableName = 'users'.'2' Sel......原创 2019-11-15 20:51:58 · 166 阅读 · 1 评论 -
并发编程和volatile
一.并发编程的三个概念1.原子性:就是一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素,要么就都不执行2.可见性:指多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看到修改的值3.有序性:即程序执行的顺序按照代码的先后顺序执行处理器为了提高程序运行效率,可能会对输入代码进行优化,即不保证代码的执行顺序和代码的顺序一致,但会保证结果与顺序执行的结果...原创 2019-11-15 16:05:25 · 79 阅读 · 0 评论 -
前端
一.JspJsp的调用过程:当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用Java Server Page就是使用JSP标签在HTML网页中插入Java代码 <% %>或者<jsp:scriptlet> ...原创 2019-11-15 00:19:58 · 108 阅读 · 0 评论 -
脏读、幻读、不可重复读和事务的隔离级别
1.脏读就是事务A对数据进行增删改查,但是未提交,此时另一个事务读到了未提交的数据。如果此时事务A进行了回滚,则事务B读取的数据即为脏数据例子: update account set money=money+100 where name=’B’; (此时A通知B) update account set money=money - 100 where name=’A’;当只执行第一...原创 2019-11-12 21:25:36 · 197 阅读 · 1 评论 -
博客项目
一:主要实现的功能1.你配置数据库就一个配置文件就可以了啊 application.property2.后台的界面就是博客的管理啊,标签的管理啊还有分类的管理博客管理:进行模糊查询、编辑、删除、新增操作分类管理和标签管理都一样:(没啥新东西)3.前台:3.1首页就是关于博客什么的一些展示比较重要的就是评论这一块儿: 当然...原创 2019-11-11 23:09:45 · 572 阅读 · 0 评论 -
天猫项目的一些总结
一.主要实现的功能1.购物车: 主要通过放在session中的user来拿到你对应的数据( session.getAttribute("user");) 拿到user就拿到了放在user中的数据,比如订单项什么的。 你买东西和把东西放进购物车是一样的,都是新生成订单项或者更新原来的订单项 查看购物车就是取出订单项放进然后返回jsp就ok了呗 ...原创 2019-11-11 21:29:40 · 188 阅读 · 0 评论 -
Redis
一.Redis就是一种数据库。不过这种数据库是放在内存中的,读写速度非常快二.为什么要使用Redis1.高性能 第一次访问数据库是访问硬盘上的数据库,第一次访问完后就把数据存在了Redis中,下一次在访问直接就从Redis中访问了,速度很快2.高并发 直接操作缓存(这里他的这个缓存应该是内存)能够接受的请求是远远大于直接操作数据库的能够接受的请求的。三.Redis能够操...原创 2019-11-08 19:42:07 · 102 阅读 · 0 评论