- 博客(95)
- 收藏
- 关注

原创 Java基础之(重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁)
看到这么多的锁,是不是瞬间很头大,瞬间觉着自己太难了,,,那么,我来拯救你来啦前提你要了解多线程,哈哈哈哈。。。首先聊一聊 重量级锁:我们知道,我们要进入一个同步、线程安全的方法时,是需要先获得这个方法的锁的,退出这个方法时,则会释放锁。如果获取不到这个锁的话,意味着有别的线程在执行这个方法,这时我们就会马上进入阻塞的状态,等待那个持有锁的线程释放锁,然后再把我们从阻塞的状态唤醒,我们再去获取这个方法的锁。这种获取不到锁就马上进入阻塞状态的锁,我们称之为重量级锁。(是不是感觉重量级锁脾气很是暴躁
2020-05-14 16:32:00
659
2
原创 JS中undefined和null
什么时候会出现undefined1. 创建变量不赋值let a;console.log(a); //undefined2. 空对象取属性值let a = {};console.log(a.name); //undefined3. 调用有参数的函数,未给形参赋值fn(a, b) { console.log(a, b); //undefined undefined}fn();什么时候会出现null1. 将 变量/对象 定义为null var a = {};// a = ''
2022-04-10 14:41:59
672
原创 js中的空指针异常
js语法中什么时候会出现空指针异常?答:对undefined 或 null 进行取值 就会出现空指针异常,并且下面代码将不再执行 //案例 1 let data = ''; let a = data.name; alert(a + "===========") // undefined===========(alert代码会执行,a取到的值是undefined) // 案例 2 let data = ''; let b = data.name || '000'; alert(b + "
2022-04-10 14:22:54
1467
原创 抽奖控制概率
public static void main(String[] args) { // 1.定义的中奖概率 ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add(30); list.add(40); // 2.生成抽奖概率数组 int[] randomArr = new int[list...
2021-09-28 11:04:48
1340
原创 weex图片铺满整个屏幕
我们都知道使用weex的《image》标签时必须要给定图片的长和宽,不然会加载不出来图片!!!当遇到背景图不能出现上下滑动效果图片显示完整兼容各种手机这种需求时,可以巧妙的利用定位来解决<template> <div> <image class="imag"></image> </div></template><style scoped>.imag{ position: absolu
2021-03-02 01:05:52
669
原创 js中判断对象数据类型的方法
1.类型定义JS是一种弱类型语言。JS拥有动态类型,相同的变量可以用作不同的类型。JS有7种数据类型:三种基本类型(数字,字符串,布尔),两种引用数据类型(对象,数组),两种特殊数据类型(undefined,null)。JS有5种原始类型:数字,字符串,布尔,undefined,null。2.类型判断对js中不同数据的布尔值类型总结:false:空字符串;null;undefined;0;NaN。true:除了上面的false的情况其他都为true;3. !是“非”运算符, 运算规则
2020-12-16 21:02:19
310
原创 position
position:absolute绝对定位相对于最近的且不是static定位的父元素来定位脱离文档流(原来的位置会释放)若没有设置宽度,则宽度由元素里面的内容决定,且宽度不会影响父元素position:relative相对定位相对于其原本的位置来定位的没有脱离文档流(原来的位置不会释放)若没有设置宽度,则宽度为父元素的宽度,该元素的大小会影响父元素的大小。position:fixed固定定位相对于窗口的固定定位...
2020-12-16 20:42:23
1949
1
原创 vue尝试
Vue.js的常用指令v-bind指令 :绑定属性和样式v-model指令:双向数据绑定v-on指令v-if指令v-show指令v-else指令v-for指令vue生命周期在工作中的用法beforeCreate():实例在内存中被创建出来,还没有初始化好data和methods属性。create():实例已经在内存中创建,已经初始化好data和method,此时还没有开始编译模板。beforeMount():已经完成了模板的编译,还没有挂载到页面中。mounted():将编译好
2020-11-23 00:30:58
180
1
原创 绝对定位让元素完全居中的三种方法
方法一:(不能微调)父容器:position: absolute;left: 0;right: 0;top: 0;bottom: 0;margin: auto;方法二:(可微调)要居中的元素:position: absolute;top: 50%;left: 50%;margin-top: -100px; /* 元素高度的一半 */margin-left: -100px; /* 元素宽度的一半 */方法三:(不能微调)父容器:display: flex;flex-di
2020-11-13 03:13:10
1147
原创 根据扇形的夹角和半径长度计算出底边长度
根据夹角和半径计算出底边的长度width = 2 * 扇形半径长度 * Math.sin(夹角度数 / 2 * Math.PI / 180)// Math.sin(夹角度数 / 2 * Math.PI / 180) 计算的是sin的角度
2020-11-06 17:45:30
912
原创 将Object对象转换成实体类对象
java中,如果将Object对象强转成实体类对象,可能会出现java.util.LinkedHashMap cannot be cast to 异常解决方法:利用 com.fasterxml.jackson.databind.ObjectMapper 包下的 convertValue方法可将对象转换为对应的实体类对象convertValue(Object fromValue, Class<T> toValueType)例子:/** * redisUtil.get(userInfo
2020-09-29 20:51:20
14726
3
原创 springboot读取配置文件信息
读取properites文件的信息package com.zsp.blog.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Properties;public class WxUserUtil { private static Properties properties = new Properties();.
2020-09-27 11:32:31
126
原创 MySql 唯一索引和主键索引
唯一索引和主键索引区别:一个表只能有一个主键索引,但是可以有多个唯一索引主键索引一定是唯一索引,唯一索引则不一定是主键索引主键索引可以与外键构成完整性约束,唯一索引不可以唯一性索引列允许空值,而主键列不允许为空值主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等...
2020-08-28 09:20:10
1176
原创 Git代码冲突
1.查看用户名、邮箱和密码git config user.name // 查看用户名git config user.email // 查看邮箱git config user.password // 查看密码2.修改用户名、邮箱和密码git config --global --replace-all user.name "要修改的用户名"git config --global --replace-all user.email"要修改的邮箱"git config --global --
2020-08-05 01:12:38
174
原创 java中的锁问题
1.ReentrantLock与synchronize相同点: 都是用于线程同步锁,都是互斥锁。不同点:如果用汽车来类比,synchronize相当于自动挡,Lock相当于手动挡。即:synchronize是内置锁,只要加上synchronize的代码的地方开始,代码结束的地方自动释放资源。lock必须手动加锁,手动释放资源。synchronize优点是代码量少,自动化。缺点是扩展性低,不够灵活。Lock优点是扩展性好,灵活。缺点是代码量相对稍多。释放锁的情况:synchroniz
2020-08-03 02:56:12
235
原创 根据图片url直接获取图片base64
从网上看了好多根据图片url获取图片base64,都挺麻烦的package cn.com.zcits.exchange.modules.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConne
2020-07-26 02:43:32
2153
原创 mybastis报出 Invalid bound statement (not found)的错误解决方案
如果我们的mapper.xml文件没有放置到src-main-resources下面,是不会被maven build plugin给默认扫描到的。会报: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):此时需要修改启动的模块的pom文件,在build标签里面加入:<build> <resources> <resource>
2020-07-20 02:03:23
237
原创 @Param什么时候使用
话不多说,直接上干货当我们dao接口的参数是一个对象时:如果你加上@Param注解,那么你在xml中取对象属性值时必须是 对象 . 属性List<User> querySel(@Param("user")User user); select * from user <where> <if test="name != null"> name = #{user.name}
2020-07-20 01:52:20
1589
原创 Unsupported conversi from LONG to java.sql.Timestamp; nested exception is java.sql.SQLDataException:
Unsupported conversion from LONG to java.sql.Timestamp; nested exception is java.sql.SQLDataException: Unsupported conversion from LONG to java.sql.Timestamp异常原因:数据库数据存在为" "的数据
2020-07-17 10:16:17
4146
原创 GitHub Desktop提交代码忽略文件
*/target*.iml/.idea*.classtarget/.project.settings/.classpath.gitignore
2020-07-16 13:14:50
896
原创 springboot定时任务之(@Scheduled)
一.基于注解来创建定时任务1.在主启动类添加:@EnableScheduling // 开启定时任务2.添加定时任务 @Scheduled(cron = "0 * 14 * * ?") public void configureTasks() { logger.info("-----------------------"); System.err.println("执行静态定时任务时间: " + LocalDateTime.now()); }
2020-07-09 14:12:55
150
原创 IDEA中添加类注释与方法注释模板
类注释在IDEA中依次选择File–>Settings–>File and code Template–>Files–>class在选择的class中添加如下注释:/*** @ClassName : ${NAME} //类名* @Description : ${description} //描述* @Author : ZSP//作者* @Date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE} //时间*/保存成功后在
2020-07-07 14:12:49
510
原创 hystrix全局降级(逻辑层面,解决方法膨胀)
controller层调用的service接口,用了@FeignClient注解,FeignClient是服务调用,把客户端与服务器端注入eureka,来调用我们的服务器端的接口,fallback的是继承HystrixService 类为其设计的fallback处理逻辑,避免代码耦合调用接口异常返回:逻辑方法返回单独处理yml(消费者):server: port: 80eureka: client: register-with-eureka: false #表示是否将自己注册进Eu
2020-06-21 22:21:22
737
原创 hystrix全局降级(控制层面,解决方法膨胀)
hystrix全局降级(解决方法膨胀)一般情况下,我们会对客户端进行降级yml:(服务消费者)server: port: 80eureka: client: register-with-eureka: false #表示是否将自己注册进Eurekaserver默认为true。 fetch-registry: true #是否M从Eurekaserver抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡 servic
2020-06-21 21:17:32
1248
1
原创 OpenFeign坑
cloud组件之(OpenFeign坑)opengin使用步骤:接口+注解(@FeignClient)主启动类加上@EnableFeignClients找错1半小时才找到!!!!!!错误写法:@Component@FeignClient(value = "CLOUD-PAYMENT-SERVICE")public interface OrderService { @GetMapping(value = "/getpaymentById/{id}") Map getpaymen
2020-06-17 17:30:49
1390
原创 JVM之OOM
什么是OOM?说白了就是内存用完了JVM没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error(说明应用程序已经无法处理这种问题)那么,为什么会没有内存了呢???分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。应用占用的太多,并且用完没释放,浪费了。此时就会造成内存泄漏或者内存溢出。OOM会造成以下情况:内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不
2020-06-13 22:35:50
534
原创 SpringCloud项目部署jar启动报错:no main manifest attribute
在子module模块的pom.xml文件中添加插件依赖: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>
2020-06-03 00:43:36
630
原创 POI动态导出Excel(动态导出前台选中的字段)
业务场景:用户勾选想要导出的字段本来想着百度搜下大神封装好的util,直接拿过来用,然而发现网上大都是写死的(网上好多都是全表字段导出)于是就自己写了个通用的动态导出封装类,前台选中什么字段就导出什么字段先看效果:这是我数据库表的字段假如用户现在只想导出name和phone这两个字段:直接上导出成功效果图:第一步:导入POM <!--excel导入导出 --> <dependency> <groupId>org.
2020-05-28 01:53:35
1723
4
原创 springcloud之(版本选择)
springcloud基于springboot,那么当我们实际开发时,怎么选择springboot和springcloud最为匹配的版本呢?有人会说:当然都是选择最新的版本呀我想说:这样说的都是在误人子弟那么到底该如何选择呢???话不多说,直接上图:此图是springcloud官网提供的版本对应图如果你想得到更精确的版本匹配,那么这里有你想要的答案springcloud与springboot具体版本选择点击进去你会看到下面这个界面:是的,你没有看错(估计你也是看不懂)不要急,马上你就
2020-05-23 16:43:12
689
原创 Java基础之(书写高质量SQL)
(身为一名后端程序员,是不是有那么一刻怀疑自己写的SQL语句性能)(看完下面的优化,一起来提升下SQL能力吧)1.查询SQL尽量不要使用select *,而是select具体字段。反例: select * from 表;正例: select id,name from 表;解答:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2.如果知道查询结果只有一条,建议用limit 1反例: selectid,na
2020-05-15 17:46:37
400
原创 List元素从大到小排序(懒人的福利)
我们都知道调用Collections.sort()是从小到大进行排序那么,从大到小怎么办呢?本人比较懒,不想每次重写Comparator方法那么,经过查找API,让我找到了这个方法:Collections.sort(list,Collections.reverseOrder());这样集合中的元素就实现了从大到小排序...
2020-04-29 10:20:10
7820
原创 freemarker中取Map中的list
<#list kindsMap?keys as mKey> ${mKey} <#assign item = kindsMap[mKey]> <#list item as itemValue> ${itemValue} </#list> </#list>con...
2020-03-28 20:53:47
3519
原创 Ajax跨域(最简单)
最简单的Ajax跨域client访问 $.ajax({ type: "GET", url: "http://localhost:82/tuijiancommint", data: { nameEmail: $('.nameEmail').text(), ...
2020-03-17 11:48:47
191
原创 springcloud(三)服务消费者
(一)创建项目(二)开发服务消费者1.在pom.xml中添加ribbon的jar <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon...
2020-02-15 16:47:39
229
1
原创 springcloud(二)服务提供者
(一)创建项目(二)开发服务1.启动类package com.example.eurekaservice;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springfr...
2020-02-15 16:10:31
190
原创 springcloud(一)搭建Eureka服务注册中心
(一)创建项目(二)开发Eureka服务中心1.启动类package com.example.eurekaserver;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.s...
2020-02-15 15:41:41
240
原创 自适应div框
效果图css代码.textarea { width: 800px; min-height: 20px; max-height: 300px; _height: 120px; margin-left: auto; margin-right: auto; padding: 3px; outline: 0; border: 1...
2019-12-31 11:30:10
347
原创 SpringMVC上传
@RequestMapping("/ilunwenupload") public Map ilunWenUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException { Map map = new HashMap(); Stri...
2019-12-21 16:37:37
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人