自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

转载 jvm方法区中的类回收问题

jvm 方法区

2022-06-06 11:27:41 278

原创 postgres导出查询结果到文件

进入postgres,创建导出文件 touch /home/my.csv 切换到库odoo:\c odoo COPY (SELECT * FROM blacklist) TO '/home/my.csv' (format csv, delimiter ';')

2022-04-24 19:10:30 1074

转载 postgresql事务隔离级别如何查看以及设置

1、查看数据库事务隔离级别SELECT name, setting FROM pg_settings WHERE name ='default_transaction_isolation';或SELECT current_setting('default_transaction_isolation');2、设置全局事务隔离级别方法一:修改postgresql.conf文件中的default_transaction_isolation方法二:alter system set def

2022-04-09 15:42:51 5586

转载 PostgreSQL的MVCC与数据库ACID

1、数据库事务ACID介绍数据库事务包含如下四个特性原子性(Atomicity)指一个事务要么全部执行,要么不执行。也即一个事务不可能只执行一半就停止(哪怕是因为意外也不行)。比如从取款机取钱,这个事务可以分成两个步骤:1)划卡;2)出钱。不可能划了卡,而钱却没出来。这两步必须同时完成,或者同时不完成。 一致性(Consistency)事务的运行不可改变数据库中数据的一致性,事务必须将数据库中的数据从一个正确的状态带到另一个正确的状态。事务在开始时,完全可以假定数据库中的数据是处于正确(一致)..

2022-04-08 19:24:17 401

原创 MySql主键和唯一索引的区别

一、区别主键和唯一索引都要求值唯一,但是它们还是有区别的:主键是一种约束,唯一索引是一种索引 一张表只能有一个主键,但可以创建多个唯一索引 主键创建后一定包含一个唯一索引,唯一索引并一定是主键 主键不能为null,唯一索引可以为null 主键可以做为外键,唯一索引不行二、创建示例mysql> CREATE TABLE tb_emp4 -> ( -> id INT(11), -> name VARCHAR(25), -> d

2022-04-05 11:36:18 2216

转载 Java中submit()和execute()方法的区别

一、区别submit()方法是ExecutorService接口的方法,execute()是接口Executor的方法,UML结构如下:Example: Submit() to accept Runnable task示例:Submit()接受可运行任务 // Java program to demonstrate the behavior of submit() method // of ExecutorService interface impo

2022-04-04 10:57:09 388

原创 十大经典排序算法(六):快速排序

1、介绍2、复杂度最佳情况:T(n) = O(nlogn) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(nlogn)3、源码package sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] array = new int[]{5, 4, 6, 1, 3}; int[]

2022-04-02 15:49:13 59

转载 Java中static class使用方式

