- 博客(108)
- 资源 (3)
- 收藏
- 关注
原创 DoubleAccumulator源码解析与应用
DoubleAccumulator是Java并发包中的一个类,用于在多线程环境下高效地累加双精度浮点数。它通过动态扩展内部变量集来减少线程争用,适用于频繁更新但读取较少的场景。DoubleAccumulator的核心方法包括accumulate用于更新值,get用于获取当前值,以及reset用于重置值。该类不保证线程间的累积顺序,因此不适用于需要数值稳定性的场景。应用示例展示了如何在多线程环境中使用DoubleAccumulator进行并发累加操作,最终获取累加结果。
2025-05-09 13:15:19
122
原创 angular中的?和 !作用
最近在代码中发现同事调用变量时使用了?这个符号。出于好奇,上网搜了下其使用方法,发现还有和它类似的感叹号!,一并记录下来。?用来检查问号前面的变量是否为null或者undefined时,程序不会出错。stu3: Student;<h1>stu3 id{{stu3?.id}}</h1> // stu3 id<h1>stu3 name{{stu3?.name}}</h1> // stu3 name比如上面的例子
2021-05-14 14:39:58
2127
1
原创 如何查看JVM采用的是哪种GC
方法一:使用命令行获取C:\Users\10255880>java -XX:+PrintCommandLineFlags -version-XX:InitialHeapSize=136306112 -XX:MaxHeapSize=2180897792 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -X
2021-03-04 10:05:30
4998
2
原创 html文字过长显示省略号
<p style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
2020-11-23 10:57:18
2295
转载 npm -v Error: Failed to replace env in config: ${APPDATA}
Error: Failed to replace env in config: ${APPDATA} at D:\Program Files\nodejs\node_modules\npm\lib\config\core.js:417:13 at String.replace (<anonymous>) at envReplace (D:\Program Files\nodejs\node_modules\npm\lib\config\core.js:413:12)
2020-08-13 17:14:01
1344
原创 Github上显示数学公式的方法
在线生成公式在CodeCogs Equation Editor线上生成图片然后在Github Markdown文件中插入,例如:https://latex.codecogs.com/gif.latex?\\sum_{i=0}^n这里是生成的图片:注意要使用双反斜线\来进行转义
2020-07-13 10:03:52
3664
转载 java获取内存dump的几种方式
java获取内存dump的几种方式:1.获取内存详情:jmap -dump:format=b,file=e.bin pid号这种方式可以用jvisualvm.exe进行内存分析,或者采用Eclipse Memory Analysis Tools(MAT)这个工具2.获取内存dump:jmap -histo:live pid号这个方式会先fullgc,如果不希望触发fullgc可以使用jmap -histo pid号3.第三种方式:jdk启动加参数-XX:+HeapDumpBeforeFullG
2020-06-28 16:12:56
4619
原创 Python的异常重试方法
背景公司msb服务不稳定,通过Python建立websocket总是会有问题,很不稳定,但是一般来说重新建立连接就能成功,多尝试几次就好了。问题处理既然有了相应的需求,就要考虑如何去解决这个websocket建立异常重试的问题原来的代码只建立了一次websocket连接:ws.connect(url, header=header)方法一:使用循环重试的方式: import time for i in range(4): try: ws.con
2020-06-22 11:03:24
4035
1
原创 Ride测试用例报 Suite xxxx contains no tests matching name
问题现象由于公司信息安全的原因,只能贴文字了。command: pybot.bat --argumentfile c:\windows\temp\RIDEqhef6m.d\argfile.txt --listener C:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:58536:False D:\workspace\Python\ranoss\ume\TestCase\UmeAutoTest[ ER
2020-06-16 21:32:43
6950
原创 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
执行shell脚本报错,通过shell调试方法,具体可以参考:https://blog.csdn.net/weixin_42167759/article/details/80700719?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogComm
2020-05-27 10:58:45
182
原创 getField()与getDeclaredField()的区别
Java的反射机制中,用Class的getField(String name)或getDelaredField(String name)可以得到目标类的指定属性,返回类型是Field。在看它们的区别之前先看下它们的源码:/** * Returns a {@code Field} object that reflects the specified public member * field of the class or interface represented by this {
2020-05-20 14:59:20
1870
转载 http range实现断点续传(断点续载)
使用http range实现断点续传(服务器端):public void downRangeFile( File downloadFile, HttpServletResponse response, HttpServletRequest request) { InputStream inputStream ...
2020-04-11 09:25:27
1518
1
转载 断点续传、秒传究竟是如何实现的?
我们都用过网盘,不管是例如百度网盘之类的公共网盘,还是自己搭建的私有网盘,都会或多或少的涉及到断点续传和秒传。断点续传和秒传大大提高了网盘上传的效率,下面我们就来讲解一下这两种技术的具体原理和实现,这里的讲解不涉及任何前后端编程语言,适合所有语言开发人员阅读。零、断点续传这里以上传为例,下载方式的断点续传类似。简述原理断点续传说白了就是将一个文件按照一定的规则人为的分割成多个小文件,然后客...
2020-04-11 09:03:12
859
转载 线程间的同步方式
线程间的同步方式各个线程可以访问进程中的公共变量和资源,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性。数据之间的相互制约包括直接制约关系和间接制约关系。直接制约关系:一个线程的处理结果,为另一个线程的输入,因此线程之间直接制约着,这种关系可以称之为同步关系。比如,房地产开发商把房子建好之后,才能够购买入住。这种是前后顺序关系,必...
2020-03-30 16:56:53
484
原创 进程间通信的方式
进程间的通信方式1.管道(pipe)管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常指父子进程关系。2.有名管道(namedpipe)有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3.信号量(semophore)信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时...
2020-03-30 16:20:32
133
原创 Spring整体架构和环境搭建
Spring的整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块。这些模块被总结为以下几个部分:1)Core ContainerCore Container(核心容器)包含有Core、Beans、Context和Expression Language模块。Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性。这里的基础概念是Be...
2020-03-28 10:19:50
233
原创 线程的调度方式
线程的调度方式 在一个进程里,线程的调度有抢占式和非抢占式的模式。抢占式 在抢占模式下,操作系统负责分配CPU时间给各个进程,一旦当前的进程使用完分配给自己的CPU时间,操作系统将决定下一个占用CPU时间的是哪一个线程。因此操作系统将定期的中断当前正在执行的线程,将CPU分配给在等待队列的下一个线程。所以任何一个线程都不能独占CPU。每个线程占用CPU的时间取决于进程和操作系统。进程分配...
2020-03-27 09:38:24
1382
转载 进程与线程的区别
进程与线程的定义进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。为什么会有线程 每个进程都有自己的地址空间,即进程空间,在网络或多用户交换机下,一个服务器通常需要接收大量不确定数量用户...
2020-03-26 16:45:17
217
转载 [转载]小白一路走来,连续刷题三年,谈谈我的算法学习经验
转载自:https://www.cnblogs.com/kubidemanong/p/10996134.html说得很中肯,值得推荐
2020-03-23 15:22:15
232
原创 [解题技巧]m的n次方
题目:求解m的n次方使用位运算进行处理:将n拆解为每一位,只处理当前位为1的情况。例如:n为13,二进制表示成1101,可以拆解成1000 + 0100 + 0000 + 0001需要过滤当前位为0的情况,可以使用& 1的方式进行过滤。代码:public int getMultiplier(int m, int n) { int sum = 1; ...
2020-03-23 14:51:18
2339
原创 [解题技巧]找出没有重复的数
题目:给你一组整型数据,这些数据中,其中有一个数只出现了一次,其他的数都出现了两次,让你来找出一个数 。数据如下:1,2,3,4,5,4,3,2,1使用异或方式解题:任意数字与0进行异或都是其自身。任意数字与其自身进行异或都是0。(用于判断是否重复)异或支持交换律和结合律解题思路:1^2^3^4^5^4^3^2^1 = (1^1)^(2^2)^(3^3)^(4^4)^5 ...
2020-03-23 14:11:46
332
1
原创 365.水壶问题
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/water-and-jug-problem有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶...
2020-03-22 09:26:03
188
原创 Ride启动报错KeyError: APPDATA
报错信息:Traceback (most recent call last):File “D:\Install\Python27\lib\site-packages\robotide_init_.py”, line 83, in mainrun(inpath, not noupdatecheck, debug_console)File "D:\Install\Python27\lib\si...
2020-03-17 08:45:48
897
转载 谷歌浏览器(Chrome)不能拖拽安装插件
今天下载了一款谷歌浏览器的插件(crx文件),按照原来的方式安装,打开扩展程序界面直接将crx文件拖拽到谷歌浏览器的扩展程序界面。版本稍旧的版本还是可以的,但是更新后的一些版本已经不行了(我的是68版本的)。不能拖拽安装,那我们只能找其他方法了。方法一、修改浏览器参数打开谷歌浏览器,输入地址:chrome://flags/#extensions-on-chrome-urls...
2020-03-05 19:45:35
29804
15
原创 1.两数之和
方法一:暴力法复杂度分析:时间复杂度:O(n2)空间复杂度:O(1)public class SolutionOne { public int[] twoSum(int[] nums, int target){ for( int i = 0; i< nums.length ; i++){ for (int j = i+ 1; j &...
2020-02-24 22:52:31
112
原创 shell source sh bash与./的区别
source的使用source FileName作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"注:该命令通常用命令“.”来替代。source .bash_profile. .bash_profile两者等效source通常用来生效刚刚修改的文件sh与bash的使用sh FileName bash FileName作...
2020-01-09 10:26:11
247
原创 python脚本解释器
关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行。有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器。#!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin...
2020-01-08 11:24:55
629
原创 python ==与is的区别
Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么。在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。==比较操作符和is同一性运算符区别==是python标...
2020-01-05 11:55:37
137
转载 OSGI MANIFEST.MF
/META-INF/MANIFEST.MF文件中定义了Bundle的元数据信息。Bundle-SymbolicName: 设置Bundle在OSGI容器中的全局唯一标示符。 说明: 1)这个标记是Bundle元数据信息中唯一一个必须设置的标记。 2)程序根据Bundle-SymbolicName和Bundle-Version在OSGI容器中找到一个独一无二的Bundle。 3)O...
2020-01-04 15:19:25
233
原创 mac下查看Class文件字节码
1.使用vi命令的方式vi -b 文件名进入后输入:%!xxd2.使用Hex FiendHex Fiend支持鼠标选中高亮,很好用,用来学习Java字节码很实用。
2019-12-03 22:40:47
1460
1
原创 超越Java8
声明式编程”如何做”风格的编程非常适合经典的面向对象编程,有些时候我们也称之为“命令式”编程,因为它的特点是它的指令和计算机底层的词汇非常相近,比如赋值,条件分支以及循环,就像下面的这段代码:Transaction mostExpensive = transactions.get(0);if(mostExpensive == null){ throw new IllegalArgument...
2019-11-15 23:36:59
185
原创 Manifest file missing - please check OSGi facet settings.
问题描述:build project发现如下错误问题原因:解决办法:修改osgi的配置,修改为通过配置创建
2019-11-13 11:39:39
824
原创 git add 撤销
git add 添加 多余文件这样的错误是由于, 有的时候 可能git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件git add 如果添加了错误的文件的话撤销操作git status 先看一下add 中的文件git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了git reset HEAD XXX/XXX/XXX.jav...
2019-11-08 00:44:16
135
原创 PG批量删除表
通过使用存储过程的方式批量删除表Create or replace function 过程名(参数名 参数类型,……) returns 返回值类型 as bodybodybody具体应用:删除public用户下的所有表CREATE FUNCTION del_ora_table() RETURNS void AS $$DECLAREtmp VARCHAR(512);DECLARE nam...
2019-11-05 16:42:15
3058
原创 编译型语言和解释型语言,动态语言和静态语言的区别
编译型和解释型的区别先来看看编译型语言的定义:编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码(二进制)再来看看解释型语言的定义:解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。下面打个比方:编译型相当于用**中英文词典(翻译器)将一本英文书一次性翻译(编译)成一本中文书。以后查看直接就是中文了。可想而知,以后读书...
2019-10-24 23:24:06
233
原创 Java8用流收集数据
归约和汇总统计总数利用收集器来统计菜单中有多少中菜:long howManyDishes = menu.stream().collect(Collectors.counting());查找流中的最大值和最小值可以使用两个收集器,Collectors.maxBy和Collectors.minBy,来计算流中的最大值和最小值。这两个收集器接收一个Comparator参数来比较流中的元素。可...
2019-10-20 12:41:42
160
原创 Java8数值流
数值流背景:当计算菜单的热量时,int calories = menu.stream().map(Dish::getCalories).reduce(0,Integer::sum);问题:上例中暗含了装箱的成本,每个Integer都必须拆箱成一个原始类型,再进行求和。解决方法:Java8中引入了三个原始类型特化流接口来解决这个问题:IntStream,DoubleStream和Lo...
2019-10-18 22:33:50
184
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人