自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Mac M1下 --android studio WiFi连接

初次运行项目在模拟器上,登陆发现连接不上服务器,发现wifi没连接

2022-06-21 15:20:04 3265 1

原创 Mac(m1)下npm install报错解决方案

报错内容:npm ERR! code 1npm ERR! path /Users/.../node_modules/chromedrivernpm ERR! command failednpm ERR! command sh -c node install.jsnpm ERR! Only Mac 64 bits supported.npm ERR! A complete log of this run can be found in:npm ERR! /Users/.../.np

2022-04-22 13:00:44 2409 1

原创 AtomicInteger原子操作类

java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray,AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。(1)创建一个AtomicInt

2022-03-02 22:10:40 256

原创 抽象类和接口的区别

class CompanyFind(View): def get(self, request): # result = PersonModel.objects.filter(name="亮亮") # print(result[0].age) route_test = PersonModel.objects(id=ObjectId('607d3cefec8941f06fe79be2')) print(route_test) ..

2021-10-25 13:27:19 246

原创 foreach和for循环的区别

foreach语句是java5中的新增,在遍历数组,集合的时候性能比一般的for循环好一些。foreach是for循环的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,反之则行不通。但是foreach并不能替代for循环。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、数组等。foreach虽然能遍历数组或者集合,但是只能用来遍历,因为其省略了下标(index)所以无法在遍历的过程中对数组或者集合进行修改而for

2021-10-12 13:57:55 3216

原创 Node.js连接Mongodb--MongoServerError: command find requires authentication

第一次尝试Node.js,连接mongodb是从菜鸟上找的教程,过程中在报MongoServerError: command find requires authentication错误,我知道是mongodb的认证出现了问题,就一直在找node.js连接mongodb的认证方式。我觉得最简单的就是在url进行认证:认证后:var url ='mongodb://username:[email protected]:27017/';认证前:(菜鸟教程)// var url = "mongo

2021-08-16 13:44:33 1923

原创 Spring事务管理

//事务的传播行为int getPropagationBehavior();//事务的隔离级别int getIsolationLevel();//事务的过期时间int getTimeout();//事务的读写特性boolean isReadOnly();//事务名String getName();

2021-06-01 16:06:27 57

原创 VirusTotal API--------Python代码实现访问VirusTotal,获取杀软结果

VirusTotal APIHow to install(1)安装vt-py最简单和推荐的方法是使用pip:$ pip install vt-py(2)或者,你可以直接从GitHub获得源代码并运行setup.py。为了获得代码,你可以克隆公共存储库:git clone git://github.com/VirusTotal/vt-py.gitcd vt-py(3)或者,下载最新版本的tarball并解压:tar -zxvf vt-py-X.Y.Z.tar.gz

2021-04-27 15:28:13 3015

原创 MongoDB中GridFS详细分析

GridFS是MongoDB中的一个内置功能,可用于存放大量小文件。GridFS用于存储和恢复那些超过16M(BSON文件限制)的文件,如果没有超过16M大小可以将数据保存在BSON数据中。 GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。 GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还...

2021-04-20 17:06:01 2833 1

原创 Django + Mongodb存储与获取图片

1.model.py文件class Animal(mongoengine.Document): genus = mongoengine.StringField(max_length=16) family = mongoengine.StringField(max_length=16) photo = mongoengine.FileField()2.view.py文件(存储图片)class CompanyImage(View): def get(self.

2021-04-20 16:43:16 329

原创 volatile关键字的作用

(1)保证内存的可见性 基本概念:可见性指的是线程之间的可见性,一个线程修改的状态对另一个线程是可见的。一个线程修改的结果,另一个线程能够马上就看到。 原理:废volatile变量进行读写的时候,每个线程先从主内存拷贝变量到CPU缓存中,如果计算机有多个CPU,每个线程可能会拷贝到不同的CPU cache中。但是volatile变量不会被缓存在寄存器或者是对其他处理器不可见的地方。保证每次读写变量操作都从主内存中读,跳过CPU cache这一步,当一个线程修改这个变量的值,新值对于其他线程而言是..

2020-12-17 15:24:37 718

原创 java为什么要重写hashCode和equals方法

(1)如果不被重写(原生)的hashCode和equals是什么样的?不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。 不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)。(2)对象在不被重写的情况下使用的是Object的equals方法和hashcode方法,从Object类的源码中可以得知默认的equals判断的是两个对象的引用指向的是不是同一个对象;而hashcode也是根据对象地址生成出一个整数数值;...

