- 博客(98)
- 收藏
- 关注
原创 docker 部署 ELK
docker 部署 ELKdocker pull docker.elastic.co/elasticsearch/elasticsearch:7.16.2docker pull docker.elastic.co/logstash/logstash:7.16.2docker pull docker.elastic.co/kibana/kibana:7.16.2# Linux 特有配置sysctl -w vm.max_map_count=262144sysctl -p# Linux 配置结束
2021-12-28 14:47:58
1815
原创 VuePress 配置记录
VuePress 配置记录mkdir vuepress-starter && cd vuepress-starternpm initnpm install -D vuepressvim package.json### 添加如下内容{ "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs", "docs:deploy": "bash deploy.
2021-12-28 14:47:06
460
原创 关于使用AopContext.currentProxy()的报错问题
报错内容如下:java.lang.IllegalStateException: Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to make it available.很多人说不到点子上,什么xml配置,例如<aop:aspectj-autoproxy proxy-target-class="true"expose-proxy="true"/>都2022年了,人均SpringBoo
2021-11-19 10:10:27
2674
原创 python pandas map映射不到值时(NaN)如何取原始值
pandas,在map映射不到值时,如何将NaN取原始值?先说结论:用replace方法代替map方法下面给出过程>>> import pandas as pd>>> s = pd.Series(['A', 'B', 'C', 'D'])>>> recodes = {'A': 'one', 'B': 'two', 'C': 'three'}>>> s0 A1 B2 C3 Ddtype: ob
2021-06-21 10:02:14
2196
原创 记录一个BigDecimal关于0值相等比较的问题
BigDecimal a = new BigDecimal("0.0");a.equals(BigDecimal.ZERO) // falsea.compareTo(BigDecimal.ZERO) == 0 // true原因:// BigDecimal#equals 源码public boolean equals(Object x) { if (!(x instanceof BigDecimal)) return false; BigDecimal xDec
2021-05-13 10:39:43
458
原创 Mac下使用python的cx_Oracle包,报错找不到lib的问题
报错代码:sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 1): image not found".解决方法:参考https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html#installing-
2021-02-25 15:28:43
956
原创 今天发现了String.valueOf(null)的一个有意思的设定
今天写代码需要进行一个equals判断,刚开始我也没多想直接这么写的:Object oldValue = field.get(oldObj);Object newValue = field.get(newObj);if (!String.valueOf(oldValue).equals(String.valueOf(newValue))) { resultMap.put(fiel...
2019-04-12 09:16:06
5387
原创 JavaBean的字段名命名大小写问题
字段的前两个字母要么全部大写,要么全部小写否则会出错:)JavaBean 中的属性是通过 get/set 方法名得来的,因此 :getSname 对应的属性名是 snamegetSName 对应的属性名是 SName如果写成 sName 或者 Sname 的话就是不合法的属性名。...
2019-03-05 16:41:32
1511
原创 Maven中的dependencyManagement理解
Maven中的dependencyManagement相当于一个对所依赖jar包进行版本管理的管理器。pom.xml文件中,jar的版本判断的两种途径:1、如果dependencies中的dependency未声明version,则Maven会去dependencyManagement里寻找是否有对应的版本声明,如有,则继承,如果无,则报错;2、如果dependencies中的depe...
2019-03-01 11:59:30
1625
1
原创 Maven无法加载Oracle驱动包的问题解决办法
由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。如果本地安装有Oracle数据库的话,可以从安装路径:\product\11.2.0\dbhome_1\jdbc\lib,一般选择ojdbc6.jar。cmd输入命令:mvninstall:install-file...
2019-03-01 11:37:19
638
1
原创 IDEA默认Maven设置
IDEA是自带Maven的,但版本有点低,故自己下了新版的Maven,但每次使用创建或者导入Maven项目的时候,IDEA都会使用系统默认的Maven,如下图所示:此时,如果想默认使用自定义安装的Maven,需要点击Maven home directory进行配置。如果在创建时,想使用自动义安装的Maven,可以在File->Other Settings ->Setting...
2019-03-01 10:24:28
8470
1
原创 Maven学习记录
约定优先于配置,配置优先于编码Maven仓库:https://mvnrepository.com/为什么需要Maven?未学习Maven前可能会遇到的问题:①项目中需要用到的jar包需要手动一个个复制粘贴到lib目录下,导致重复jar包过多,项目臃肿;②手动下载的jar包来源不同,内容可能不规范;③一个jar包所依赖的其他jar包也需要手动导入,过程十分复杂繁琐,增加了学习成本...
2019-03-01 09:32:39
183
原创 把数组排成最大的数
前几天做到这个题,当时蒙住了,只想着按位比较,把拼接比较给忘了,现在想了一下发现自己那时候好蠢,记录一下 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最大的一个思路:将整型数组转换成String数组,然后将String数组排序,把m和n拼接成的mn和nm按照字符串大小的比较规则来处理即可,如果mn < nm,应该打印出nm,即n应该排在m...
2018-10-08 00:15:49
1009
原创 数据结构的Java实现(十四)—— 图
1、图的定义图通常有个固定的形状,这是由物理或抽象的问题所决定的。比如图中节点表示城市,而边可能表示城市间的班机航线。如下图是美国加利福利亚简化的高速公路网: ①、邻接:如果两个顶点被同一条边连接,就称这两个顶点是邻接的。如上图 I 和 G 就是邻接的,而 I 和 F 就不是。②、路径:从某顶点到另一顶点经过的边的序列。比如从顶点B到顶点J的路径为 BAEJ。③、...
2018-10-02 20:26:17
377
2
原创 Java中Runnable()和Callable()的区别
区别点:Callable规定的方法是call(),Runnable规定的方法是run(); Callable的任务执行后可返回值,而Runnable的任务是不能返回值; call方法可以抛出异常,run方法不可以;相同点:两者都是接口; 两者都需要调用Thread.start()启动线程;...
2018-09-28 23:21:36
1587
原创 栈和队列 互相实现
两个栈实现一个队列import java.util.Stack;// 用两个栈实现队列public class MyStackToQueue { Stack<Character> s1 = new Stack<>();// 负责入列 Stack<Character> s2 = new Stack<>();// 负责出列 publi...
2018-09-28 12:12:28
309
原创 数据结构的Java实现(十三)—— 堆
1、堆的定义①、它是完全二叉树,除了树的最后一层节点不需要是满的,其它的每一层从左到右都是满的。注意下面两种情况,第二种最后一层从左到右中间有断隔,那么也是不完全二叉树。②、它通常用数组来实现。这种用数组实现的二叉树,假设节点的索引值为index,那么:节点的左子节点是 2*index+1 节点的右子节点是 2*index+2 节点的父节点是 (index-1)/2③...
2018-09-26 22:24:58
199
原创 数据结构的Java实现(十二)—— 哈希表
Hash表也称散列表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组、链表、树等数据结构不同,在这些数据结构中查找某个关键字,通常要遍历整个数据结构,也就是O(N)的时间级,但是对于哈希表来说,只是O(1)的时间级。注意,这里有个重要的问题就是如何把关键字转换为数组的下标,这个转换的函数称...
2018-09-26 21:39:57
306
原创 数据结构的Java实现(十一)—— 红黑树
二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn)。但这个时间复杂度是在平衡的二叉搜索树上体现的,也就是如果插入的数据是随机的,则效率很高,但是如果插入的数据是有序的,比如从小到大的顺序【10,20,30,40,50】插入到二叉搜索树中: 从大到小就...
2018-09-26 01:37:52
196
转载 List、set、Map的底层实现原理
原文:https://blog.youkuaiyun.com/xzp_12345/article/details/79251174目录ArrayList实现原理要点概括LinkedList实现原理要点概括HashMap实现原理要点概括Hashtable实现原理要点概括ConcurrentHashMap实现原理要点概括HashSet实现原理要点概括LinkedHashMap实现原...
2018-09-25 01:53:41
2484
转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
原文:https://javadoop.com/post/hashmap今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤...
2018-09-25 00:45:07
164
原创 ArrayList循环遍历并删除元素的陷阱
import java.util.ArrayList;public class ArrayListRemove { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("a"); list.add("b");...
2018-09-24 23:23:29
1696
转载 MySQL索引背后的数据结构及算法原理
原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 目录摘要数据结构及算法基础索引的本质B-Tree和B+TreeB-TreeB+Tree带有顺序访问指针的B+Tree为什么使用B-Tree(B+Tree)主存存取原理磁盘存取原理局部性原理与磁盘预读B-/+T...
2018-09-24 17:11:53
166
原创 MySQL的四种事务隔离级别
一、事务的基本要素(ACID)原子性(Atomicity):事务是一个不可分割的单位。事务中的操作,要么全部做完,要么全部不做。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。必须使数据库从一个一致性状态变换到另一个一致性状态。比如A向B转账,不可能A扣了钱,B却没收到。 隔离...
2018-09-24 16:57:20
235
转载 Java的四种引用 强引用 软引用 弱引用 虚引用
原文:https://www.cnblogs.com/yw-ah/p/5830458.html强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放...
2018-09-24 15:07:42
295
原创 Java 垃圾回收机制与几种垃圾回收算法
一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失...
2018-09-24 14:52:46
52079
4
转载 JVM的新生代、老年代、永久代(元空间)、MinorGC、MajorGC
转载自:https://www.cnblogs.com/ygj0930/p/6522828.html目录一、新生代:二、老年代:三、永久代:参考资料:http://blog.youkuaiyun.com/flamezyg/article/details/44673951http://www.blogjava.net/ldwblog/archive/2013/07/24/401919...
2018-09-24 01:26:20
1653
转载 GC详解及Minor GC和Full GC触发条件总结
原文:https://blog.youkuaiyun.com/yhyr_ycy/article/details/52566105GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃...
2018-09-24 01:22:27
3999
原创 JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置
XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms 堆内存的最小大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss 设置每个线程可使用的内存大小,即...
2018-09-24 01:11:53
135608
4
原创 Eclipse Memory Analyzer —— MAT查找内存泄漏工具
一、MAT是什么?MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。二、如何使用MAT本文以一...
2018-09-24 00:12:42
17965
1
原创 Java代理模式 静态代理 动态代理
目录静态代理动态代理代理的基本构成抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理...
2018-09-23 16:45:30
172
原创 MySQL中乐观锁、悲观锁、共享锁、排它锁、行锁、表锁的概念
乐观锁乐观锁是指在操作数据库时(更新操作),想法很乐观,认为此次操作不会导致冲突,所以在操作数据时,不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突。悲观锁悲观锁是指在操作数据库时(更新操作),想法很悲观,认为此次操作会出现冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,悲观锁需要耗费较多的时间。类似java中的synchronized...
2018-09-22 11:58:28
409
原创 MySQL主从复制
1、什么是主从复制 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。2、主从复制的作用 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 架构的扩展。业务量越来越大,IO访问频率过高,单机无法满足,此时做多库的存储,降低磁盘IO访问的频率,提高单个机器的I/O性能。 ...
2018-09-22 11:43:20
274
原创 Java实现单链表的反转
Node类: public class Node { int data; Node next; public Node(int data) { this.data = data; }}迭代实现:先将下一节点记录下来,然后让当前节点指向上一节点,再将当前节点记录下来,再让下一节点变为当前节点public static Node rev...
2018-09-21 00:26:46
331
原创 Java中String为什么设计成不可变类
1、字符串常量池字符串常量池是方法区中一块存储区域,当创建一个字符串常量的时候,判断该字符串字在符串字符串常量池中是否已经存在,只有当字符串是不可变的,字符串池才有可能实现。如果存在,返回已经存在的字符串的引用;如果不存在,则创建一个新的字符串常量,并返回其引用。String string1 = "abcd";String string2 = "abcd";变量string1,s...
2018-09-20 23:45:32
579
原创 Java中Comparable和Comparator的区别
一、Comparable简介Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;...
2018-09-20 13:50:32
130
原创 Integer的缓存机制
public class CompareExample { public static void main(String[] args) { Integer num1 = new Integer(100); Integer num2 = new Integer(100); System.out.println(num1 == num2); System.out.print...
2018-09-20 13:10:26
3579
转载 BIO与NIO、AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到...
2018-09-20 12:41:12
114
原创 jvm是如何判断两个类是否相等的
通过两种方式:①类的全限定名②类的加载器我们知道,类的加载主要分为以下三步:1、加载:根据路径找到对应的.class文件2、连接:又分为验证:检查待加载的class正确性 准备:给类的静态变量分配空间 解析:将符号引用转为直接引用3、初始化:对静态变量和静态代码块执行初始化工作加载阶段通过类的全限定名来获取定义此类的二进制字节流,并将字节流的静态存储结构转化为方法区的运行...
2018-09-17 12:09:59
1305
原创 输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少
输入描述一个正整数n,范围在[1, 2^31 - 1]输出描述从0到n这n+1个数中,有多少个数满足条件:该数的二进制表示没有3个连续的1输入一9输出一90-9这十个数中只有7(111)不满足条件,因此输出为9。输入二17输出二150-17这十八个数中,7(111)、14(1110)、15(1111)不满足条件,因此输出为15。...
2018-09-16 01:28:51
1157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人