自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python 的命名规范

请注意,PEP 8 并不是强制性的规则,而是 Python 社区广泛接受的编码规范。在实际编程中,应根据项目的具体情况和团队的约定来决定是否严格遵守 PEP 8。虽然 Python 没有真正的私有属性或方法,但按照惯例,如果一个属性或方法不应该在类的外部直接使用,应该使用两个下划线前缀。Python 的命名规范,也称为 PEP 8,是 Python 社区广泛接受的一组编码约定。类名应该使用驼峰命名法,即每个单词的首字母大写,且不包含下划线。除非缩写是广泛接受的(如 max,min),否则应避免使用缩写。

2024-05-17 14:49:58 204

原创 python进阶的学习路径

1. 数据结构和算法:学习常用的数据结构,如数组、链表、栈、队列、树和图,并学习相应的算法,如查找、排序和遍历算法。8. Python标准库和第三方库:学习使用Python的标准库和常用第三方库,如datetime、re、json、requests、beautifulsoup等,掌握常用模块和函数的使用方法。同时,多练习、实践和查阅文档也是提升的重要途径。4. 并发和并行编程:学习使用多线程、多进程和协程实现并发和并行任务,掌握线程同步和互斥机制,了解GIL(全局解释器锁)对多线程的影响。

2024-05-14 10:18:47 248

原创 IDEA最好用插件推荐

俗话说:“工欲善其事必先利其器”,本问介绍几款强大实用的 IDEA 插件,助力大家开发。希望大家做一个聪明又努力的人,而不只是一个努力的人。以下插件大都可以通过自带的插件管理中心安装,如果搜不到可以去 IDEA 插件官网下载本地导入。具体安装界面不同版本 IDEA略有差异,请自行研究。如果连插件安装都不愿意学、学不会的话,很难成为一名合格的 Java 开发工程师。

2024-04-17 09:56:55 994

原创 解决多线程场景下ThreadLocal的变量传递问题

ThreadLocal可以用于存储线程独享的变量。可以方便的存储上下文信息,提升代码的简洁性。然而,ThreadLocal的一个不足之处在于,它不支持在线程嵌套过程中自动地将数据从父线程传递到子线程。这意味着,即使主线程中设置了ThreadLocal变量,子线程默认情况下也无法访问这些变量。

2024-03-25 09:44:17 1170

原创 http协议发展历程

HTTP协议的发展历程可以追溯到1989年至1991年间,由Tim Berners-Lee博士和他的团队创造。这个系统起初被命名为Mesh,后来更名为万维网(World Wide Web),并建立在现有的TCP和IP协议基础之上。HTTP作为万维网的基础协议,从一开始的简单版本逐渐发展成了能够传输图片、高分辨率视频和3D效果的现代复杂互联网协议。

2024-03-22 10:08:31 889

原创 10分钟快速定位线上问题

直接上干货,线上问题定位流程!

2024-02-29 09:32:46 103

原创 接口的幂等性问题

HTTP1.1中对幂等性的定义为,一次和多次请求某一个资源对于资源本身应该具有同样的结果,网络超时等问题除外,意思就是任意多次执行所产生的影响均与一次执行的影响相同。

2024-01-29 08:36:51 903

原创 DDD落地实践-架构师眼中的餐厅(转)

本文以餐厅场景为叙事主线,以领域驱动为核心思想,结合架构设计与功能设计方法论。是从领域分析到落地的全过程案例,内容偏重于落地,因此不乏一些探讨,欢迎指正。文章较长、全程干货、耐心读完、必有收获。本文不针对餐厅的实现细节,重在探讨设计思想和方法。。

2024-01-03 14:08:18 790

原创 1.2 Python编程语言的优势与缺点

Python、Java和C++是三种非常流行的编程语言,它们各自都有自己的优缺点。

2023-12-22 09:20:46 316

原创 1.1 Python的起源与发展

在1989年的圣诞节期间,Guido van Rossum秉承着“让编程变得有趣”的原则,开发了一门新的解释型语言,并将其命名为Python。此外,随着Python社区的不断壮大和活跃,未来将有更多的新库和工具涌现,为Python的发展注入新的活力。Python的成功也推动了其生态系统的发展,包括NumPy、Pandas、Matplotlib等著名的Python库和工具都在不断地更新和完善。总之,Python的起源和发展离不开Guido van Rossum的贡献和Python社区的支持。