2020-11-26 14:28:10 344

原创 Java排序算法(一)----堆排序以及应用场景

(1)堆排序是利用堆这种数据结构而设计的一种排序算法,它是一种选择排序,它的最好,最坏,平均时间复杂度都为O(nlogn),是一种不稳定排序。(2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。(3)对于一个数组:大顶堆:tree[i] >= tree[2i+1] && tree[i] >= tree[2i+2] 小顶堆:tree[i] <= tree[2i.

2020-11-25 14:40:17 985

原创 BitSet----位操作对象

BitSet是位操作的对象,值只有0或1即false和true,内部维护了一个long数组,初始只有一个long,所以BitSet最小的size是64,当随着存储的元素越来越多,BitSet内部会动态扩充,最终内部是由N个long来存储,这些针对操作都是透明的。用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用用的时候既可根据某一个是否为0表示,此数是否出现过。一个1G的空间,有 8102410241024=8.5810^9bit,也就是可以表示85亿个不同的数。注意:在没有外部...

2020-11-04 14:05:15 164

原创 HashSet的去重原理---Java基础

1.Java中HashSet是用散列表实现的,散列表的大小默认为16,加载因子为0.75.2.去重原理:当hashset add一个元素A的时候,首先获取这个元素的散列码(hashcode的方法),即获取元素的哈希值。情况一:如果计算出的元素的存储位置目前没有任何元素存储,那么该元素可以直接存储在该位置上。情况二:如果算出该元素的存储位置目前已经存在有其他元素了,那么会调用该元素的equals方法与该位置的元素再比较一次,如果equals返回的值是true,那么该元素与这个位置上的元素就视为重复

2020-11-02 10:48:32 8591 2

原创 数据结构----队列,双向队列(Deque),循环队列

1.队列的基本知识 队列的基本特性就是先进先出(FIFO),也就是第一个进去的元素第一个出来。即队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表。Queue接口与List、Set同一级别,都是继承了Collection接口。2.队列按照实现方式也分为两种:①单向队列(Queue):只能在一段插入数据,另一端删除数据。②双向队列(Deque):每一段都可以进行插入数据和删除数据的操作。3.双向队列(LinkedList实现了Deque接 口) 双向队列是一个线...

2020-09-29 14:40:09 2455

原创 java数据结构-----队列(常用方法)

Java Queue常用方法(1)获取头元素的方法①poll()获取并移出队列的头,如果次队列为空,则返回null。②remove()获取并移出此队列的头,如果此队列为空则抛出NoSuchElementException异常(2)获取但是不移除①peek()获取队列的投,但是不移除队列的头,如果次队列为空,则返回null。②element()获取队列的头,但是不移除队列的头,如果队列为空,则将跑出NoSuchElementException异常。(3)添加元素的方法offer

2020-09-28 16:44:17 1409

原创 深度优先与广度优先的区别

区别:(1)首先二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归做法是采用队列。(2)深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次(二叉树的深度优先遍历比较特殊,可以细分为先序遍历,中序遍历,后序遍历)。 广度优先遍历:又叫层次遍历从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问节点,访问完一层就继续访问下一层,直到没有节点可以访问为止。(3)深度优先搜索算法,:不全部保留节点,占用空间少,有回溯操作(即...

2020-09-28 14:12:57 21226

原创 Java基础----枚举enum的用法

JDK1.5引入的枚举类型,可以把相关的常量分组到一个枚举类型里面,而且 枚举提供了比常量更多的方法。1.在java中定义常量一般使用public static final....,为什么使用static和final关键字(被static修饰的成员变量属于类,不属于某个对象,被final修饰的成员变量不可以被修改),现在有了枚举可以把相关的常量分组到一个枚举类型里面,而且枚举提供了比常量更多的方法。Java代码:public enum Color {RED("红色", 1)...

2020-09-25 15:37:30 720

原创 Activity工作流----表结构

1.资源库流程规则表(1)act_re_deployment 部署信息表(2)act_re_model 流程设计模型部署表(3)act_re_procdef 流程定义数据表2.运行时数据库表(1)act_ru_execution 运行时流程执行实例表(2)act_ru_identitylink 运行时人员表,主要存储任务节点与参与者的相关信息(3)act_ru_task 运...

2020-09-22 14:39:43 1182

原创 接口和抽象类区别以及应用场景

实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。构造函数:抽象类可以有构造函数;接口不能有。实现数量:类可以实现很多个接口;但是只能继承一个抽象类。访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。...

2020-06-22 16:14:36 2084

原创 Collection 和 Collections 有什么区别?

Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、Set 等。Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类,比如提供的排序方法: Collections. sort(list)。20. List、Set、Map 之间的区别是什么?List、Set、Map 的区别主要体现在两个方面:元素是否有序、是否允许元素重复。...

2020-06-22 16:13:43 556

原创 HashMap 和 Hashtable 有什么区别?

存储:HashMap 运行 key 和 value 为 null,而 Hashtable 不允许。线程安全:Hashtable 是线程安全的,而 HashMap 是非线程安全的。推荐使用:在 Hashtable 的类注释可以看到,Hashtable 是保留类不建议使用,推荐在单线程环境下使用 HashMap 替代,如果需要多线程使用则用 ConcurrentHashMap 替代。...

2020-06-22 16:13:01 227

原创 创建线程有哪几种方式?

创建线程有三种方式:继承 Thread 重写 run 方法;实现 Runnable 接口;实现 Callable 接口。

2020-06-22 15:12:50 212

原创 在 Java 程序中怎么保证多线程的运行安全?

方法一:使用安全类,比如 Java. util. concurrent 下的类。方法二:使用自动锁 synchronized。方法三:使用手动锁 Lock。手动锁 Java 示例代码如下:Lock lock = new ReentrantLock();lock. lock();try { System. out. println("获得锁");} catch (Exception e) { // TODO: handle exception} finally { S...

2020-06-22 14:59:17 3305

原创 每日一题——238. 除自身以外数组的乘积(java)

第一个for循环里面数组存放的是前i个元素相乘的结果(不包含第i个)。 第二个数组使用反向遍历,先求出来的是第i个数后面的乘积,与第i个数前面的乘积相乘。classSolution{publicint[]productExceptSelf(int[]nums){inta[]=newint[nums.length];for(inti=0,temp=1;i<nums.length;i++){...

2020-06-04 13:57:42 146

原创 剑指Offer——调整数组顺序使奇数位于偶数前面

在这道题目中,使用的时&(按位与运算)来判断奇数或者偶数,可以使用按位与运算进行奇偶数的判定,x&1==1,则说明x为奇数(将x转化成二进制数,若是奇数,则二进制最后一位一定为1,1&1=1)classSolution{publicint[]exchange(int[]nums){inti=0;intj=nums.length-1;inttmp;while(i<...

2020-06-01 14:22:28 98

原创 Java基础——运算符&(按位与)

即参加运算的两个数按照二进制进行按位与运算,运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1,也就是说两位同时为1结果才是1否则为0. 按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位判断,&计算中,只要有一个是0就算成0。...

2020-06-01 14:09:11 924

原创 Python——运算符

(1)算数运算符(2)比较运算符(3)赋值运算符(4)逻辑运算符(5)位运算符(6)成员运算符(7)身份运算符(8)运算符优先级

2020-05-28 14:57:36 85

原创 Python——python的数据类型

(1)Python与其他语言不一样,不需要事先定义变量的类型。(2)python和其他语言一样是通过等号来赋值的。(3)python可以同时为多个变量同时赋值,如a=b=c=1.(4)python中有五种标准的数据类型:Numbers(数字);String(字符串);List(列表);Tuple(元组);Dictionary(字典)。...

2020-05-28 14:24:36 410 1

原创 Redis——redis这么快,为什么还是单线程?

Redis 确实是单进程单线程的模型,因为 Redis 完全是基于内存的操作,CPU 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。①Redis 完全基于内存,绝大部分请求是纯粹的内存操作,非常迅速,数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度是 O(1)。②数据结构简单,对数据操作也简单。③采用单线程,避免了不必要的上下文切换和竞争条件,不存在多线程导致的 CPU 切换,不用去考虑各种锁的问题,不存在加锁...

2020-05-15 14:39:56 130

原创 Redis——Redis雪崩

缓存雪崩数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。比如一个雪崩的简单过程:1、redis集群大面积故障2、缓存失效,但依然大量请求访问缓存服务redis3、redis大量失效后,大量请求转向到mysql数据库4、mysql的调用量暴增,很快就扛不住了,甚至直接宕机5、由于大量的应用服务依赖mysql和redis的服务,这个时候很快会演变成各服务器集群的雪崩,最后网站彻底崩溃。...

2020-05-15 14:33:25 292

原创 Redis——Redis的数据类型

①String 是 Redis 最基本的类型,可以理解成与 Memcached一模一样的类型,一个 Key 对应一个 Value。Value 不仅是 String,也可以是数字。String 类型是二进制安全的,意思是 Redis 的 String 类型可以包含任何数据,比如 jpg 图片或者序列化的对象。String 类型的值最大能存储 512M。②Hash是一个键值(key-value)的集合。Redis 的 Hash 是一个 String 的 Key 和 Value 的映射表,Hash 特别适

2020-05-14 17:57:00 77

原创 Redis——Redis是什么

Redis是一个C语言开发的一个开源的高性能键值对的内存数据库。可以用作数据库,缓存,消息中间件等。它是一种NoSQL(泛指非关系型数据库)的数据库。性能优秀,数据在内存中,读写速度非常快,支持并发 10W QPS。单进程单线程,是线程安全的,采用 IO 多路复用机制。丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载。主从复制,哨兵,高可用。可以...

2020-05-14 17:55:25 139

原创 剑指offer——只出现一次的数字java

按位异或的运算规则:同0,异1。异或运算的性质:①任何数和 0做异或运算,结果仍然是原来的数。②任何数和其自身做异或运算,结果是 0。③异或运算满足交换律和结合律。classSolution{publicintsingleNumber(int[]nums){intsingle=0;for(intnum:nums){single^=num;}returnsi...

2020-05-14 11:54:56 101

原创 剑指offer——数组中重复的数字java

本题用到了hashSet去重原理。 首先hashSet的特点:无序的,不允许重复,底层数据结构是哈希表(它是基于hashMap实现的)。hashSet保证元素唯一性:依赖于hashCode()和equals()方法,在他的add方法中,添加了要添加对象再集合中是否存在,即迭代集合中的每个元素,和要添加的相比较,如果相同就不存。classSolution{publicintfindRepeatNumber(int[]nums){Set<Inte...

2020-05-13 13:30:25 114

原创 剑指offer——旋转数组中最小的数字java

二分法查找,也可以说是二分法的升级版,二分法要求数组有序并且不重复。[3,4,5,1,2] //首先比较中间的数字与最后一个数字, ①若是中间的数字较大,就转向右侧查找(也可以简单理解为查看中间的数字之后是否还是递增), ②若是中间数字小于最后的数字,就转向左侧查找(也可以简单理解为查看中间的数字之前有没有比中间的数字更小的), ③如果出现等于的情况,j--,查找i~j-1之间的数组。classSolution{publicintminArray(i...

2020-05-13 09:56:31 103

原创 剑指offer——用两个栈实现队列java

栈的特点是先进后出。 在本题中,定义了两个栈,stack1和stack2,其中,stack1是用来辅助stack2实现deleteHead()操作。即stack1中的元素相对于队列中的顺序是正序的,stack2中的元素是倒序的。所以stack2执行尾部插入,stack1执行头部删除。1.deleteHead():取头部元素操作。 若要取头部元素,需将元素从stack2中出栈,然后再压入stack1栈中,这是,stack1中栈顶元素为头部元素,也就是队列的首个元素。2.appendTa...

2020-05-12 17:29:52 82

原创 Hadoop--java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: 地址已在使用;

java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: 地址已在使用; For more details see: http://wiki.apache.org/hadoop/BindException at sun.reflect.NativeConstructorAccess...

2019-12-24 21:09:43 3642

原创 Hadoop--mkdir: Call From Linux01/192.168.1.3 to Linux01:9000 failed on connection exception

mkdir: Call From Linux01/192.168.1.3 to Linux01:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused.报错出现的原...

2019-12-23 16:44:41 9479 5

空空如也

空空如也

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

TA关注的人

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