java允许在一个类里面定义静态类。如内部类(nested class)。在java中,不能用static修饰顶级类(top level class)。只有内部类可以为static。 静态内部类和非静态内部类之间区别:1. 内部静态类不需要有指向外部类的引用。但非静态内部类需要。2. 静态类只能访问外部类的静态成员,非静态内部类能够访问外部类的静态和非静态成员。3. 非静态内部类不能脱离外部类实体被创建,非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。/* 下面程.

2022-04-02 09:48:31 332

转载 弱引用WeakReference作用与使用场景

在分析threadLocal源码时,发现有使用弱引用WeakReference,在之前总结GC的时候,也曾简单介绍java引用类型(《jvm GC算法类型》第6节),本文在详细总结下WeakReference的使用方法。java 4种引用类型:强:A a=new A(); 此时引用a强引用对象A;不会被GC软:SoftReference.java,在内存不够时引用对象会被GC;弱:WeakReference.java,每次GC都会被回收;虚:PhantomReference.java,每次GC

2022-04-01 10:54:49 1076

转载 WeakReference在ThreadLocal中的使用

1.ThreadLocal定义&作用定义: ThreadLocal叫做线程本地变量,顾名思义,就是Thread的一个内部变量,这个ThreadLocal是属于某个线程的。就好比是某个人的老婆(们),老婆只能属于某个人,而不能被共享;这里老婆有可能是复数,一个人可以有多个老婆(好比在古代),老婆跟着丈夫走,丈夫生而生,丈夫死而死;作用: 既然是属于某一个线程的变量,那么肯定就不是被多个线程共享的;这个东西在多线程场景中使用,目的就是防止变量在多个线程中游走,产生线程安全的问题。下面描述一个

2022-04-01 08:57:47 378

转载 线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue

1.SynchronousQueueprivate static ExecutorService cachedThreadPool = new ThreadPoolExecutor(4, Runtime.getRuntime().availableProcessors() * 2, 0, TimeUnit.MILLISECONDS, new SynchronousQueue<>(), r -> new Thread(r, "ThreadTest"));Synchr...

2022-03-31 09:32:17 392

转载 java并发编程之ThreadLocal

一 、并发编程的“一致性问题”什么是一致性问题?多线程充分利用了多核CPU的威力,为我们程序提供了很高的性能。但是有时候,我们需要多个线程互相协作,这里可能就会涉及到数据一致性的问题。数据一致性指问题的是:发生在「多个主体」对「同一份」数据无法达成「共识」。这里的多个主体,可能是多线程,也可能是多个服务器节点。当然了,这里的“多个主体”也可以指朋友之间,夫妻之间,所谓“道不同,不相为谋”,说的就是这个理。数据一致性问题是我们使...

2022-03-27 12:18:25 676

转载 PostgreSQL存储结构

PostgreSQL中,一个表对应一个逻辑文件,一个表被分割成若干个物理段文件(relation segment),除最后一段外默认大小40M。文件页(磁盘块)是物理段文件的基本储存单位,也是内存和磁盘交换的单位。文件页大小限制了表元组的大小并影响磁盘操作效率,缺省大小8192字节,最大可设置为2^15字节(这是由磁盘块索引是15位决定的)。一个文件页空间被逻辑分割为三个部分:PageHeader:页描述区 记载页的使用情况, 如页分布格式版本,元组数据空间和特殊空间的起始位置以及文件页相..

2022-03-26 16:32:08 794

转载 Kafka常用命令之kafka-console-consumer.sh

kafka-console-consumer.sh 脚本是一个简易的消费者控制台。该 shell 脚本的功能通过调用 kafka.tools 包下的 ConsoleConsumer 类,并将提供的命令行参数全部传给该类实现。消息消费 表示从 latest 位移位置开始消费该主题的所有分区消息,即仅消费正在写入的消息。bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic to

2022-03-23 11:00:22 5851

原创 设计模式--桥接模式

一、介绍桥接模式(Bridge模式)详解二、JDBC与桥接模式JDBC和桥接模式 - 枯落 - 博客园

2022-03-21 09:51:32 75

原创 PowerMockito mock interface时报错org.powermock.reflect.exceptions.MethodNotFoundException

用例子说明:有如下接口:public interface MyTest { int plus(int a, String... s);}这样mock这个接口就会报错:org.powermock.reflect.exceptions.MethodNotFoundException: No method found with name 'plus' with parameter types: [ java.lang.Integer ]@Beforepublic void set..

2022-03-16 14:51:37 2987

转载 机器人走网格问题

1、题目2、分析首先来分析一下,网格可以使用二维数组来实现,以下图为例 m = 2,n = 3 ,起点为 1([0][0]),终点为 6([1][2]){{1, 2, 3},{4, 5, 6},};由于只能向右或向下走,先列出所有路径1 -> 2 -> 3 -> 61 -> 4 -> 5 -> 6.1 -> 2 -> 5 -> 6第三条比较特殊,从起点1开始走到2的时候,有两条路,可以向右也可以向下。如果数...

2022-03-10 18:51:04 176

转载 java单元测试之Mock静态方法

用例子说明,例如有下面静态方法public final class AmountUtil {public static String CustomFormatWith2Digits(int amount) {return "1";}单元测试代码,需要说明的是,如果单元测试测试的生产代码方法中用到了例子中的CustomFormatWith2Digits方法,该中方法也是可行的@RunWith(PowerMockRunner.class)@PrepareForTest({Amou

2022-03-10 10:54:08 5273 2

转载 Postgres的多版本并发控制MVCC

MVCC,Multi-Version Concurrency Control,多版本并发控制。一句话讲,MVCC就是用同一份数据临时保留多版本的方式,实现并发控制。它可以避免读写事务之间的互相阻塞,相比通常的封锁技术可极大的提高业务的并发性能。为何需要MVCC如果有人从数据库中读数据的同时,有另外的人写入数据,有可能读数据的人会看到『半写』或者不一致的数据。有很多种方法来解决这个问题,叫做并发控制方法。最简单的方法,通过加锁,让所有的读者等待写者工作完成,但是这样效率会很差。MVCC 使用了一种不

2022-03-07 15:15:43 406

转载 ElasticSearch学习总结

1、es的tcp端口9200和9300区别9200:es节点与外部通讯使用9300: es节点之间内部使用2、乐观锁与悲观锁乐观锁不会阻塞线程,悲观锁会。3、查看es的分词器如何分词一般es默认的分词器对中文分词不友好,会把一个词语分词成单独的一个汉字。可以安装分词器插件,例如"ik_smart"。查看分词器是怎么分词的,可以使用如下接口调用:curl -H "Content-Type: application/json" "用户名密码和ip信息:9200/_analyze

2022-03-03 20:32:18 268

转载 悲观锁与乐观锁

1、介绍悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人...

2022-02-27 11:08:37 62

转载 jvm学习总结

1、java中会存在内存泄漏吗,请简单描述。会。自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java.2、64 位 JVM 中,int 的长度是多数?Java 中,int 类型变量的长度是一个固定值,与平台无关,都是 32 位。意思就是说,在 32 位 和 64 位 的 Java 虚拟机中,int 类型的长度是相同的。3、Serial 与 Parallel GC 之间的不同之处?Serial 与 Parallel 在 GC 执行的时候都会引起 stop-the-

2022-02-25 10:51:36 116

转载 Java IO流学习总结

1. Java中有几种类型的流?字符流和字节流。 字节流继承inputStream和OutputStream 字符流继承自InputSteamReader和OutputStreamWriter 总体结构图

2022-02-19 10:38:42 70

转载 Java并发编程:Callable、Future和FutureTask

在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。  如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。  而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。  今天我们就来讨论一下Callable、Future和FutureT...

2022-02-15 14:56:22 88

转载 Java动态代理InvocationHandler和Proxy

1、实例package reflect;public interface People { public String work();}定义一个Teacher类,实现People接口,这个类是真实的对象package reflect;public class Teacher implements People{ @Override public String work() { System.out.println("老师教书育人...")

2022-02-11 16:37:55 80

转载 zookeeper详细介绍

参见视频:提示信息 - 阿里云全球培训中心 - 官方网站,云生态下的创新人才工场

2022-02-07 12:57:40 45

转载 Kafka为什么要抛弃ZooKeeper?

相信大家最近一定关注到一款重量级消息中间件Kafka发布了2.8版本,并且正式移除了对Zookeeper的依赖,背后的设计哲学是什么呢?仅仅只是减少了一个外部依赖吗?答案显然不会这么简单,容我慢慢道来。在解答为什么之前,我觉得非常有必要先来阐述一下Zookeeper的经典使用场景。Zookeeper的经典使用场景Zookeeper是伴随着大数据、分布式领域的兴起。大数据中的一个非常重要的议题是如何使用众多廉价的机器来实现可靠存储。所谓廉价的机器就是发生故障的概率非常大,但单台的成本也非常

2022-01-30 14:54:54 756

转载 Kafka 副本的AR,ISR,OSR

1、概念介绍在查看topic详细信息的话可以看到有个Isr:首先要引出一个问题,为什么要存在这些东西:在数据同步的时候,如果发生leader死掉,并且重新选举的leader能力不强(数据同步速度慢,数据同步不全面),会造成一群follow跟着一个傻逼leader。造成脏数据。所以我们就要知道哪些副本能力是较强的,同步数据是最快最完整的,在leader发生问题后第一时间补上。AR:Assigned Replicas 总的分配副本OSR:Out-of-Sync Replicas 脱离同步副本。

2022-01-29 16:29:07 508

原创 消费者常用API

消费者接口:org.apache.kafka.clients.consumer.Consumer官网文档:All Classes (kafka 2.1.0 API)常用API1.publicvoidseek(TopicPartitionpartition, longoffset)Overrides the fetch offsets that the consumer will use on the nextpoll(timeout). If this API is invoke...

2022-01-14 18:41:16 631

转载 Kafka:消费者组的消费进度监控

对于 Kafka 消费者来说,监控它们的消费进度非常的重要,或者说是监控它们消费的滞后程度。这个滞后程度有个专门的名称:消费者 Lag 或 Consumer Lag。所谓滞后程度,就是指消费者当前落后于生产者的程度。比方说,Kafka 生产者向某主题成功生产了 100 万条消息,你的消费者当前消费了 80 万条消息,那么我们就说你的消费者滞后了 20 万条消息,即 Lag 等于 20 万。通常来说,Lag 的单位是消息数,而且我们一般是在主题这个级别上讨论 Lag 的,但实际上,Kafka 监控 Lag 的

2022-01-14 14:27:12 694

转载 golang cpu 内存分析

top命令可以查看cpu使用情况的前几名list 函数名 可以查看函数的cpu使用情况最后一列为函数名称,其他各项内容意义如下:flat:当前函数占用CPU的耗时flat%:当前函数占用CPU的耗时百分比sum%:函数占用CPU的累积耗时百分比cum:当前函数+调用当前函数的占用CPU总耗时cum%: 当前函数+调用当前函数的占用CPU总耗时百分比例如:(pprof) top10Total: 2525 samples298 11.8% 11.8% 345 13

2022-01-13 10:53:45 667

转载 postgresql的事务隔离

1 介绍具有基本知识的DBA都知道,PostgreSQL在控制数据的一致性是通过使用一种多版本模型来维护的,也就是常说的多版本并发控制MVCC。这也就意味着每一个sql语句看到的都只是一小段时间的数据库快照,或者称为版本,而并不关心底层的数据文件当中的当前状态。这样带来的好处就是保护每一个会话中的事务不受到其他会话的影响,提供了非常好的事务隔离机制。MVCC并发控制模型相对于锁机制的优点在于,查询数据的锁请求与写数据的锁请求并不冲突,所以,读不会阻塞写,写也不会阻塞读。2 事务隔离其实说起事务隔

2022-01-02 20:54:10 245

转载 阻塞队列定时或定量读取

1、读取方式public class LogsConsumer implements Runnable{ private BlockingQueue queue; public LogsConsumer(BlockingQueue queue) { this.queue = queue; } /** * 消费者 */ public void run() { while (isRunning) {

2021-12-16 17:06:45 341

原创 golang中runtime.MemStats

Alloc: This is the same as HeapAllocHeapAlloc: HeapAlloc is bytes of allocated heap objectsHeapSys: 从操作系统为堆申请到的字节数,HeapSys=HeapInuse+HeapIdleHeapInuse: 正在使用的堆内存字节数。HeapInuse minus HeapAlloc estimates the amount of memory that has been dedicated to...

2021-12-15 10:36:30 760

原创 golang flag.string解析参数

参数 功能 name 命令行参数名称,比如 -b, -help value 默认值,未显式指定的参数,给出隐式的默认值,比如本例中-b未给出的话,*b=false usage 提示信息,如果给出的参数不正确或者需要查看帮助 -help,那么会给出这里指定的字符串 参考地址:https://blog.csdn.net/guanchunsheng/article/details/79612153flag使用前,必须首先解析:...

2021-12-14 14:34:17 1243

原创 postgreSQL 中如何查看当前数据库下的所有模式(Schema)

使用命令:SELECT * FROM information_schema.schemata

2021-10-12 10:41:05 20373 3

转载 kafka学习(一)

1 什么是kafkaKafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。2 为什么要使用 kafka,为什么要使用消息队列缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。解耦和扩展性:项目开始的时候,并不能

2021-09-24 08:48:10 118

转载 java 多线程(一)

前言今天给大家更新的是一篇关于多线程面试的文章,也是霸哥根据时下热门的面试内容给大家进行总结的, 本篇文章属于干货内容!请各位读者朋友一定要坚持读到最后,完整阅读本文后相信你对多线程会有不一样感悟,下次面试和面试官也能杠一杠相关内容了。1.什么是进程?进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程

2021-09-24 08:44:37 175

转载 k8s常见问题

Kubernetes一直是当今业界的流行语,也是最好的编排工具。它吸引了许多想要提升自己职业生涯的经验丰富的专业人士。HuaWei,Pokemon,Box,eBay,Ing,Yahoo Japan,SAP,纽约时报,Open AI,Sound Cloud等跨国公司也使用Kubernetes。我相信你已经知道这些事实,这也是促使你打开这个Kubernetes面试问题文章原因。在这篇关于Kubernetes面试问题的文章中,我将讨论在面试中提出的与Kubernetes相关的最重要问题。因此,为了您的理解,我

2021-09-23 17:01:56 338

原创 使用top命令查看docker容器里的各个java线程的CPU 内存耗用情况

步骤:1、连接到宿主机:ssh ubuntu@ip2、查看容器进程PID:docker container top 容器id3、执行:top -H -p PID

2021-09-10 15:25:29 1833

xml转json java源码

xml转json java源码 可正确运行,我写在一个java文件里了

2016-08-08

Java编程思想第四版源码

Java编程思想第四版源码 书上例题的代码 方便学习

2015-04-03

Java Socket发送和接收的例子

Java Socket发送和接收的例子 能正确运行 代码有注释

2015-04-03

hibernate3.jar

hibernate3.jar ssh要用到的包

2015-03-26

java 路由分组转发仿真

java 路由分组转发仿真 可成功运行

2015-03-26

mysql-connector-java-5.1.7-bin.jar

Mysql 驱动 mysql-connector-java-5.1.7-bin.jar

2015-03-26

Java.API文档

Java.API文档中文版

2014-02-19

JCreator中文版

JCreator中文版,用来开发java程序

2014-02-19

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

TA关注的人

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