自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA修饰符问题汇总

访问权限修饰符1.public:共同访问,对所有的类可见。2.producted:保护型访问,对一个包可见,对不同包的子类可见。3.default:默认权限访问。只对同一个包可见,注意不同包的子类不可见。4.private:私有访问,只对同一个类可见,其他都不可见。修饰符 同类 同包 子类 其他包 public √ √ √ √ protected √ √ √ × default √ √

2021-10-29 11:19:21 259 1

原创 Java Optional

为什么推出Optional空指针异常(NullPointerException)空指针异常特别容易在调用对象的某个方法上,我们平常判空时,可能是以下if (user != null) { Address address = user.getAddress(); if (address != null) { Country country = address.getCountry(); if (country != null) {

2021-09-14 15:29:54 104

原创 局部变量、引用、指针、static、深拷贝、浅拷贝

1.局部变量、全局变量、静态局部变量、静态全局变量『局部变量』:定义在函数内部,只有在函数内部才有效;特点:进来创建,出去销毁;『静态局部变量』:定义在函数内部,只有在函数内部才有效;但是只会在开始分配一次内存,不会消失;特点:进来创建,一直保留;『全局变量』:定义在所有函数之外,整个工程都可以使用;其他文件使用要加 extern 关键字;且需要注意,改动一处全局变量的值会影响所有相同全局变量;特点:开始创建,一直保留;『静态全局变量』:定义在所有函数之外,和全局变量一样,但是只有定义的文件才能使

2021-03-11 08:50:40 363

原创 生产者消费者

为什么要用生产者消费者生产者消费者模型通过一个容器解决生产者和消费者的强耦合(强度相互依赖)问题。生产者消费者彼此间不直接通讯,而通过阻塞队列进行通讯,即生产者生产完数据,不用等待消费者消费数据,直接扔给阻塞队列,消费者不找生产者要数据,而是从阻塞队列里取,阻塞队列相当于一个缓冲区,平衡生产者和消费者的处理能力。这个阻塞队列就是用给生产者和消费者解耦的。优点1.解耦:降低生产者和消费之间的依赖关系。2 支持并发。3 支持忙闲不均如何防止问题产生防止消费者读取垃圾文件,设置两个互补变...

2021-03-10 10:02:12 69

原创 进程与线程的关系

进程与线程的关系1.进程是资源分配的基本单位,线程是CPU调度和分派的基本单位2.线程是进程的一部分,一个线程只能属于一个进程,一个进程可以有多个线程,但至少有一个线程3.每个进程都有独立的代码和数据空间(程序上下文),程序间的切换开销大,线程可看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程间切换开销小4.在操作系统中能同时运行多个进程(程序)在同一个进程(程序)中多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

2021-03-10 09:44:07 4447

原创 智能指针

1.智能指针的实现原理智能指针的实现原理就是在一个类的内部封装了类对象的指针,然后在析构函数里对我们的类对象指针进行释放,因为类的析构是在类对象生命期结束时自动调用的,这样我们就省去了手动释放内存的操作,避免忘记手动释放导致的内存泄漏。2. C++11四种智能指针总结2.1 auto_ptr:auto_ptr以前是用在C98中,C++11被抛弃,头文件一般用来作为独占指针auto_ptr被赋值或者拷贝后,失去对原指针的管理auto_ptr不能管理数组指针,因为auto_ptr的内部实现中

2021-03-10 09:12:36 113

原创 JAVA基础:面向对象、C++区别

1.面向对象和面向过程的区别⾯向过程 :⾯向过程性能⽐⾯向对象⾼。 因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资 源,所以当性能是最重要的考量因素的时候,⽐如单⽚机、嵌⼊式开发、Linux/Unix 等⼀般采 ⽤⾯向过程开发。但是,⾯向过程没有⾯向对象易维护、易复⽤、易扩展。 ⾯向对象 :⾯向对象易维护、易复⽤、易扩展。 因为⾯向对象有封装、继承、多态性的特性, 所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,⾯向对象性能⽐⾯向过程低。...

2021-03-09 10:05:49 429

原创 SpringBoot

1.什么是SpringBoot随着新功能的增加,spring变得越来越复杂。如果启动一个 新的spring项目,我们必须为他 配置maven依赖,添加spring配置。springboot以最少的工作量 ,更加健壮的使用现有的 spring的功能。2.SpringBoot的优点1、减少开发时间2、使用JavaConfig使用避免xml配置3、避免大量的maven导入和各种版本冲突4、没有单独deweb服务器需要3.JavaConfig是什么1、提供了配置Spring IOC

2021-03-08 11:43:28 66

原创 JAVA和C++的区别

Java和C++的区别:1.运行过程的不同,Java源程序经过编译器编译成字节码文件,然后由JVM解释执行。而C++/C经过编译、链接后生成可执行的二进制代码。因此C++/C的执行速度比Java快。2.C++比Java执行速度快,但是Java可以利用JVM跨平台。4.Java是纯面向对象的语言,所有代码(包括函数、变量)都必须在类中定义。而C++中还有面向过程的东西,比如是全局变量和全局函数。5.C++中有指针,Java中没有,但是有引用。6.C++支持多继承,Java中类都是单继承的。...

2021-03-05 11:35:36 1146 1

原创 spring、springMVC、注解、Mybatis

1.为什么要用spring 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。2.spring 常用的注入方式有哪些?Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种: 构造方法注入 setter注入 基于注解的注入 3.Spring IoC 和

2021-02-26 13:59:04 95

原创 TCP、UDP、http和https区别

1.校验和发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。2.确认应答+序列号(累计确认+seq):接收方收到报文就会确认(累积确认:对所有按序接收的数据的确认)TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。...

2021-02-26 12:28:04 779

原创 三大范式

三大范式概念解释: 三大范式其实就是数据库建表的规范。第一范式:要求一张表中的数据每一列都是不可分割的原子项数据第二范式:消除部分依赖,要求一张表中的每一列都完全依赖于主键(针对于组合主键),也就是不会出现某一列只和部分主键相关第三范式:消除传递依赖,要求一张表中的每一列都和主键是直接依赖的,不是间接依赖举例分析:第一范式:要求一张表中的数据每一列都是不可分割的原子项数据例如下面的这张表就是不符合第一范式的,因为家庭信息和学校信息中的数据都不是原子项数据。修改之后:此时所有的

2021-02-26 11:47:08 8243 1

原创 Java基础:抽象类、接口、cookies、session

1.普通类和抽象类有哪些区别普通类不能包含抽象方法,抽象类可以包含抽象方法。 抽象类不能直接实例化,普通类可以直接实例化。 抽象类不一定非要有抽象方法 抽象类不能用final修饰,因为抽象类要被其他类继承3、什么是接口,它的特点是什么? interface 关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。 interface 的特性整理如下: 1.接口中的方法可以有参数列表和返回类型,但不能有任何方法体。 2.接口中可以包含字段,...

2021-02-26 09:05:40 150

原创 多线程、死锁

一、线程池1.线程池的作用  第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。  第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。  第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,监控和调优。2.常用的四种线程池(创建线程池的四种方法)①. newFixedThreadPool(int nThreads)创建一个固定长度的线程池,每当提交...

2021-02-25 18:29:02 70

原创 插入排序

插入排序:每一趟将一个待排序的元素,按其关键字的大小插入到已排序序列的适当位置,直到全部插入完成。常见的插入排序有以下三种。1、直接插入排序1)过程:直接插入排序是一种最简单的排序方法,其过程就是依次将每个元素插入到一个有序的序列中去。不过它有个缺点,就是当我们的数据基本有序时,每次插入都要移动位置,此时的插入效率是很低的。为了解决这种情况,又产生了拆半插入排序,希尔排序。工作原理:插入排序在实现上,从后面向前扫描(一开始从下标为1的元素开始,往下标为0的元素遍历),在扫描过程中,需要反复把

2021-02-21 12:08:09 134

原创 TCP建立连接的三次握手和断开连接的四次挥手

1.连接前的准备服务端:分配文件描述符–>绑定–>监听–>阻塞等待客户端连接。客户端:分配文件描述符–>发起连接请求–>阻塞等待服务器应答。2.三次握手第一次握手:主机A发送同步报文段(SYN)请求建立连接。第二次握手:主机B听到连接请求,就将该连接放入内核等待队列当中,并向主机A发送针对SYN的确认ACK,同时主机B也发送自己的请求建立连接(SYN)。第三次握手:主机A针对**主机B**SYN的确认应答ACK。3.四次挥手第一次挥手:当主机A发送数据完

2021-02-20 21:35:19 280

原创 平衡二叉树、B树和B+树

平衡二叉树概念 平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构; 特点 平衡二叉树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结构的数据减少无关数据的检索,大大的提升了数据检索的速度;平衡二叉树的数据结构组装过程有以下规则:(1)非叶子节点只能允许最多两个子节点存在。(2)每一个非叶子节点数据分布规则为左边的子节点小当前节点的值,右边的子节点大于当前节点的值(这里值是基于自己的算法规则而定的,比如hash值);总结平衡二叉树特点:(1)非叶子节

2021-02-20 20:53:43 1389

原创 链表和数组的区别

数组和链表的区别:二者都属于一种数据结构从逻辑结构来看1.数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。2.链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元素从内存存储来看1. (静态)数组从栈中分配空间,对于程序员方便快速,但是自由度...

2021-02-20 11:18:29 603

原创 HashMap

1.HashMap的特性1.HashMap存储键值对实现快速存取,允许为null。key值不可重复,若key值重复则覆盖。2.非同步,线程不安全。3.底层是hash表,不保证有序(比如插入的顺序)2.HashMap底层原理基于hashing的原理,jdk8后采用数组+链表+红黑树的数据结构。我们通过put和get存储和获取对象。当我们给put()方法传递键和值时,先对键做一个hashCode()的计算来得到它在bucket数组中的位置来存储Entry对象。当获取对象时,通过get获取到b

2021-02-18 23:57:21 154

原创 【计算机网络】输入网站后会发生的操作

从用户输入一个网址到网页最终展现到用户面前,中间的大致流程总结如下:1)在客户端浏览器中输入网址URL。2)发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。3)客户端浏览器与WEB服务器建立TCP(传输控制协议)连接。4)客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。5)WEB服务器响应请求,返回指定的URL数据或错误信息;如果设定重定向,则重定向到新的URL地址。6)客户端浏览器下载数据,解析HTML源文件,解析的过程中实现...

