
技术
文章平均质量分 52
技术
复利人生
这个作者很懒,什么都没留下…
展开
-
Java运算符
Java运算符转载 2022-10-12 20:18:19 · 196 阅读 · 0 评论 -
通项目更改成maven项目
普通项目更改为maven项目转载 2022-10-11 15:05:03 · 543 阅读 · 0 评论 -
Mac安装wget的两种方法
第一种:传统的安装包A - 从ftp://ftp.gnu.org/gnu/wget/下载到最新的wget安装包到本地B - 然后通过终端tar -zxvf命令解压到我们某个目录C - 然后依次执行./configure 和 make 以及 make install命令。第二种:HomebrewHomebrew是一款非常强大的可以应用在MAC中的Linux管理包,如果上面的方法感觉比较麻烦,我们可以通过下面的方法解决。A - 执行安装brew进入终端之后,执行brew的安装ruby -e "$转载 2021-06-30 14:33:13 · 9764 阅读 · 0 评论 -
JVM知识点梳理
通过Java命令执行代码的大体流程类加载器的双亲委派机制JVM内存模型JVM通用参数设置对象创建的主要流程分配内存之划分内存1.指针碰撞2.空闲列表分配内存之并发问题解决方法1.CAS2.本地线程分配缓冲(TLAB)对象头组成部分1.标记字段2.Klass类型执行3.数组长度指针压缩1.33位到35位的内存地址在存储时会进行压缩成32位进行存储,节省内存空间2.堆内存小于4G时不需要启用指针压缩3.堆内存大于32G时压缩指针会失效对象内存分配流程图老年代空原创 2021-06-29 17:59:55 · 162 阅读 · 1 评论 -
G1分区最大数量能超过2048吗
说明:JDK7和JDK8的Region划分实现略有不同(差异非常小,且只有-Xmx和-Xms的值不一样才有区别),本篇文章讲解的是JDK8中Region的划分实现;如果要了解JDK7的Region划分实现,请参考JDK7 headpRegion.cpp之所以写这篇文章是因为看到有人发出了这样的提问:G1的Xmx大于64G有意义吗?看过一些资料,G1的Region最大可以到32M,2048个分区,这样算下来,32M*2048=64G。首先说结论,大于64G肯定有意义。那么他的计算方式问题出在哪里呢?让我们转载 2021-06-25 16:56:18 · 901 阅读 · 0 评论 -
JVM之记忆集|卡表|写屏障
背景分代收集理论的时候,会存在为了解决对象跨代引用所带来的的问题。垃圾收集器在新生代中建立了名为记忆集的数据结构,用来避免把整个老年代加进GC roots扫描范围。事 实上并不只是新生代、老年代之间才有跨代引用的问题,所有涉及部分区域收集(Partial GC)行为的 垃圾收集器,典型的如G1、ZGC和Shenandoah收集器,都会面临相同的问题,因此我们有必要进一步理清记忆集的原理和实现方式,以便学习几款最新的收集器相关知识时能更好地理解。记忆集记忆集是一种用于记录从非收集区域指向收集区域的指针集转载 2021-06-25 16:36:54 · 1121 阅读 · 0 评论 -
归并排序时间复杂度分析过程
具体分析过程归并排序方法就是把一组n个数的序列,折半分为两个序列,然后再将这两个序列再分,一直分下去,直到分为n个长度为1的序列。然后两两按大小归并。如此反复,直到最后形成包含n个数的一个数组。归并排序总时间=分解时间+子序列排好序时间+合并时间无论每个序列有多少数都是折中分解,所以分解时间是个常数,可以忽略不计。则:归并排序总时间=子序列排好序时间+合并时间1如果假设一个序列有n个数的排序时间为T(n),T(n)是一个关于n的函数,随着n的变化而变化。那么我们将n个数的序列,分为两个(n/2转载 2021-06-20 22:48:07 · 730 阅读 · 0 评论 -
JVM的三色标记法&漏标解决方案:增量更新|原始快照
三色标记法基本算法要找出存活对象,根据可达性分析,从GC Roots开始进行遍历访问,可达的则为存活对象:最终结果:A/D/E/F/G 可达我们把遍历对象图过程中遇到的对象,按“是否访问过”这个条件标记成以下三种颜色:白色:尚未访问过。黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部访问过了。灰色:本对象已访问过,但是本对象 引用到 的其他对象 尚未全部访问完。全部访问后,会转换为黑色。三色标记遍历过程假设现在有白、灰、黑三个集合(表示当前对象的颜色),其遍历访问过程为:转载 2021-06-19 21:00:20 · 2844 阅读 · 8 评论 -
Idea上调jvm参数,配置vm options报错“找不到或无法加载主类”
是开头的字符的问题:应该用连字符(hyphen-minus):-XX:+PrintGCDetails而不是连接号(en dash): ‐XX:+PrintGCDetails第一个字符不一样连字符要长一点参考:https://www.zhihu.com/question/437559413https://stackoverflow.com/questions/45490492/error-could-not-find-or-load-main-class-xmx1g...转载 2021-06-18 01:38:47 · 1245 阅读 · 2 评论 -
idea字节码查看插件jclasslib
1.安装https://blog.youkuaiyun.com/w605283073/article/details/103209221全称:jclasslib bytecode viewer使用时直接选择 View --> Show Bytecode With jclasslib注意:如果是自己项目的源码需要先编译2.详细分析jclasslib的结果https://www.jianshu.com/p/85fcc4676b36...转载 2021-06-13 08:46:18 · 205 阅读 · 0 评论 -
hive在已有表添加或删除字段时要注意的坑点
hive在已有表添加或删除字段时若该表已在某个脚本中有insert语句,一定要把脚本中对应的insert语句进行修改适配,否则脚本就会运行失败。另外hive插入数据需要完全按照hive表中列的创建顺序来进行,并且数据的各个列要与hive表中列顺序一致;...原创 2021-06-11 11:39:25 · 996 阅读 · 0 评论 -
有趣的海盗问题(完整版)
有趣的海盗问题(完整版)具体链接如下:https://mp.weixin.qq.com/s?__biz=MzA3MjY1MTQwNQ==&mid=2649825691&idx=1&sn=cf43b385447923b915b65b4a81fd150a&chksm=871e8679b0690f6fffbb96eb5afd4551e0731457cb67430dde...转载 2019-01-22 17:31:24 · 2637 阅读 · 0 评论 -
Erlang 之父去世,他留给程序员两点忠告
Erlang之父(Joe Armstrong ) 给程序员的两点忠告第一:先思考再编程。他在编程的20年都犯着一个错:在年轻的时候,会不停地写程序,直到完成。等写完后他会突然发现:“啊!搞错了!”等到重新编写程序,会再次发现:“噢,程序是错的。”于是又重新编写。他于是开始思考改变:“先不要动手写代码,把这些东西都想好,这样做不是很好吗?”第二:不要在疲惫时写代码。在年轻的时候,他会通宵...原创 2019-04-24 17:44:08 · 279 阅读 · 0 评论 -
2018各大公司排名
2018全球20大互联网科技公司转载 2019-03-02 17:18:02 · 1434 阅读 · 0 评论 -
互联网名词含义
“Google"这个名字来源于单词"googol”,是由美国数学家 Edward Kasner 的侄子 Milton Sirotta 创造的。一个 Googol 所代表的数字为1后面加上 100 个零。Googol 是一个非常大的数字,宇宙中没有什么物质的数量可以达到一个 Googol – 无论星星、尘埃还是原子。...原创 2019-03-02 12:33:40 · 658 阅读 · 0 评论 -
互联网简史
互联网简史一张图带你了解 互联网简史 互联网发展关键人物转载 2019-03-02 10:44:29 · 6307 阅读 · 0 评论 -
计算机的发展历程
科学家称谓 图灵Alan Turing——计算机科学之父 查尔斯·巴贝奇Charles Babbage——通用计算机之父 约翰·阿坦那索夫John Vincent Atanasoff——电子计算机之父 约翰·冯·诺依曼John von Neumann——现代计算机之父转载 2019-03-02 08:57:41 · 644 阅读 · 0 评论 -
存储容量(空间)换算公式
存储容量:是该存储设备上可以存储数据的最大数量2的10次方是10241bit(比特) 一个电路线(可以表示0或1)1Byte(字节)=8bit1 KB = 1024 Byte Kilobyte千字节1 MB = 1024 KB Megabyte兆字节1 GB = 1024 MB Gigabyte吉字节1 TB = 1024 GB Terabyte太字节1 PB = ...原创 2019-02-22 17:22:18 · 27734 阅读 · 1 评论 -
编程专有名词解释
编程专有名词解释POJO(Plain Ordinary Java Object): 在本手册中,POJO专指只有setter / getter/ toString的简单类,包括DO/DTO/BO/VO等。GAV(GroupId、ArtifactctId、Version): Maven坐标,是用来唯一标识jar包。OOP(Object Oriented Programming): 本手册泛...原创 2019-02-22 16:46:49 · 1598 阅读 · 0 评论 -
假设你是个妹子--史上最污技术解读,秒懂60个IT术语
很多同学对热备,冷备,云备了解不深,我科普一下IT行业各种备份术语。以后别闹笑话了。假设你是个妹子…假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。假设你是个妹子,同时和两位男性在交往,两位都是你男朋友。并且他们还互不干涉,独立运行。这就是双机热备份。假设你是个妹子,不安于男朋友给你的安全感。...转载 2019-01-25 15:53:00 · 1003 阅读 · 1 评论 -
互联网程序员行话(黑话)合集
一、招聘行话大全,能听懂证明你是历经磨难的老司机刚开始投简历时,你总以为是这样的,其实大部分情况下是那样的……面试之后,HR让回去等消息,傻傻的等待,半个月以上没有回音,各种焦虑……明面上的意思就是实际意思的公司,貌似都是说的是别人的公司~~~~下面是职场达人总结的招聘行业术语(俗称招聘黑话),一看就懂证明你是历经磨难且具有拼搏精神的老司机,让我们一起来看看吧:1、能承受较大的工作压力—...转载 2019-01-21 16:52:44 · 3372 阅读 · 0 评论 -
在 Java 中一句话初始化一个 List
在 Java 中初始化 List 方法一:使用Arrays方法二:使用Stream(JDK8)方法三:使用 Lists (JDK9)方法四:使用 Lists (JDK10)方法一:使用ArraysList<String> list = Arrays.asList("a", "b");方法二:使用Stream(JDK8)List<String> collect = ...原创 2020-03-10 15:15:55 · 399 阅读 · 0 评论 -
JAVA中的阻塞队列
JAVA中的阻塞队列什么是阻塞队列阻塞队列是一个在队列基础上又支持了两个附加操作的队列。2个附加操作:支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:队列空时,获取元素的线程会等待队列变为非空。应用场景阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。简而言之,阻塞队列是生产者用来存放元素、消费...原创 2019-01-22 16:35:47 · 234 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor
Java线程池ThreadPoolExecutor背景本文基于JDK1.7的源码进行分析并解读。ThreadPoolExecutor是Doug Lea大神开发的JUC提供的一类线程池工具,也是Java语言中应用场景最多的并发框架,可以说,几乎所有需要异步或者并发执行的,都可以使用Java线程池。优点合理的使用线程池能够带来的好处:1.降低资源消耗:通过复用已经创建好的线程来降低线程创建...原创 2019-01-22 13:13:43 · 567 阅读 · 0 评论 -
单例模式的五种写法
概述单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。0.懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。p...转载 2019-01-21 17:01:24 · 861 阅读 · 0 评论 -
阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点
阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点阿里巴巴Java开发手册(详尽版)1一、编程规约(一) 命名风格【强制】代码中的命名只可用英文方式【强制】类名使用UpperCamelCase风格,但以下例外:分层领域模型规约2:DO( Data Object):数据对象,与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO( DataTransfer Obje...原创 2019-01-17 17:21:51 · 14274 阅读 · 10 评论 -
MySQL数据库开发规范
MySQL数据库开发规范一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释解读:N年后谁知道这个r1,r2,r3字段是干嘛的(4)禁止使用存储过程、视图、触发器、Event解读:高并发大数据的互联网...转载 2019-01-15 11:05:08 · 198 阅读 · 0 评论 -
javaWEB安全开发基本原则
javaWEB安全开发基本原则最小化设计 用户输入最小化,尽可能少地使用用户的输入 用户输入范围最小化,过滤参数时尽量使用白名单策略 用户权限最小化,只对用户进行所需的最少授权 输出数据字段最小化,限制数据输出并且不输出业务无关的数据所有(客户端)输入都不可信 通信协议中从客户端传来的一切数据 从数据库/文件/网络等,一些不直接来源于用户,但又不是程序中定义好的常量数据安全编...原创 2019-01-14 19:49:35 · 10395 阅读 · 0 评论 -
Offset commit with offsets failed
报错现象2021/05/31-14:17:26.488 [] [JdqConsumerThread_unique_device_identification_mapper_yf_0] ERROR org.apache.kafka.clients.consumer.internals.ConsumerCoordinator- [Consumer clientId=4670fce6, groupId=hisotry1617153935172] Offset commit with offsets {uniqu原创 2021-05-31 17:05:23 · 1729 阅读 · 0 评论 -
idea import javafx.util.Pair 飘红编译报错
现象idea import javafx.util.Pair操作系统mac pro原因使用的jdk是adopt-openjdk-1.8.0_292 这是从idea软件直接下载的jdk,默认是1.8的最新版本,而最新版本没有 javafx.util.Pair这个类对应的jar包,jre/lib/ext/目录下缺少jfxrt.jar包(根本原因)解决方案将jdk版本回退到jdk1.8.0_271.jdk...原创 2021-05-31 10:42:21 · 3905 阅读 · 0 评论 -
insert ignore
insert或insert into功能:单个或批量插入数据,若数据已存在,则会抛异常insert ignore into功能:单个或批量插入数据,若数据已存在,则忽略,只会把数据库中没有的数据查询出来shardingsphere 支持ignore这种写法...原创 2021-05-21 13:18:29 · 1052 阅读 · 0 评论 -
解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。截图为网络中搜索到的常见原因:本人此次遇到的问题是通过***方法4***解决的...转载 2020-04-09 20:12:52 · 1102 阅读 · 0 评论 -
SpringMVC Mybatis配置多个数据源并切换代码详解
文章主要介绍了SpringMVC Mybatis配置多个数据源并切换代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下最近公司一个项目需要连接两个数据库(A和B)操作,有的模块查询A库,有的模块查询B库,因此需要改造下,项目后台用的是SpringMVC+Mybatis+MySQL架构,折腾了两天后终于搞定了,在这里记录过改造过程。使用场景...转载 2020-04-08 18:02:28 · 304 阅读 · 1 评论 -
swagger引入遇到的问题梳理
正常引入swagger2<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency...原创 2020-03-10 15:23:30 · 3330 阅读 · 0 评论 -
java.net.SocketException: Connection reset
TLS版本不适配导致Connection reset问题问题:服务器调外部公司S的接口一直失败,报错 connection reset ,但调其他外部公司的接口却Ok,本地开发环境调S的接口也可以调通。java.net.SocketException: Connection resetat java.net.SocketInputStream.read(SocketInputStream...原创 2019-08-29 16:41:43 · 6643 阅读 · 0 评论 -
CURL HTTPS 返回 ERRNO 35(SSL CONNECT ERROR) 错误
CURL HTTPS 返回 ERRNO 35(SSL CONNECT ERROR) 错误微信支付获取 prepay id 偶尔失败问题总结。微信支付会要求先从微信服务器获取 prepay id (https://api.mch.weixin.qq.com/pay/unifiedorder)。我们开发完成后(语言是PHP,使用微信的支付SDK,请求时使用curl),在测试环境的机器上,基本没有发...转载 2019-08-29 10:49:09 · 18355 阅读 · 0 评论 -
项目启动时部分服务器启动失败但没异常栈打印
现象服务器启动时部分机器启动成功,剩余部分机器启动失败,报错如下:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/export/Packages/swat-man/20190819214024/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/...原创 2019-08-20 15:11:07 · 284 阅读 · 0 评论 -
springmvc项目整合es遇到的坑盘点
整合es版本6.3.2es内核使用的是netty对应pom文件依赖如下<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <...原创 2019-08-13 19:35:25 · 1745 阅读 · 0 评论 -
mysql 查询时筛选条件区分大小写
第一种:SELECT * FROM AAA T WHERE BINARY T.CONTENT LIKE ‘%S%’第二种:SELECT * FROM AAA T WHERE T.CONTENT COLLATE utf8_bin LIKE ‘%S%’之前一直不怎么清楚核对(Collate)是做什么用的,里面有各种 “_bin"或者”_ci"结尾的词,现在才知道,原来 bin(binary) ...转载 2019-04-24 17:40:21 · 2574 阅读 · 0 评论 -
ImageIO.read() 返回 null
现象(问题描述)今天线上出现了一个问题 BufferedImage prevImage = ImageIO.read(inputStream) 调试跟进去发现prevImage = null,可是输入流是好好的,而且输入流对应的图片也能打开,但 ImageIO.read返回就是null解决过程后来在网上查找ImageIO用法知道,它可读取的图片类型是有限制的,可以读取图片的格式为:[BMP,...原创 2019-03-27 18:00:02 · 17917 阅读 · 3 评论