- 博客(42)
- 收藏
- 关注
原创 CAS(Compare And Swap)
CAS 是一种高效的无锁并发控制机制,适用于计数器、轻量级锁等场景。其核心优势是避免线程阻塞,但需注意 ABA 问题和自旋开销。
2025-03-26 23:52:59
696
原创 BlockingQueue遇到活锁问题
首先初始化过程,从其他api获取的任务列表,我把这个列表放进BlockingQueue队列中,然后开一个线程池去跑校验、处理任务等逻辑和任务状态回传。当任务处理失败就放回队头重试,然而依赖的第三方服务有一段时间一直有问题,导致任务一直处理失败,虽然没有阻塞,但程序无法继续。
2025-03-26 23:52:06
221
原创 基于springboot和vue项目使用docker部署项目到服务器
一般是后端连不上mysql或者redis问题这种情况要注意连接的ip是不是在docker里面通信的ip,不能使用127.0.0.1这种或者宿主机的ip,因为docker的容器创建后会给每个容器分配ip。前端页面访问不到这种情况需要看下你挂载到docker之前的页面路径是否有页面素材。
2025-03-21 20:02:23
1180
1
转载 python学习之线程和进程
python学习之多线程和多进程看了很多资料,发现python多线程是"假的",因为对Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同时只有一个线程在运行。对此,我们可以做一个实验:# 开了6个线程:一个主线程、5个子线程from threading import Threaddef loop(): while True: pass if __name__ == '__main__': for i in range(5):
2021-11-23 10:10:47
125
原创 python学习之numpy
numpy学习总结文章目录numpy学习总结1、numpy安装1.pip安装2.解释器中安装(1)先添加清华源:https://pypi.tuna.tsinghua.edu.cn/simple/(2)搜索numpy并安装3.Linux下安装4.**Mac 系统**2、numpy对象3、numpy支持的数据类型4、numpy的初级应用1.np.array应用:5、numpy 切片和索引1.切片:本质和list的切片操作一样冒号 **:** 的解释:如果只放置一个参数,如 **[2]**,将返回与该索引相对应
2021-11-23 10:09:11
547
原创 python学习之pyside2
python qt之pyside2文章目录python qt之pyside21、常见的组件的使用这个教程写的很详细[http://www.byhy.net/tut/py/gui/qt_05_1/](http://www.byhy.net/tut/py/gui/qt_05_1/)2、layout布局的设计布局思路:3、重写paintEvent(self, event)方法实现画图(画点或者画线等一些简单的操作)绘制的自动触发机制条件如下:绘制的"手动"触发机制:使用update()或者repaint()进行
2021-11-23 10:08:08
1531
原创 Linux中nginx配置图片访问路径
1、在Linux系统中下载nginx这里介绍在ubuntu中下载nginx:https://blog.youkuaiyun.com/qq_23832313/article/details/835788362、nginx配置图片访问路径在主目录下的data目录下创建一个文件夹用来存放图片赋予data目录和其子目录capture权限进入/etc/nginx/找到nginx.conf在nginx.conf中写入访问图片的路径找到server{},在里面写入以下配置:location
2021-06-18 17:53:47
4312
原创 springboot项目作为windows的跳板服务
Windows部署Java服务1、需求背景最近公司引入了一个项目:通过本地摄像头抓拍得到照片,然后把照片存入云服务器中。这个过程中产生了一个问题:因为摄像头是本地的(内网),部署在本地的springboot项目是可以通过内网连接摄像头的SDK拿到照片的。但是当项目部署到云服务器上后,就不能连接在内网的摄像头。因为云服务器只能访问外网或者自己的内网下的,所以我们用另外一台服务器做了内网穿透,实现了访问。这时问题又来了,内网穿透只是一时之需,并不能解决问题。所以我们采用跳板服务来连接本地摄像头并作为传递数据
2021-06-18 17:29:44
193
原创 java学习之对ftpurl文件进行下载上传至服务器
最近公司调用摄像头设备的SDK,API返回的是照片的ftpurl,我需要把这些图片储存下来放在数据库和云服务器中,所以我上网搜了下相关的资料,决定先把图片先编码为Base64,下面就是我的代码:public static String GetImageStr(String imgFilePath) { // 将ftpurl中的图片文件转化为字节数组字符串,并对其进行Base64编码处理 byte[] b = null; try {
2021-06-16 11:01:10
577
转载 99%的人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookma
2021-06-15 17:28:18
138
原创 Linux服务器上部署springboot服务并测试
1、在Linux服务器上部署Springboot服务项目打jar包的操作流程:在idea中的Maven视图中先clean,跳过test(按一下蓝色闪电的标志),再点击package打包。2.此时目录中就会生成一个target文件夹,点开这个文件夹,就可以看到jar包了。2、在Linux服务器中部署springboot服务启动项打开ubuntu系统,在用户名文件夹下创建一个项目文件夹demomkdir demo在demo文件夹下创建以下几个文件(1)application.
2021-05-08 10:47:04
913
原创 JSON数据的解析总结
1、json数据的直接分析https://blog.youkuaiyun.com/yeweij226/article/details/100017315这个博客写的很简单易懂 推荐大家进行学习2、springboot前后端分离:json数据的封装和使用前后分离时,我们要定义好统一的接口返回格式{“code”: “200”,“message”: null,“data”: {“schoolId”: “100”,“illcount”: “1”,“grouplist”:{“illstatistics”:
2021-05-07 16:24:41
418
转载 什么是SOA
1、介绍对于SOA,感觉这个概念性的东西没那么容易理解,看了各位大神的解释感觉很多都说的很抽象,所以想尝试用自己的语言解释下,仅做参考。SOA粗暴理解:把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块,每个模块之间相互独立。比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。现在我要从这个数据库中获取注册用户列表,如果不用SOA的设计思想,那么就会这样:JavaWeb里面写一个查询方法从数据库里面查数据然后在网页显示,安卓app
2021-05-06 01:38:18
199
原创 什么是WCF
什么是WCF1、介绍WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布 式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ(消息队列)。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.
2021-05-06 01:37:14
772
1
原创 WCF应用之c#服务器端和java客户端
WCF应用之c#服务器端和java客户端最近公司有一个项目:连接另外一个公司用c#写的服务端的接口,然后让我们公司的前端写一个大屏页面。于是就通过我们java后端来做中转接口客户端。在我们拿到c#接口前,搜了很多的资料,但是这方面的解决方案很少,包括StackOverflow,所以我们花了好几天时间实践和整合,最终对接口的封装并拿到了数据。以下是我们对接入c#的接口的一些经验之谈。首先我们要了解WCF和SOA。一、什么是WCF二、什么是SOA三、创建c#的WCF服务端项目和客户端测试首先,
2021-05-06 01:35:14
587
原创 Java学习之集合框架
Java集合框架官方已经重写了所有集合的tostring()集合的由来处理多个相同数据我们采用数组,但数组空间固定不能动态增长,插入或删除元素比较麻烦。我们使用集合来解决这个问题。集合特点:元素类型可以不同,集合长度可变,空间不固定。Java中对一下数据结构和算法进行了封装即集合(简化和提升开发效率)JCF集合框架。提供了用于管理集合的类和接口Java中的数组Java中的数组,长度是不可变的,如果要修改长度,只能new新生成Java中的数组,因为长度不可变,所以不能随意增加或删除,
2021-04-07 23:42:08
122
原创 Json
Json格式类似map的{key:value}{}是JSONObject 对象[]是JSONArray 数组{“weatherinfo”:{“city”:“成都”,“cityid”:“101270101”,“temp”:“21”,“WD”:“北风”,“WS”:“小于3级”,“SD”:“61%”,“AP”:“945.7hPa”,“njd”:“暂无实况”,“WSE”:"❤️",“time”:“17:00”,“sm”:“0”,“isRadar”:“1”,“Radar”:“JC_RADAR_AZ92
2021-04-07 23:39:43
111
原创 Java Web基础
Java WebServlet规范EJB Java官方唯一服务器Servlet容器的实现:Tomcat(免费)JbossWebLogicWebSphereOracle9i ASTomcatbin启动服务项 默认启动的入口放置在bin包conf所有配置项 脏有的配置文件都放置在conf包lib所有驱动包 tomcat默认需要支持的驱动全部放在这里logs所有日志包 所有的日志记录都存放在这里temp 临时包 默认没有内容webapps工
2021-04-07 23:38:51
131
原创 css
CSS将从基础开始建设直到全面替代传统Web设计方法。W3C组织创建的CSS技术将替代HTML中用于表现的HTML元素。1.提高页面浏览速度。使用CSS,比传统的Web设计方法至少节约50%以上的文件尺寸。2.缩短改版时间,降低维护费用。只要简单修改几个CSS文件就可以重新设计一个有成百上千页面的站点。3.强大的字体控制和排版能力。有了CSS,我们不再需要用font标记或者透明的1 px GIF图片来控制标题,改变字体颜色、字体样式等等。4.CSS非常容易编写。我们可以象写HTML代码一样轻松地编写
2021-04-07 23:38:15
91
原创 AJXA
AJAX<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form> 用户名:<input type="text" id="username"/><br/> 密码:<
2021-04-07 23:37:46
91
原创 Java学习之网络编程
网络编程TCP/IP模型ipconfig 获取IP地址浏览器的默认端口80服务端public class MyServer { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8000); Scanner scanner = new Scanner(System.in); try {
2021-04-07 23:36:59
89
原创 Java学习之设计模式
设计模式一、设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工
2021-04-07 23:35:28
111
原创 Mysql
数据库Databasemysql中严格意义上,数据库称为schema(命名空间)数据库的操作是没有大小写区别的create database 数据库名称; 创建一个数据库可以创建N个数据库名,数据库名在服务器中必须是唯一的,并且符号标识符规范:可以是字母、_、@、#但是在5.0之后满足Java的辨识符规范加了$drop database 数据库名称 删除数据库use 数据库名称 使用数据库Tablecreate table 表名(字段 字段
2021-04-07 23:34:45
108
原创 Java学习之多线程
多线程编程1、相关知识点介绍进程:通常指某一个应用程序启动后加载一个任务线程:一个进程中包含多个线程,在某一时刻执行某一个任务时,会调用某一个线程执行默认的状态下,每一个线程之间不冲突(没有关联),不阻塞new对象(隔离状态)所有语言都拥有线程(唯一区别在于单线程、多线程)线程中的误区cup和线程的执行速度有直接的关系,所有同样一段代码在不同的电脑跑出的速度是不一样的即使是同一台电脑,跑相同的任务,执行时间也有可能不一样任务调度:老式的cpu通常一核心
2021-04-04 19:39:03
146
原创 Java学习之IO-Java
IO输入与输出IO流的概念IO流的分类FileFile创建的对象,要求我们给一个合法的硬盘物理路径(可以是文件,也可以是文件夹)!代表求反不能通过一个未知的路径(不存在)判断是一个文件或者文件夹canRead() 判断是否可读canWrite() 判断是否可写createNewFile() 创建一个新的文件夹mkdir() 创建文件夹exists() 判断是否存在isDirectory() 判断是否为目录isFile() 判断是否为文件delete()
2021-04-03 00:02:39
103
原创 Java学习之常见异常
异常类的分支定义如果API中已经表明此方法会报出异常,但是代码调出此方法,并没有提示捕获异常,那么此异常就是运行时异常1、Runtime 异常 (运行期异常)RuntimeException 运行时异常----非检查异常NullPointException 空指针异常ClassCastException 类的类型转换异常ArithmeticException 算术异常java.lang.NumberFormatException 数组格式化异常InputMismatchExcep
2021-04-02 00:03:10
179
1
原创 Java学习之String、StringBuilder和StringBuffer
StringBuffer(JDK1.0)1、相关知识String源码分析StringBuffer介绍:1、线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。2、可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。3、每个字符串缓冲区都有一定的容量。只要字符串缓冲区所
2021-04-01 20:12:43
104
原创 Java学习之简单的计算器
运用String类的相关方法写的简单的计算器public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.next(); int i = str.indexOf('+'); scanner.close(); if(i != -1) { System.out.println(new calcu().che
2021-03-31 23:00:57
71
原创 Java学习之String类源码分析
Java学习之String类源码分析1、String类构造方法源码分析(从JDK1.0版本开始)String是一个不可变对象,因为它是一个不可变的字符数组//字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。String s="abc";//因为在实际开发中,大部分时间,开发人员都是和字符串打交道,所以默认给出一种简单的创建方法//String s="abc" 等效于:char[] charArray = {'a','b',
2021-03-31 20:34:16
468
1
原创 Java学习之难理解题目系列一
1、关于构造器的问题//构造函数初始化,(首先会调用父类的构造函数),然后初始化成员变量//在继承中,创建一个子类对象,首先初始化父类构造器。class X { Y y=new Y(); X() { System.out.print("X"); }}class Y { Y() { System.out.print("Y"); }}public class Z extends X { Y y=new Y();
2021-03-30 19:54:03
111
原创 Java学习之初识Java
初识javajava 之父——James Gosling詹姆斯·高斯林java的前身叫做OAK语言(嵌入式编程)java出名是因为互联网的发展java出身就不能控制硬件(曾经是弱点,现在是特点)网络中的病毒出现JDK中有一个虚拟机的存在(JVM)——像箱子一样的东西,与外界隔离(让java不会感染病毒)java自身并不存在病的传染性JDK1.5 (tiger)(java的里程碑)时间:2004.9.301.5开始,官方做了二个大的变化把J2SE修改为JavaSE把版本号,从
2021-03-30 19:50:19
149
原创 Java学习之反射学习总结
类的加载机制类加载:一旦某个类被载入JVM中,同一个类就不会再次加载反射的定义Java的反射技术是java程序的特征之一,它允许运行中的Java程序对自身进行检查,或者说“自审",并能直接操作程序的内部属性。使用反射可以获得Java类中各个成员的名称并显示出来。简单的说,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。—句话:运行时探究和使用编译时未知的类。反射的原理对象创建过程:比如要创建Dog类的三个对象Dog d1 = new Dog();Dog d2 = ne
2021-03-21 23:05:51
251
2
原创 Java学习之面向对象多态的强制转换
强转一定要注意:对象的真实类型是什么,那么强转最小只能转换为此类型。首先,我们来看一段代码:public class Cast extends Super_Cast2{ public static void main(String[] args) { // TODO Auto-generated method stub Super_Cast2 s2 = new Super_Cast2(); Super_Cast1 s1 = s2; System.out.println(s2);
2021-03-17 17:19:28
933
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人