- 博客(22)
- 收藏
- 关注
原创 Springboot项目中实战问题
在浏览器执行查询操作的时候,在地址栏输入username和password之后始终得不到正确的结果。User的属性名是userName,在输入栏输入后,userName自动变username。①Mapper层写的@param,在mapper.xml文件中获取时写错了。在html中导入BootStrap框架,但是始终无法在页面显示出来样式,清理缓存target,重新运行。**原因:**在Controller中没有注解@ResponseBody。**原因:**没导入mapper.xml。
2022-09-17 15:48:00
277
原创 ThreadLocal源码分析详解
在Java中,栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有内存,而堆内存中的对象对所有线程可见,堆内存中的对象可以被所有线程访问。就比如线程池里面的线程,线程都是复用的,那么之前的线程实例处理完之后,出于复用的目的线程依然存活,所以,ThreadLocal设定的value值被持有,导致内存泄露。他有很短暂的生命周期,在垃圾回收器线程扫描他所管辖的内存区域的时候,一旦发现有弱引用对象,不管内存空间足够与否,都会回收。
2022-08-21 13:16:18
406
原创 集合【源码分析】--- ArrayList
首先说一下什么是线程不安全:线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。从源码的角度来看,因为Vector的方法前加了,synchronized 关键字,也就是同步的意思,因此Vector是线程安全的,而arraylist类中的方法没有加锁虽然线程不安全但是多线程访问该类效率明显高于Vector。那好,现在我们来看看 ArrayList 的情况,元素实际上只有一个,存放在位置 0,而 Size 却等于 2。
2022-08-20 12:23:29
248
原创 Hystrix原理(超详解)
分布式系统:将项目不同的服务单独部署到不同的服务器中,服务加在一起构成完整的项目。分布式系统面临的问题:复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。...
2022-08-12 21:48:06
5636
原创 MySQL运算符
MySQL运算符MySQL运算符主要包括三大类:比较运算符、算术运算符、逻辑运算符算术运算符加+、减-、乘*、除/、求余mysql> select 1+2;+-----+| 1+2 |+-----+| 3 |+-----+1 row in set (0.01 sec)mysql> select 1/2;+--------+| 1/2 |+--------+| 0.5000 |+--------+1 row in set (0.01 sec...
2022-05-06 17:45:00
584
原创 MySQL查询操作
20220418DQL样例表create table if not exists tb_users( id bigint primary key auto_increment, username varchar(20) not null, password varchar(24) not null, birth date, sex boolean default 1, score numeric(8,2))engine = innodb def...
2022-05-06 04:00:00
534
原创 MySQL数据类型
数据类型数据类型主要给列上添加完整性约束。开发者设置列的数据类型后,DBMS会对添加的数据进行合法性验证,如果不合法则报错,拒绝添加数值型 5中整型 tinyint、smallint、mediumint、int和bigint,主要区别就是取值范围不停,还可以在类型前添加一个限制词unsigned,不允许添加负数 三种浮点型:不能精确存放float和double,可以精确存放decimal和numeric 类型名称 说明 tinyint 1B,取值范围-128-12
2022-05-04 18:30:00
397
原创 开始MySQL学习:概论和基本语句
数据库概论数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一 定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围 内可以被多个用户共享数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数 据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的 数据能以不同的方式被存取或者重新召集,而不需
2022-05-03 15:15:05
288
原创 数据结构算法题(小牛试刀)
数据结构是为算法服务的,算法是作用在特定的数据结构之上的指向效率是评价算法好坏的一个非常重要的指标,衡量的方法常用的是时间复杂度的空间复杂度分析。复杂的分析有事后分析法和算法执行效率估算法 最常见的使用是大O复杂度表示法,表示的是代码的执行时间随着数据规模的增大的变化趋势 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法1.进制转换 数制转换 10进制
2022-03-29 20:56:56
1831
原创 流的转换操作
Stream的操作符基本可以分为中间操作符和终止操作符两大类,中间操作符会继续向下传递,终止操作符直接对数据进行消费或者收集,不会继续向下传递中间操作符 map转换操作符,可以将A转换为B flatMap可以将A转化为多个B limli限流操作 filter过滤操作,去除不满足条件的数据 peek跳出操作 skip跳过操作 sorted排序操作,Comparable和Comparator接口 终止操作 collection收集.
2022-03-26 14:32:57
285
原创 Stream
Stream流,是jdk1.8中对集合对象功能的增强,可以通过将集合转换为六模型,通过声明的方式对集合中每个元素进行一系列并行或者串行的流水操作对数据进行排序取值从数据源中获取一组用户信息,查找年满18周岁以上的所有用户,然后针对用户信息按照工资值进行倒叙排序,获取所有用户的id编号public class User{ private Long id; private String name; private Double salary; private int...
2022-03-22 18:08:18
189
原创 面向对象常见问题总结
重点回顾1.== 和 equals 的区别== 作用于基本数据类型变量,比较的是其存储的值是否相等;作用于应用数据类型变量,比较的是所指向的对象的地址equlse equlse方法的继承自Object类,如果没有对equlse方法进行重写的话,比较的是引用类型变量所指向的对象的地址。equlse重写比较的是两个对象的内容是否一样2.hashcode()和equlse()hashcode()的作用就是获取哈希码(散列码),通过获取到的哈希码来确认该对象在哈希表中的位置为啥要有hashc
2022-01-06 16:27:52
1297
原创 Java 抽象类
抽象类面向对象编程的核心就是面向抽象编程,一般在开发过程中依赖抽象,不依赖具体简介抽象类包含抽象方法的类就叫做抽象类。抽象类不允许直接创建实例,只能由子类提供方法实现后才能通过子类创建对象抽象方法就是指没有方法体的方法,方法只做声明,没有具体的实现。抽象方法必须在子类中提供具体是实现 抽象类中可以包含抽象方法,不是必须包含抽象方法 语法:public abstract class Animal{} //abstract class用于声明抽象类public class.
2021-12-15 20:52:52
133
原创 Java 多态性(概述)
多态性多态性是发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用复制给超类对象引用变量来实现动态方法调用多态形成的三个必要条件: 有继承,父类定义方法,子类重写方法 父类的引用指向子类的对象 Object obj = new Date(); 可以使用参数传递时多态,也可以直接创建对象时多态 多态可以用三个定义个两个方法来总结 三个定义分别是父类定义子类构建、接口定义实现类构建、抽象类定义实体类构建 两个方法分别是方法重载和方法重
2021-12-15 14:34:58
593
原创 Java面向对象基础练习题(含答案超详细)
第1题案例:声明一个日期类MyDate,包含属性:年、月、日声明一个Test02测试类,并在main方法中,创建3个日期对象,一个是你的出生日期,一个是我们开班的日期,一个是今年过年的日期,并打印显示系统预定义的日期类型。jdk1.8+提供了2套日期类型java.util.Datepublic class Date implements java.io.Serializable,Cloneable,Comparable<Date>{ private...
2021-12-13 20:09:33
18205
5
原创 冒泡排序和快速排序(Java实现)
排序算法Java提供了7中常见的排序方法:冒泡、插入、选择、快速、希尔、归并和堆衡量一些算法的相关属性:时间复杂度、空间复杂度、稳定性冒泡排序基本思路: 从第一个元素开始比较相邻的两个元素,如果第一个比第一个大或小,就互换它们的位置,这样先比较完一次,然后抛弃最大或最小的继续比较,直到排序完成。具体实现:{4,2,3,5,7,6,8,1,9}i = 0 k = 1 (定义两个变量代表数组下标)自然排序(从小到大)最简单的方法就是嵌套循环(for循环) 利用这个想法 .
2021-12-08 11:24:12
1198
原创 Java语法基础:final和static关键字
语法基础关键字final意思是最终的、不可变的修饰变量final修饰变量时,变量必须初始化,并且不能被修改。初始化可以定义final变量时直接初始化或者在构造函数中初始化修饰局部变量修饰方法final修饰方法则该方法不能被子类重写修饰类final修饰一个类,则该类不能被继承扩展表示字符串的三种类型String、StringBuffer、StringBuilder都是final类型的类,所以都不允许继承总结 final属性山可以声明的时候同时直接赋值或者在
2021-12-07 16:48:21
1836
原创 Java面向对象基础
JavaSE面向对象基础重点回顾数组的创建: 动态创建:数据类型[] 数组变量名 = new 数据类型[] 静态创建:数据类型[] 数组变量名 = {元素1,元素2,...} 动态创建并赋初始值:数据类型[] 数组变量名 = new 数据类型[]{元素1,元素2,...} 数组特点: 只能存储相同类型的数据 数组中的值可以重复 数组的长度是固定的 数组是连续的内存空间 相关的算法 冒泡排序 二分法查找 系统与定
2021-11-30 14:33:39
781
原创 java字符串类型
String 、 StringBuffer 、 StringBuliderString s1 = "ab" + "c"String s2 = "abc";System.out.println(s1 == s2); //返回值为true//s1和s2指向的是同一个对象 所以返回值是true字符串常量拼接,在方法区的常量池中完成String s0 = "ab";String s1 = s0 + "c";String s2 = "abc";System.out.println(s1
2021-11-24 23:27:35
520
原创 Java基础练习题
1.计算输入数据的阶乘值这里有两种方法,循环在此不做介绍递归程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接嗲用自身的一种方法,他通常把一个大型阀组的问题层层转化为一个于原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大的减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当递归条件满足时,递归返回。例如汉诺塔问题、
2021-11-16 17:10:14
707
原创 Java基础
变量基本类型4型8种1.整形:byte 占1字节 short 占2字节 int 占4字节 long 占8字节 Java采用补码的方式存储数据 4中不同的表示方式:十进制、0八进制、0x十六进制、0b二进制 在使用字面量,Java中整形默认类型是int,如果想表示long则在数值末尾添加 2.浮点数:float 占4字节 double 占8字节 在Java中浮点数无法精确存放,除非使用Java提供的类BigDecimal 不允许使用等值判断(==),应
2021-11-04 21:52:00
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人