自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java中的length和length()

java中的求长度length有时有小括号,有时没有小括号,到底什么时候该加小括号呢?总结:Java中String类定义的字符串对象,用length()求它的长度。若是数组求长度,均可使用他们自己的属性length。即:数组不加,字符串要加对求长度的总结:...

2020-12-27 17:53:38 2363

原创 java中的参数传递(值传递、引用传递)

java中的值传递和引用传递:值传递:(形式参数类型是基本数据类型和String):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。引用传递:(形式参数类型是引用数据类型参数除去String):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方

2020-11-28 13:34:31 370

原创 java中的多态是怎么实现的?(JVM角度)

对于java中多态概念的理解一直是面试常问的问题,所以今天花了一些时间好好地整理了一下,力求从java虚拟机的角度来分析和理解多态。 一、认识多态 1、方法调用 在Java中,方法调用有两类,动态方法调用与静态方法调用。 (1)静态方法调用是指对于类的静态方法的调用方式,是在...

2020-10-11 23:09:56 5340 1

原创 Java锁消除

概述锁消除是Java虚拟机在JIT编译是,通过对运行上下文的扫描,去除不可能存在共享资源竞争的锁,通过锁消除,可以节省毫无意义的请求锁时间。实验看如下代码:package com.winwill.lock;/** * @author qifuguang * @date 15/6/5 14:11 */public class TestLockEliminate { public static String getString(String s1, String s2) {

2020-08-24 11:28:15 596

原创 Java之重写Object类的toString方法

package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:16:36 * */public class Student { private String name; private int age; //空参构造 public Student() { } //有参构造 public Student(String name, int age) { this.name = name; thi

2020-07-27 05:23:41 2483

原创 Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。下面重点介绍单线程设计和IO多路复用核心设计快的原因。为什么Redis是单线程的1.官方答案因为Redis是基于内存的操作

2020-07-13 13:32:43 311 1

原创 数据结构中的各种树

数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。1、二叉查找树(二叉排序树)二叉查找树是一种动态查找表(图a),具有这些性质:(1)若它的左子树不为空,则左子树上的所有节点的值都小于它的根节点的值;(2)若它的右子树不为空,则右子树上所有节点的值都大于它的根节点的值;(3)其他的左右子树也分别为二叉查找

2020-07-06 12:09:16 846

原创 Mysql 隔离级别及实现(MVCC)

Mysql 隔离级别及实现脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务

2020-07-05 01:56:48 615 1

原创 为什么要用异步消息队列

什么是消息队列?所谓消息队列,就是一个以队列数据结构为基础的一个实体,这个实体是真实存在的,比如程序中的数组,数据库中的表,或者redis等等,都可以。首先我们说说为什么要使用队列,什么情况下才会使用队列?我的理解是,那些实时性要求不高,且比较耗时的任务,是队列的最佳应用场景。比如说我在某网站注册一个账号,当我的信息入库注册成功后,网站需要发送一封激活邮件,让我激活账号,而这个发邮件的操作并...

2020-04-15 03:43:28 604

原创 粒计算

粒计算 (GrC,Granular Computing) 是一个新兴的、多学科交叉的研究领域,是当前计算智能领域中模拟人类思维和解决复杂问题的新方法,它涵盖了所有有关粒度的理论、方法和技术。粒计算起源于人工智能、机器学习、数据挖掘与智能系统等领域,从更高层面对这些领域进行概括分析,它强调对现实世界多层次与多视角的理解与描述,从而得到问题的粒结构表示。粒计算将结构化思维方式、结构化问题求解与结构化信...

2020-04-12 04:15:52 8956

原创 HATEOAS

简介HATEOAS(Hypermedia as the engine of application state)是 REST 架构风格中最复杂的约束,也是构建成熟 REST 服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应,而 REST 服务本身的演化和更新也变得更加容易。在介绍 HATEOAS 之前,先介绍一下 Richardson 提出的 RES...

2020-04-11 19:16:59 164

原创 springMVC视图解析原理学习

SpringMVC如何解析视图概述不论控制器返回一个String,ModelAndView,View都会转换为ModelAndView对象,由视图解析器解析视图,然后,进行页面的跳转。视...

2020-04-11 18:41:42 216

转载 RAFT算法详解

RAFT算法详解 转载 ...

2020-04-05 16:27:05 897

原创 详解native方法的使用

目录结构:关于native关键字使用native关键字使用步骤案例编写.java文件编译.java文件获得.h文件编写hello.cpp文件部署hello.dll文件运行HelloWorld....

2020-04-04 13:33:13 1941

原创 为什么说ArrayList是线程不安全的?

一.概述对于ArrayList,相信大家并不陌生...

2020-04-02 00:49:39 162

转载 Spring---Bean的作用域和生命周期

前言1. bean的作用域1.1 singleton——唯一 bean 实例1.2 prototype——每次请求都会创建一个新的 bean 实例1.3 request——每一次HTT...

2020-04-01 04:16:06 123

转载 java日志使用

 写在前面 log4j需要导入的包 添加配置文件 建立类文件+主函数 修改配置文件,将日志输出到console 设定输出的格式 将日志输出到文本文件 每一小时、每天、每...

2020-03-30 14:01:39 182

原创 C++ 函数参数

实参与形参类型不匹配时,实参自动转化为形参类型return语句 返回数据的类型与函数类型不匹配时,自动转化为函数的类型函数声明 事先通知编译系统,可以不写形参名example:float add(float)技巧编程时把main函数写到最前面,每次需调用函数时都要写函数原型来声明函数example:void swap(int,int)参数指针作为函数参数声明 void swap(...

2020-03-27 17:05:03 222

原创 jsp和java前后台的交互

后台返回前台1,java生成infoStuString private String infoStuString; public String getInfoStuString() { return infoStuString; } public void setInfoS...

2020-03-26 01:26:00 1173

转载 VS检测内存泄漏,定位泄漏代码位置方法

1、什么是内存泄漏?内存泄漏指的是在程序里动态申请的内存在使用完后,没有进行释放,导致这部分内存没有被系统回收,久而久之,可能导致程序内存不断增大,系统内存不足……引发一系列灾难性后果;(关...

2020-03-25 20:48:28 349

原创 各类锁(互斥锁,自旋锁,读写锁,乐观锁,悲观锁,死锁)

互斥锁:当有一个线程要访问共享资源(临界资源)之前会对线程访问的这段代码(临界区)进行加锁。如果在加锁之后没释放锁之前其他线程要对临界资源进行访问,则这些线程会被阻塞睡眠,直到解锁,如果解锁时有一个或者多个线程阻塞,那么这些锁上的线程就会变成就绪状态,然后第一个变为就绪状态的线程就会获取资源的使用权,并且再次加锁,其他线程继续阻塞等待。读写锁:也叫做共享互斥锁,读模式共享,写模式互斥。有点像...

2020-03-24 22:35:28 562

原创 操作系统-----缓存和内存

高速缓存(cache)由于CPU的读取速度比内存的读取速度快,如果持续在CPU和内存之间一直来回不停的交换的话,那么CPU的运转周期就会出现了很大的浪费,所以出现了高速缓存,提供缓存的目的一般是为了让数据访问的速度适应CPU的处理速度,一般是使用硬件实现的指令预测与数据预取技术----尽可能的将要使用的数据预先从内存中取到缓存中。如今缓存的概念已经扩充,不仅是CPU和主内存之间有Cache,而...

2020-03-24 02:35:43 519

转载 段式管理和页式管理

内存管理第一谈:段式管理和页式管理  对于内存管理这个操作系统中庞大的体系,实在是容易让人望而止步,市面上介绍这块知识的书籍其实很多,但是由于书面语言的缘故,总感觉有些...

2020-03-24 02:16:10 454

原创 页式管理

内部碎片:已经被分配出去的的内存空间大于请求所需的内存空间。外部碎片:还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。 Window内存管理方式主要分为:页式管理、段式管理、段页式管理。1、页式管理用户程序的逻辑地址空间被划分成...

2020-03-24 01:57:59 646

原创 缺页异常

页式管理机制通过页面目录,页面表,将每一个线性地址(虚拟地址)转换成物理地址,但并不是每一次CPU都能访问到相应的物理内存单元,因此这样映射便失败了,会产生缺页异常;页错误,又叫页缺失,计算机系统术语,是指在引入分页机制的操作系统中,一个进程的代码和数据被放置在一个虚拟的地址空间中,地址空间按固定长度划分为好多页。同时,物理内存也按固定长度划分为好多帧。因为物理内存小而硬盘空间大,为了在内存里...

2020-03-24 00:51:20 608

原创 文件映射mmap

磁盘与内存的映射就是文件映射,说这个问题之前我们先说下swap,因为这个问题让我很容易想起swap,linux swap 是交换分区的意思,在内存不够的情况下,操作系统先把内存与磁盘的swap区进行一个“映射”,然后把这些内存解放出来放入内存中,为之后的进程的腾出一块内存空间,等到自己的进程再次被唤醒时候,再把磁盘里面的内存换进来。这里有文件和内存之间的映射奥,可是mmap与swap设计...

2020-03-23 01:22:33 178

原创 线程调度为什么比进程调度更少开销?

线程调度为什么比进程调度更少开销?在对比进程调度...

2020-03-22 22:44:10 707

原创 Linux中wait()函数

 编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程。这里简单介绍一下系统调用函数:wait()函数原型是...

2020-03-22 01:39:19 265

转载 exec函数

 (1)exec函数说明fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法...

2020-03-22 00:31:59 263

原创 execlp

execlp c语言中执行系统命令的函数execlp() 会从PATH环境变量所指的目录中查找符合参数file的文件找到后就执行该文件, 第二个参数开始就是执行这个文件的 args[0],args[1] 最后一个参数用(char*)NULL结束android开发中 execlp函数对应android的path路径为system/bin/目录调用格式execlp(“am”, “am”, “...

2020-03-22 00:12:17 746

原创 unordered_set使用介绍

unordered_setC++ 11,新的关联...

2020-03-21 17:23:17 1149

原创 C++拷贝构造函数(复制构造函数)

一、拷贝构造函数的形式复制构造函数是构造函数的一种特殊情况。因为类的对象包含各种成员变量,在发生拷贝时不能和普通对象一样来拷贝,所以我们需要使用拷贝构造函数来进行对象拷贝。拷贝构造函数只有一...

2020-03-20 00:53:04 622

原创 C++内联函数

C++内联函数 一、内联函数1、C++中的const常量可以替代宏常数定义,如:const int A = 3;   #define A 3C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!) 2、C++中推...

2020-03-17 01:09:39 106

原创 C++函数重载、内联函数和引用

函数重载在同一作用域下,函数名相同,参数列表不同的函数构成重载关系。函数重载机制C++代码在编译时会把函数的参数类型添加到参数名中,借助整个方式来实现函数重载,也就是说C++函数在编译期间经历了换名的过程。因此,C++代码不能调用C函数(C语言编译器编译出的函数)extern “C”告诉C++编译器按照C语言的方式声明函数,这样C++就可以调用C编译器编译出的函数(C++的目标文件可以...

2020-03-17 01:06:21 123

原创 python的__init__和__new__方法

一、文字概述 __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。 __init__是当实例对象创建完成后被调用的,然后设置对象属性的一...

2020-03-16 10:22:35 385

原创 大端 / 小端,三种判断方法

1.什么是大端 / 小端? 2.为什么会有大小端...

2020-03-15 14:20:08 410

原创 协程

什么是进程和线程?进程是应用程序的启动实例,进程拥有代码和打开的文件资源、数据资源、独立的内存空间。线程从属于进程,是程序的实际执行者,一个进程至少包含一个主线程,也可以有更多的子线程,线程拥有自己的栈空间。操作系统中的进程和线程对操作系统而言,线程是最小的执行单元,进程是最小的资源管理单元。无论是进程还是线程,都是由操作系统所管理的。线程的状态线程具有五种状态:初始化、可运行、运行...

2020-03-15 01:45:32 105

原创 CAS

CAS一、什么是CAS概念CAS(com...

2020-03-15 01:27:53 49

原创 SMOTE之类不平衡过采样方法

本文是接着上篇MAHAKIL过采样方法写得。SMOTE方法算是现在比较流行的过采样方法了,其分为SMOTE-Regular, SMOTE-Borderline1, SMOTE-Borderli...

2020-03-14 18:17:52 753

原创 Linux下进程间通信的几种方式方法

Linux下进程通信的八种方法:管道(pipe), 命名管道(FIFO), 内存映射(mapped memeory), 消息队列(message queue), 共享内存(share...

2020-03-14 16:24:11 401

空空如也

空空如也

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

TA关注的人

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