- 博客(76)
- 资源 (2)
- 收藏
- 关注
原创 Java面经自用5
Java面经自用5java如何开启线程?怎么保证线程安全?线程和进程的区别:进程是操作系统进行资源分配的最小单元。线程是操作系统进行任务分配的最小单元,线程隶属于进程如何开启线程?1.继承Thread,重写run方法2.实现Runnable接口,重写run方法3.实现Callable接口,实现call方法。通过FutureTask创建一个线程,获取到线程执行的返回值class myth implements Callable<Integer> { @Override
2021-10-24 13:09:59
264
原创 java面经自用4
java面经自用4synchronized和lock有什么区别?synchronized是关键字,jvm层面支持,lock是api层面的锁synchronized不需要手动释放,lock需要手动释放不然会死锁(lock(),unlock()方法需要配合try/finally使用)synchronized不可中断,lock可中断(设置超时trylock(Long timeout,TimeUnit unit),调用interrupt可中断ReentrantLock lock = new Ree
2021-10-12 18:33:22
260
原创 并发锁的学习
锁锁的定义锁是用来协调多个线程并发访问同一共享资源时带来的安全问题,频繁用锁必然会带来性能问题,但不用锁又会造成安全问题1)从性能上分:乐观锁和悲观锁乐观锁:CAS自旋锁,是非常经典的乐观锁,并发性能比较好,但是自旋会造成很大的开销,悲观的认为当前环境下并发情况不是很很严重,任务提交时才才判断是否冲突悲观锁:悲观的认为当前环境下并发情况是很严重的,所有的任务在执行时都要加上锁,保证了安全型,失去了并发性,并发性能差乐观锁:无锁,在数据提交时才去判断是否发生冲突,version悲观锁:每
2021-10-09 12:24:17
370
原创 Java面经自用
Java面经java中有哪些集合?安全:Vector,HashTable,ConcurrentHashMap非安全:ArrayList,LinkedList,HashMap,TreeMap,HashSet,TreeSetHashMap底层实现及扩容底层:通过数组+链表+红黑树实现,初始容量是16,加载因子是0.75(超过16*0.75时扩容),加载因子过小会造成浪费,过大会使put,get碰撞几率增加,链表长度超过8时,链表就会转换为红黑树以提高检索速度,提高并发性能Concurre
2021-10-09 12:23:37
231
原创 SQL优化实战
SQL优化实战1. Order by优化在Order by中,如果排序会造成文件排序(在磁盘中完成排序,性能比较差),就说明没有命中索引,这个时候可以使用最左前缀法则,让排序遵循最左前缀法则,避免文件排序1)ORDER BY的字段改到一种表、不要夸表(设计表结构时需注意这一点)2)OEDER BY字段建索引、多个字段时建联合索引(联合索引的字段顺序要与ORSER BY中的字段顺序一致)3)ORDER BY中字段中联合索引的所有字段DESC或ASC要统一,否则索引不起作用--- name,age,
2021-10-09 10:17:57
326
原创 MYSQL优化及原理1
MYSQL优化及原理基本的数据结构线性表:存放数据 有数组和链表 和广义表区别:广义表中既可以存放元素和可以存放数据完全二叉树:除叶节点外,所有节点都必须有左节点二叉排序树:左节点一定比根节点小,右节点一定比根节点大平衡二叉树:在二叉排序树的基础上,每棵子树的左子树和右子树的深度不能超过1,并且每颗子树都是平衡二叉树红黑树:在平衡树的基础上,1.节点是黑色或者红色2.根节点都是黑色3.所有叶子都是黑色4.每个红色节点的两个子节点都是黑色5.从任一节点其叶子的所有路径
2021-10-08 12:48:31
160
原创 笔试算法练习
1.分糖果2.出现一次的数字3.重排链表public class Solution { public void reorderList(ListNode head) { if(head==null||head.next==null) return; ListNode mid = middleNode(head); ListNode l1 = head; ListNode l2 = mid.next;
2021-09-21 16:17:00
173
原创 springboot+mybatisplus+vue+elementui前后端分离
前后端分离前后端分离就是将⼀个应⽤的前端代码和后端代码分开写,为什么要这样做? 如果不使⽤前后端分离的⽅式,会有哪些问题?传统的 Java Web 开发中,前端使⽤ JSP 开发,JSP 不是由后端开发者来独⽴完成的。前端—》HTML 静态⻚⾯ —〉后端 —》JSP这种开发⽅式效率极低,可以使⽤前后端分离的⽅式进⾏开发,就可以完美地解决这⼀问题。 前端只需要独⽴编写客户端代码,后端也只需要独⽴编写服务端代码提供数据接⼝即可。前端通过 Ajax 请求来访问后端的数据接⼝,将 Model
2021-07-11 13:31:56
1171
1
原创 Redis五大数据类型
Redis指令详解基础指令:exists key:判断键是否存在del key:删除键值对move key db:将键值对移动到指定数据库expire key second:设置键值对的过期时间type key:查看value的数据类型flushdb:清空数据clear:清空界面关于TTL命令Redis的key,通过TTL命令返回key的过期时间,一般来说有3种:当前key没有设置过期时间,所以会返回-1.当前key有设置过期时间,而且key已经过期,
2021-06-27 14:46:12
133
原创 Vue入门学习
Vue入门学习Vue基础指令与案例演示1.v-text与v-htmlv-text只会发数据渲染到标签,不会对html标签进行解析、v-html会对html标签进行解析<div id="box"> <!-- vue的指令:vue提供的一种行间属性,你可以加在标签上,对这个DOM元素应用一些行为。 --> <h1>{{msg}}</h1> <!-- v-text 把数据渲染到标签 --> <h1 v-text="
2021-06-26 15:06:57
408
原创 mybatis注解开发配置及注意事项
mybatis注解开发配置及注意事项1.注解及配置:注解:@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@ResultMap:实现引用@Results 定义的封装@One:实现一对一结果集封装@Many:实现一对多结果集封装@SelectProvider: 实现动态 SQL 映射@CacheNamespace:实现注解二级缓存的使用在m
2021-06-15 16:33:31
1759
2
转载 springboot文件上传与下载
springboot文件上传与下载文件上传在springboot中默认使用MultipartResolver 的实现类StandardServletMultipartResolver 所以,如果要使用CommonsMultipartResolver则注入就好 @Bean public MultipartResolver multipartResolver() { // 默认配不配都行,如果使用CommonsMultipartResolver,注入就行// Sta
2021-06-09 20:26:54
189
原创 MyBatisPlus实例
mp配置<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version></dependency>spring.datasource.username=rootspring.datasource.pas.
2021-06-05 13:29:07
271
1
原创 异步任务,邮件上传与定时任务
异步任务,邮件上传与定时任务异步任务service@Servicepublic class AsynsService { @Async//注册异步注解 public void testHello() { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); }
2021-06-05 13:28:02
309
1
原创 MybatisPlus实例
mp配置<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version></dependency>spring.datasource.username=rootspring.datasource.pas.
2021-06-05 13:14:19
381
1
转载 spring常用的注解开发及其解释
spring常用的注解开发及其解释常用的注解:@Component作用:用于创建对象 相当于,把当前类交给spring来管理,相当于在 .xml文件中配置该类的bean,把普通pojo实例化到spring容器中,泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。属性:@Component(value=""),指定bean的id,如果不指定则默认id为当前类的类名@Controller
2021-05-14 11:08:19
133
原创 拦截器
SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。**过滤器与拦截器的区别:**拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法, 如果访问
2021-05-13 11:45:16
210
原创 springmvc 学习2
springmvc 学习2controller实现方式一:实现controller接口controllerpublic class ControllerTest01 implements Controller { @Override public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletRe
2021-05-09 11:52:18
142
1
转载 springmvc学习
MVC:模型(dao,service) 视图(View) 控制器(Servlet)特点:轻量级,简单易学与spring兼容性好约定优于配置功能强大简洁灵活controller:控制器获取表单数据调用业务层逻辑转向指定的页面Model:模型 1.业务逻辑 2.保存数据的状态View:视图 1.展示页面springmvc -01-servlet导入依赖<dependencies> <dependency> <
2021-05-08 15:21:57
116
原创 mybatis整合方式一与二
mybatis整合方式一1.导入jar包junitmybatis数据库连接包spring-jdbc包spring-webmvc包aspectjweaver包<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11&
2021-05-06 20:32:02
139
原创 Spring5学习2
Spring5学习2aop实现的三种方式第一种:Spring实现service层public interface IUserService { public void add();}public class UserService implements IUserService{ @Override public void add() { System.out.println("增加方法执行了"); }}log层@Overridepubl
2021-05-05 20:51:39
108
原创 Spring5学习1
Spring5学习1Spring set注入普通值注入 value bean注入 ref 数组<property name="" > <array> <value></value> <value></value> </array> </property>集合 <property name="" >
2021-05-05 10:30:23
357
1
转载 Filter&Listener笔记
Filter过滤器* 过滤器的作用: * 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...2. 快速入门: 1. 步骤: 1. 定义一个类,实现接口Filter 2. 复写方法 3. 配置拦截路径 1. web.xml 2. 注解 2. 代码: @WebFilter("/*")//访问所有资源之前,都会执行该过滤器 public class FilterDemo1 implements Filter { @Override
2021-04-21 17:29:29
101
转载 Ajax&Json笔记
AJAX:1. 概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML 1. 异步和同步:客户端和服务器端相互通信的基础上 * 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。 * 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。 Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1] 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更
2021-04-21 17:28:19
113
原创 文件下载yu文件上传and表单检验
文件下载yu文件上传and表单检验1.文件下载绝对路径(文件的服务器路径)String path=this.servletContext.getRealPath(String fileurl);若文件在src目录下fileurl为"/WEB-INF/CLASSES/filename"若文件在web目录下fileurl为"/filename"若文件在WEB-INF目录下fileurl为"/WEB-INF/filename"步骤:定义页面,编辑超链接href属性,指向Servlet,传递资源
2021-04-17 10:28:26
264
原创 MyBatis框架2
MyBatis框架之sql动态查询动态sql之if标签与where标签if标签的 test 属性中写的是对象的属性名,where标签用来简化开发1.定义持久层接口Daopublic interface IUserDao { List<User> findUserByCondition(User user);} 2.配置xml文件<select id="findUserByCondition" resultType="user" parameterT
2021-04-15 16:29:24
93
转载 request笔记
今日内容:1. Servlet2. HTTP协议3. RequestServlet:1. 概念2. 步骤3. 执行原理4. 生命周期5. Servlet3.0 注解配置6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象 * 将来定义Servlet类
2021-04-13 18:15:29
110
原创 MyBatis框架3
MyBatis框架3MyBatis多表查询之一对多与一对一需求:查询所有账户信息,关联查询下的用户信息。方式一:定义账户信息的实体类Accountpublic class Account implements Serializable { private Integer id; private Integer uid; private Double money; public Integer getId() { return id;
2021-04-11 23:24:46
102
原创 MyBatis框架1
MyBatis框架MyBatis框架概述mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 jav
2021-04-11 12:38:43
142
原创 Response笔记
今日内容1. HTTP协议:响应消息2. Response对象3. ServletContext对象HTTP协议:1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。 1. 状态码都是3位数字
2021-03-26 13:17:58
208
原创 Vue基础指令与案例演示
Vue基础指令与案例演示1.v-text与v-htmlv-text只会发数据渲染到标签,不会对html标签进行解析、v-html会对html标签进行解析<div id="box"> <!-- vue的指令:vue提供的一种行间属性,你可以加在标签上,对这个DOM元素应用一些行为。 --> <h1>{{msg}}</h1> <!-- v-text 把数据渲染到标签 --> <h1 v-text="num">
2021-03-21 17:52:09
256
1
原创 JQuery基础
一、Js与JQuery对象之间的转化 1. JQuery对象在操作时,更加方便。 2. JQuery对象和js对象方法不通用的. 3. 两者相互转换 * jq -- > js : jq对象[索引] 或者 jq对象.get(索引) * js -- > jq : $(js对象)案例://1. 通过js方式来获取名称叫div的所有html元素对象 var divs = document.getElementsByTagName(".
2021-03-09 13:21:28
151
原创 DOM与BOM学习
BOM:Browser Object Model 浏览器对象模型概念将浏览器的各个组成部分封装为对象1特点:BOM对象不能自己创建,当文档加载进内存,浏览器自动创建。1组成Window(*****):窗口对象Location(**):地址栏对象History(*):历史记录(当前窗口)对象Navigator :浏览器对象Screen:显示器屏幕 availHeight 获取系统屏幕的工作区域高度,排除 Microsoft Windows
2021-03-03 15:30:05
216
1
原创 CSS学习
CSS学习css:层叠样式表,页面美化和布局控制 特点:1.功能强大 2.降低了代码的耦合 3.提高了开发效率 4.分工协作容易 使用:与html结合 1.内联样式:在标签内使用css中style属性 2.内部样式:在head标签内定义style标签 3.外部样式:顶替css资源文件,在head标签内定义style标签,引入外部资源css属性: 1.字体,文本 font-size字体大小,color颜色,text-align对齐方式,line-heig
2021-03-02 20:51:48
142
原创 html标签1
html标签1.文本标签<!--和文本有关的标签--><!-- <h1>to<h6>:标题标签,闭合标签 <p>:段落标签,闭合标签 <br>:换行标签 <hr>:显示一条水平线,自闭合标签 属性: 1.align:对齐方式 center居中 left左对齐 right右对齐 2.color:颜色 3.size:高度 4.width:宽度
2021-03-01 19:33:30
345
jsp与servlet用户管理系统.zip
2021-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人