2023-12-15 14:16:59 929

原创 Python入门编程课程

第一章:Python简介与环境搭建。第二章:Python基础语法。第三章:Python进阶语法。第四章:实战项目与案例分析。第五章:课程总结与答疑解惑。

2023-12-15 14:12:01 61

原创 关于系统超时设置,简单聊一聊

发生事故时,首要任务是止损,止损的第一手段是预案。:B调用C,若不设置超时,C出现故障5分钟,那5分钟的请求都会堵在B的程序里而无法自动释放,链接池和线程池耗尽,无法接受新请求,且会造成预案无法生效,这种情况只有重启B才能恢复服务,而一旦涉及到重启,那就是陷入绝境,故障恢复速度容易不可控。:中枢模块一般会依赖几个十几个甚至上百个外部依赖,针对外部依赖的可用性,我们不能眉毛胡子一把抓,需要正确理解业务业务核心所需,区分强弱依赖,重保核心,针对弱依赖要设置更低的超时,避免其故障影响全局可用性,

2023-11-07 09:37:32 177

原创 JVM 参数配置规范

让JVM性能优化变得如此简单,一键拿走

2023-07-14 16:02:03 1933

原创 雪花算法生成主键ID的踩坑复盘

因为uuid相对顺序的自增id来说是毫无规律可言的,新行的值不一定要比之前的主键的值要大,所以innodb无法做到总是把新行插入到索引的最后,而是需要为新行寻找新的合适的位置从而来分配新的空间。②. 对于高并发的负载,innodb在按主键进行插入的时候会造成明显的锁争用,主键的上界会成为争抢的热点,因为所有的插入都发生在这里,并发插入会导致间隙锁竞争。①下一条记录就会写入新的页中,一旦数据按照这种顺序的方式加载,主键页就会近乎于顺序的记录填满,提升了页面的最大填充率,不会有页的浪费。

2022-10-28 09:11:31 1569

原创 阿里云服务环境搭建系列-5-linux安装redis

阿里云服务环境搭建系列-5-linux安装redis

2022-06-16 10:46:31 211

原创 阿里云服务环境搭建系列-0-linux安装jdk8

由于某些原因我们无法使用远程工具上传文件,我们需要在linux服务器内直接下载jdk安装包进行安装然后创建一个目录:下载JDK版本,可以选择你需要的版本,这一步需要网络。如果你没有网络,那么你只能将准备好的压缩包传到linux上去,是一样的。解压:编辑环境变量(vi命令也可以):设置环境变量,在文件的的末尾新增如下配置:保存更改。退出后记得刷新配置,让其生效:到此JDK安装完毕,下面检验一下:输出版本...

2022-06-15 21:05:06 204

原创 阿里云服务环境搭建系列-3-linux安装jenkins

阿里云服务安装摘要

2022-06-06 17:00:09 611

原创 阿里云服务环境搭建系列-1-安装mysql数据库

一、查看服务器状态1.确保服务器系统最新状态yum -y update出现如下即更新成功Replaced: grub2.x86_64 1:2.02-0.86.3.al7.alnx grub2-tools.x86_64 1:2.02-0.86.3.al7.alnx Complete!2.重启服务器reboot3.检查mysql是否已经安装rpm -qa | grep mysql如果已经安装的话......

2022-05-31 19:51:52 470

原创 Mac安装redis,mysql

MAC安装Mysql超详细完整教程_先森MrV的博客-CSDN博客_mac 安装mysql一、安装命令使用mac的包管理工具brew一行命令搞定安装。若未安装brew,命令行先输入以下命令安装brew。/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装redisbrew install [email protected] #后面@接版本号可指定版本二、使用redis的常用命令1

2022-05-27 22:26:06 170

原创 三色标记法:多标与漏标

三色标记法

2021-12-09 22:03:48 1347

原创 idea 无法输入中文 快速解决

idea在某些情况会出现无法输入中文的情况,我们不去深究内部原因,直接上解决方案:1、点击菜单help->Edit Custom VM Options2、最后一行,追加:-Drecreate.x11.input.method=true3、重启

2021-07-20 09:41:31 21797 25

原创 getServletContext().getRealPath(“/“);返回null的问题

