TypechoJoeTheme

Clover 的博客

统计
登录
用户名
密码
/
注册
用户名
邮箱

CloverYou

日出于东却落于西,相识人海却散于席。
2022-01-02

Servlet线程安全

Servlet线程安全
Servlet是单实例多线程环境下运行的。什么时候程序存在线程安全问题?多线程并发有共享数据共享数据有修改操作在JVM中,哪些数据可能会存在线程安全问题?局部变量内存空间不共享,一个线程一个栈,局部变量在栈内存中存储,局部变量不会存在线程安全问题。常量不会被修改,所以常量不会存在线程安全问题。所有线程共享一个堆堆内存中new出来的对象在其中存储,对象内部有“实例变量”,所以“实例变量”的内存多线程是共享的,实例变量多线程共享访问,并且涉及到修改操作的时候就会存在线程安全问题。所有线程共享一个方法区方法区中有静态变量,静态变量的内存也是共享的,若涉及到修改操作,静态变量也存在线程安全问题。线程安全问题不只是体现在JVM中,还有可能发生在数据库中,例如:多个线程共享同一张表,并且同时去修改表中的记录,那么这些记录就存在线程安全问题,若要解决数据库中线程安全问题至少有两种方案:在Java程序中使用synchronized关键字,线程排队执行,自然不会在数据库中并发,解决线程安全问题。行级锁/悲观锁,在执行的sql语句后加上for update事务隔离级别,例如:串行化乐观锁怎么解决线程...
CloverYou
2022-01-02

随笔

35 阅读
0 评论
2022年01月02日
35 阅读
0 评论
2022-01-02

Servlet生命周期

Servlet生命周期
Servlet生命周期什么是生命周期? 生命周期表示一个Java对象从最初创建到被销毁的过程Servlet的生命周期是谁来管理的?程序员可以干涉吗?Servlet对象的生命周期javaweb程序员是无权干涉的,包括Servlet对象的相关方法的调用,javaweb程序员也是无权干涉的。Servlet对象从最初的创建开始,方法的调用、以及最后Servlet对象的销毁,整个过程都是由WEB容器来管理的。 Web Container管理Servlet对象的生命周期。默认情况下,Servlet对象在WEB服务器启动阶段不会被实例化。若希望在web服务器启动阶段实例化Servlet对象,需要使用特殊设置。简单描述Servlet生命周期用户在浏览器地址栏上输入URL:http://localhost:8080/xxx/xxxweb容器窃取请求路径:/xxx/xxxweb容器在容器上下文中找请求路径/xxx/xxx对应的Servlet对象若没有找到对应的Servlet对象通过web.xml文件中相关的配置信息,得到请求路径/xxx/xxx对应的Servlet完整类名通过反射机制,调用S...
CloverYou
2022-01-02

随笔

27 阅读
0 评论
2022年01月02日
27 阅读
0 评论
2022-01-02

Servlet Cookie

Servlet Cookie
Cookie是什么?Cookie可以保存会话状态,但是这个会话状态是保留在客户端上。只要Cookie清楚或者失效,这个会话状态就没有了。Cookie是保存在客户端上的Cookie可以保存在浏览器的缓存中,浏览器关闭,Cookie消失。Cookie也可以保存在客户端的硬盘文件中,浏览器关闭Cookie还在,除非Cookie失效。Cookie只有在javaweb中有吗?Cookie不止是在javaweb中存在,只要是web开发,只要是B/S架构的系统,只要是基于HTTP协议,就有Cookie的存在。Cookie这种机制是HTTP协议规定的。Cookie实现的功能常见的有:保留购物车商品的状态在客户端上xxx天内免登录java中Cookie被当作类来处理,使用new运算符可以创建Cookie对象,而且Cookie有两部分组成,分别是Cookie的name和value,name和value都是字符串类型。在java中怎么创建Cookie,Cookie是在javax.servlet.http包下的improt javax.servlet.http.Cookie; Cookie cookie...
CloverYou
2022-01-02

随笔

35 阅读
0 评论
2022年01月02日
35 阅读
0 评论
2022-01-02

MyBatis 配置结构

MyBatis 配置结构
pom.xml 配置文件添加以下代码,配置MyBatis运行时扫描的路径,否则可能会导致找不到 Mapper <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ctong.crm</groupId> <artifactId>crm...
CloverYou
2022-01-02

随笔

30 阅读
0 评论
2022年01月02日
30 阅读
0 评论
2022-01-02

JavaScript 判断0非空问题

JavaScript 判断0非空问题
用uniapp做商城购物车时有个需求:类似饿了么中的选商品规格功能,只不过我们需求是多选,我是这么做的:用一个对象记录选中的'规格',例如:dataSet: {}点击规格时,将当前被点击项v-for的index得到,判断dataSet是否有这个index,有代表删除,没有就代表需要添加(index) { if(dataSet[index]) delect dataSet[index]; else dataSet[index] = index; }非常完美,但测试时却无法删除索引为0的数据。原因是Number类型的0等于false只要将0索引转为字符串即可(index) { index = index + ''; if(dataSet[index]) delect dataSet[index]; else dataSet[index] = index; }当Number类型的0和空字符串''判断时,结果为true
CloverYou
2022-01-02

随笔

33 阅读
0 评论
2022年01月02日
33 阅读
0 评论
CloverYou
日出于东却落于西,相识人海却散于席。
88 文章数
11 评论量
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 缓存一致性 - 点击领取
    2022-01-06
  2. 宝宝
    2022-01-02

标签云