2021-02-18 21:49:16 325

原创 JVM内存结构、堆栈、JDK

1.JDK、JRE、JVM分别含义JDK(Java Development Kit) 是 Java 语言的软件开发工具包,提供了 java 的开发环境和运行环境。Jre是Java运行环境JVM是一种用于计算设备的规范,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域1.JVM主要组成部分JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engi

2021-02-18 17:38:40 93

原创 红黑树

平衡二叉树:任意节点的左右子树高度相差不能大于1红黑树的目的是为了解决动态插入、删除后二叉查找树性能退化的问题1.红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。2.红黑树的基本操作1.左旋 右旋左旋是将某个节点旋转为其右孩子的左孩子,再.

2021-02-18 11:16:04 149

原创 微信读书刷时长步骤

1.启动mumu, 右键cmd.exe, 以管理员身份启动cmd,跳转至abd的路径 D:\mumu\adb 终端内输入adb connect 127.0.0.1:7555adb devices #查看当前adb接口adb kill-server #杀掉所有进程此时如果出现5037端口错误则需检查端口5037是否被占用:netstat -ano | findstr "5037"杀死2348线程:taskkill -f -pid 2348...

2021-02-15 22:37:52 4416

原创 数据库面试问题:对索引的理解?

1.索引的作用?优点:1.通过给字段添加索引可以提高数据的读取速度 2.提高项目的并发能力和抗压能力。缺点:1.在创建索引的时候会占用存储空间。 2.在我们建立数据库的时候,需要花费的时间去建立和维护索引2.索引的四种作用?index ----普通的索引,数据可以重复第一种方式:CREATE INDEX indexName ON mytable(username(length)); 第二种方式:ALTER mytable ADD INDEX [i...

2021-02-14 20:35:02 226

原创 数据库面试问题:对数据库事务的理解

1.数据库事务是什么?事务由单独单元的一个或者多个SQL语句组成,在这个单元中,每一个MySQL语句都是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利执行。2.事务的特征?原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位, 事务中的操作要么都发生,要么都不发生。一...

2021-02-13 15:03:20 467

原创 教大家xshell连接虚拟机Ubuntu中ssh服务器拒绝了密码,请再试一次的问题该怎么解决

当我们将xshell的新建会话的用户名设置为root超级用户时,我们会发现,欸这个root用户登陆不进去啊,他会跳出来一个窗口,说是ssh服务器拒绝了密码,请再试一次的弹框,像下图那么我们就没有办法了,因为你再输几次都会是这种结果,所以我们就在网上找技术帖,有的博客就会教我们设置/etc/ssh/sshd_config里面的一些登陆root的权限,在此我教大家设置好root权限后还会出现此类问题的...

2018-07-09 08:20:56 28904 19

原创 Linux如何在没安装vmtools 用Ubuntu查看自己的IP

在没安装VMware-tools时,网上有很多种方法说输入什么ifconfig -a 什么什么的才能看ip 这都很繁琐 我发现一个不用安装VMware-tools就可以查看IP的好方法,先进入终端,直接输入    ip addr 那个inet后面的 192.168.52.129就是用Ubuntu查看的ip...

2018-07-07 17:46:57 756

空空如也

空空如也

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

TA关注的人

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