今天把程序部署到服务器,发现异常,FileNotFound异常,很快定位到getServletContext().getRealPath("/");返回空的问题。这个问题通常是传递的虚拟路径不对或者使用war包导致的。而我的程序传递的路径肯定正确,并且部署的时候对.war包做了解压。对这个问题上网搜搜了n编,始终找不到问题所在,而部署子本机是完全正确的。仔细梳理了一下找到了一个线索:我部署到服务器的时候,我等了半天,服务器没帮我把war解压,于是自己把war解压了,而解压之后没有把war包删掉,是不是服

2021-06-08 16:13:50 1136

原创 前端请求referer丢失的情形

相信不少流量来源统计者都有类似经历,就是直入流量太高,直入流量的主要特征是referer为空,而导致referer丢失的原因有很多,这里做一下汇总:1、鼠标拖拽是现在非常流行的用户习惯,很多浏览器都内置或者可以通过插件的方式来支持鼠标拖拽式浏览。但是通过这种方式打开的页面,基本全都丢失referrer。并且,这种情况下,也无法使用window.opener的方式去获取丢失的referrer了。2、点击Flash上到达另外一个网站的时候,Referrer的情况就比较杂乱了。IE下,通过客户端javas

2020-09-10 15:04:01 3207

原创 IOS唤起H5微信或支付宝收银台

