自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 java调用https,SSL证书问题

重新定义认证方式,已到达认证通过的目的此方法只支持https单向认证public class SSLClient extends DefaultHttpClient { public SSLClient() throws Exception{ super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() {

2021-12-28 10:56:06 598

原创 糟糕程序员的20个坏习惯

我想你肯定遇到过这样一类程序员:他们无论是写代码,还是写文档,又或是和别人沟通,都显得特别专业。每次遇到这类人,我都在想,他们到底是怎么做到的?随着工作时间的增长,渐渐地我也总结出一些经验,他们身上都保持着一些看似很微小的优秀习惯,但正是因为这些习惯,体现出了一个优秀程序员的基本素养。但今天我们来换个角度,来看看一个糟糕程序员有哪些坏习惯?只要我们都能避开这些问题,就可以逐渐向一个优秀程序员靠近。1、技术名词拼写不规范无论是个人简历,还是技术文档,我经常看到拼写不规范的技术名词,例如 JAVA、ja

2021-10-28 09:40:31 367

原创 mysql优化方案

话不多说,直接上干货 !!!数据库设计:1.字段原子性(表字段,不可再分)2.消除对主键的部分依赖除了id之外,需要另外一个类似与编号的字段,处理业务可以直接使用编号进行处理3.添加外键数据类型:1.尽量使用可以正确存储数据的最小数据类型更小的数据类型意味着更快,占用更少的磁盘,内存、缓存和处理时间2.尽量使用整型表示字符串因为字符集和校对规则,使处理字符比整型更复杂3.尽可能使用not null这个值是很烦人的,建字段时请尽量指定是否非空,NULL使得索引,统计,比较都变得更复杂,

2021-10-26 17:00:29 155

原创 HashMap为什么线程不安全

jdk8,会出现数据覆盖的情况hash源码final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize(

2021-10-26 15:34:12 98

原创 java 上传、下载、删除文件接口

上传 /** * 上传文件 * @param request * @param name 设置文件名,不更改名称填null * @param path 默认文件路径 * @param os os[0]文件最大值(单位KB)os[1]传request的name,获得文件路径 * @param os1 * @return String[0]为0,String[1]文件全名,String[2]文件全路径,String[3]文件大小 * @throws Exception

2021-10-26 14:15:58 1115

转载 关于Redis分布式锁和Zookeeper锁的小结

一 为什么需要分布式锁?我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来「互斥」,以保证共享变量的正确性,其使用范围是在「同一个进程」中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?例如,现在的业务应用通常都是微服务架构,这也意味着一个应用会部署多个进程,那这多个进程如果需要修改 MySQL 中的同一行记录时,为了避免操作乱序导致数据错误,此时,我们就需要引入「分布式锁」来解决这个问题了。想要实现分布式锁,必须借助一个外部系统,所有进程都去这个系统上申请

2021-09-13 16:40:11 121

原创 openLDAP win安装部署及java CRUD接口

目录概述测试环境安装过程配置启动客户端介绍多级DC的ldif文件的配置java接口编写测试[一]、概述什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何在windows平台上安装和配置openLDAP软件。openLDAP官方网站:http://www.openldap.org/[二]、测试环境window10 – 64位openLDAP 版本:2.4.49官网下载地址:https://www.maxcrc.de/download/本人下载地址

2021-09-13 15:37:07 695

原创 关于tomcat乱码问题整理

1.startup.bat启动, 也就tomcat黑窗口启动, 乱码在tomact的conf中logging.properties文件把java.util.logging.ConsoleHandler.encoding = UTF-8 改为GBK解释:GBK包含全部中文字符,UTF-8则包含全世界所有国家需要用到的字符。GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。比如,如果是UT

2021-07-28 11:03:42 247

原创 idea打war,并tomcat发布

1:打开Project Structure界面(快捷键是Shift+ctrl+alt+s)第二步,选择Artifacts一栏:第三步,选择你自己的项目(一般来说只要运行过IDEA项目的,这一步可以忽略):第四步:第六步,选择这里:第七步,大功告成:tomcat启动路径: localhost:tomcat端口号(默认端口8080)/war包名称比如: war包叫, test.war地址就是 localhost:8080/test...

2021-06-18 10:19:42 107

转载 HbuilderX连接夜神模拟器

打开夜神目录下的bin文件夹,找到debugReport.bat,查看端口号,一般是62001也有的是52001, 然后启动夜神打开HbuilderX后,找到设置,打开运行配置(一般的找到步骤:工具=>设置=>运行配置)adb路径配置:打开夜神模拟器的安装目录,一般是在Nox/bin目录下面,找到了nox_adb.exe后,将路径指向它就行端口配置:夜神模拟器我一般设置“62001”,其它的端口也行(只要你填的端口没被占用),后面就要用夜神的nox_adb.exe根据端口号连接了上.

2021-06-16 14:13:07 2033 1

原创 mysql按照距离现在时间最近排序

ORDER BY abs(DATEDIFF(时间字段名称,now())) //按照距离现在最近(天)排序ORDER BY abs(TIMEDIFF(startTime,now())) //按照距离现在(时间)排序

2021-06-11 11:15:11 1443 1

原创 跨城冗灾处理

跨城容灾方案说明:正常使用主域名调用,备域名需有流量,保证业务能实时切换。当域名出现请求超时、读写超时,自动换备域名重试。交易主链路和交易备链路做好动态流量分配,保证遇到异常能够自动切换。例如可以统计主备域名的连接耗时、丢包率、业务失败率,出现异常情况(例如5秒钟内统计业务失败率超过50%)可自动切换到最优链路。3.1.2.方案流程图...

2021-05-31 16:21:37 253

原创 支付宝的同步和异步的区别

第一种理解同步是给客户看的,异步是服务器处理请求。同步是客户充值或者支付成功了,给客户一个提示,告诉客户这个操作的结果是成功还是失败。起到的作用就是提示客户这个操作的结果是成功还是失败。异步是服务器在后端处理支付成功或失败时的业务逻辑。同步通知:用于用户在支付宝页面付款完毕后自动跳转;异步通知:其实是处理业务逻辑,比如说修改客户的支付状态;同步得到通知后跳转到自己的网址,然后根据参数告诉客户支付结果,然后在更新状态。异步其实就是一个双保险,如果同步没有跳转你的网址,可能是关机了,或者网速慢,无法

2021-05-31 10:52:42 1431

原创 支付宝支付demo

####1、下载导入项目https://docs.open.alipay.com/54/104506 打开支付宝接口官网:我们下载Java版Demo下载之后解压,然后我们用IDEA导入这个Demo项目~然后,我们下载一个我们后面需要生成生成RSA密钥的工具:链接: https://docs.open.alipay.com/291/105971由于我是在Win平台开发,所以下载自己操作系统对应的版本就行:下载之后我们就先放一边啦~导入项目之后,我们要查看自己导入的项目是否报错,如果出现报错

2021-05-31 10:51:14 1398

原创 钉钉内网穿透

1.下载软件链接: https://github.com/open-dingtalk/pierced.git 2.使用打开cmd, 进入钉钉内网穿透的Windows目录启动命令 ding.exe -config=./ding.cfg -subdomain=xxx 8080xxx是自定义名称, 可以随便写, 8080是端口号, 按照项目端口号修改...

2021-05-28 14:54:37 602

原创 SpringBoot对接支付宝支付接口

最近需要对接支付宝的支付接口,官方文档写得内容有点分散,整理了一下发布出来,用作记录,同时也希望对不了解情况的人有所帮助,这里以电脑端的网页支付为例。开发主要分为三个步骤:一、生成私钥公钥。二、建立应用。三、沙箱环境。四、接口开发一、生成私钥公钥生成密钥的官网文档:官网文档官方文档讲得已经很详细,按照步骤来即可,记得保存好公钥与私钥,下面需要用到二、建立应用1.首先进入蚂蚁金服开放平台的首页,通过支付宝账户登录,登录的时候要选择一个身份,这个选自研开发者吧,反正后面可以拓展2.在蚂蚁金服的首页

2021-05-28 09:56:29 722 2

原创 SSM项目对接 阿里云短信

1.注册阿里云账号2.阿里云官网:https://www.aliyun.com/3.设置短信签名注册成功后,点击登录按钮进行登录。 登录后选择 控制台首页 右上角 点击选择 短信服务进入短信服务管理页面,选择国内消息菜单:签名: 项目名称适用场景: 验证码 (一人只可以设置一个)目前个人用户只可以申请 验证码的签名4.设置短信模板5. 设置 access Key在发送短信时需要进行身份认证,只有认证通过才能发送短信。本小节就是要设置用于发送短信时进行身份认证的key和密钥。鼠

2021-05-27 15:49:44 593

原创 SpringBoot对接阿里云短信

阿里云短信首先没用过的玩家需要去阿里云注册账户,然后开启两个私钥,这两个密钥是我们的必需品然后去申请签名和模版,这个也是我们的必需品现在不怎么好申请了,建议申请理由都写成个人项目测试啥的,过不了就多申请几次,上面两个环境已经装备好了的你,找到充值入口,随便充点钱进去 (一块钱其实就可以了!哭)官方文档阅读官方提供了文档说明、ApiDemo、入参出参说明,这个还是比较详细的,但你以为你就能跑起来的话,我信你个鬼哦!唯一需要注意的地方就是上图中我圈出来的这个地方,它的值是我们发送验证码的值,

2021-05-27 15:40:27 368

原创 JS鼠标移入,移出弹窗事件

该事件的效果就像百度首页的设置选项<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>百度</title> <style type="text/css">·····························································一下是CSS #wrap{

2021-05-27 15:30:16 823 1

原创 java判断一个字符串是否包含某个字符

一、contains方法1:描述java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列2:声明public boolean contains(CharSequence s)3:返回值此方法返回true,如果此字符串包含,否则返回false。4:实例public static void main(String[] args) {    String str = "abc"; boolean status = str.

2021-05-25 09:40:58 248

原创 List size为1但是内容为null处理方法

使用if( list.size() > 0 && list.get(0) != null){},去判断是否为空if(list.isEmpty()){}判断失败的原因是: list虽然内容是空的,但是有长度, 所以不符合判空的要求(内容为空或者null就满足条件),我猜测应该是All elenebts are null会占用一个长度...

2021-05-18 10:05:07 1124

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除