一说支付,大多数人都会理解支付方式是下载微信和支付宝SDK进行支付,但是其实还有其他的方式,就是H5调用系统支付宝和微信进行支付。H5支付可能很多人认为是加载完页面剩下的就是页面完成即可,但是实际没有那么简单。下面介绍一下H5调用支付宝和微信支付。首先是支付宝,支付宝在支付这一块是非常专业的他的代码也是非常简单的。既然是H5调用,那么就少不了网址拦截。这里加载页面我是使用的WebView这里说一下,这里微信和支付宝都是使用这个方法里进行- (BOOL) webView:(UIWebVi

2020-08-21 15:06:34 2036

原创 2020-08-05

java.lang.RuntimeException: org.springframework.transaction.TransactionSystemException: Could not commit JDBC transaction; nested exception is java.sql.SQLException: vtgate: http://vtgate-ht3b-produce-qllvw:15001/: target: jli_market.0.master, used tablet:

2020-08-05 15:48:56 541

原创 【并发处理】避免Random实例被多线程使用

避免Random实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一seed 导致的性能下降,JDK7之后,可以使用ThreadLocalRandom来获取随机数解释一下竞争同一个seed导致性能下降的原因,比如,看一下Random类的nextInt()方法实现:public int nextInt() { return next(32);}调用了next(int bits)方法,这是一个受保护的方法:protected int next(int bits) {

2020-07-19 10:44:42 835

原创 【并发处理】必须回收自定义的ThreadLocal变量

ThreadLocal详细源码解析1.初始化是一个懒加载的过程,只有在调用get的时候才会获取当前线程内部的ThreadLocalMapmap存在则获取当前ThreadLocal对应的value值map不存在或者找不到value值,则调用setInitialValue,进行初始化public T get() { Thread t = Thread.currentThread(); //通过当前对象去map中寻找 ThreadLocalMap map = getMap(t);.

2020-07-19 10:36:58 1713

转载 【并发处理】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯

代码示例首先我们看一下如果线程没有命名的话,发生异常的错误日志:/** * @Author: maochenfei * @Date: * @Description: */public class ThreadNoName { public static void main(String[] args) { //订单模块 Thread threadOne = new Thread(new Runnable() { @O...

2020-07-19 10:26:28 2173

原创 【并发处理】ScheduledExecutorService源码解析

前言我们知道,Java的定时调度可以通过Timer&TimerTask来实现。由于其实现的方式为单线程,因此从JDK1.3发布之后就一直存在一些问题,大致如下:多个任务之间会相互影响 多个任务的执行是串行的,性能较低ScheduledExecutorService在设计之初就是为了解决Timer&TimerTask的这些问题。因为天生就是基于多线程机制,所以任务之间不会相互影响(只要线程数足够。当线程数不足时,有些任务会复用同一个线程)。除此之外,因为其内部使用的延迟队列,本

2020-07-19 09:50:46 968

原创 开发规范-异常处理

(一) 异常处理【强制】Java 类库中定义的一类RuntimeException可以通过预先检查进行规避,而不应该通过catch 来处理,比如:IndexOutOfBoundsException,NullPointerException等等。说明:无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过catch NumberFormatException来实现。 正例:i...

2019-03-19 20:05:16 398

原创 开发规范-单元测试

【强制】好的单元测试必须遵守AIR原则。 说明:单元测试在线上运行时,感觉像空气(AIR)一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。A:Automatic AutomaticAutomatic Automatic Automatic (自动化) (自动化)I:Independent IndependentIndepend...

2019-03-19 20:04:39 841

原创 开发规范-编码规约

(一) 命名风格【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。正例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。反例...

2019-03-19 20:03:56 492

原创 开发规范-安全规约

【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 说明:查看个人手机号码会显示成:1589119,隐藏中间4位,防止隐私泄露。【强制】用户输入的SQL参数严格使用参数绑定或者METADATA字段值限定,防止SQL注入,禁止...

2019-03-19 20:03:10 1618

原创 开发规范-数据库规约

(一) 建表规约【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint( 1表示是,0表示否)。 说明:任何字段如果为非负数,必须是unsigned。 正例: 表达逻辑删除的字段名 is_deleted,1表示删除, 0表示未删除。 表示未删除。【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据...

2019-03-19 20:02:04 761

原创 System.arraycopy的详解以及应用场景

java.lang.System.arraycopy() 方法复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置。具体方法如下:public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)src:源数组 srcPos:原数组开始位置  dest:目标数

2017-11-08 11:37:17 1295

原创 Spring中bean的生命周期

生命周期整体描述:创建-》初始化-》准备就绪-》销毁Spring框架中,一旦把一个bean纳入到Spring IoC容器之中,这个bean的生命周期就会交由容器进行管理,一般担当管理者角色的是BeanFactory或ApplicationContext。认识一下Bean的生命周期活动,对更好的利用它有很大的帮助。    下面以BeanFactory为例,说明一个

2017-11-06 14:58:06 237

原创 java抽象类和接口的区别

首先要明白抽象类和接口是两种不同的东西,1、抽象类和实体类对应,是面向对象设计一部分,我们把子类通用的特性进行捕捉,相当于是创建继承层级里子类的模板,它不可以被实现,只能被继承。它除了不能被实例         化外和普通的java实体类没有区别,它可以有属性,可以有方法实现,可以有main方法,另外它可以有抽象方法,但没有抽象方法的实现。     接口是另外一种类型,是完全抽象化的,是抽

2017-11-06 14:42:17 223

原创 jquery-select2实现省市区三级联动(拓展SpringMVC后台方法)

本次文章介绍的三级联动功能,可以直接使用普通的select,添加到select2插件是为了更好的展示效果。好了,废话不多,直接上代码首先,我们定义个location.js,里边存储省市级联的数据,以及一些基础的方法/** * location.js */function Location() {        this.items    = {        '

2017-10-13 14:46:25 6372 1

原创 eclipse中DeplaymentAssembly,Java Build Path,Java Compiler,Project Facets的作用

DeplaymentAssembly:项目部署时依赖的jar包来源Java Build Path:项目需要用到的jar包,包括系统jre的jar包,以及maven库Java Compiler:项目运行的是编译jdk的版本Project Facets的作用:设置项目的编译环境以上参数的设置,在新导入项目的时候,必须要查看并将jdk版本设置一致,特别是maven项目。因为maven

2017-06-30 17:33:24 866

原创 eclipse如何设置tomcat的编码

在eclipse工程中,配置了自定义的tomcat之后,如果开发过程中出现了乱码,需要设置tomcat的编码的时候怎么办?问题描述:在tomcat下conf文件下,直接编辑server.xml,在 中添加 URIEncoding="UTF-8" ,这样修改只能是在eclipse外部启动时可以,只要在eclipse中启动就会将编码设置还原,所以这种方式失败正确做法:在server界面中,如果

2017-06-26 14:48:22 7886

activiti设计器,eclipse插件,自测可用

eclipse集成插件,activiti设计器最新版本,自测可用,并附带安装说明

2017-06-30

音乐网站源码

仿酷我音乐盒的java网页版全套源码,数据库脚本,实现了音乐的发布下载以及在线播放功能

2013-08-12

空空如也

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

TA关注的人

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