自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git工作常用操作

Git命令熟悉git merge和git merge --no-ff的区别–no-ff指的是强行关闭fast-forward方式。fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于 “快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commitgit merge --squash 是用来把一些不必要commit进行压缩,比如说,你的分支在开发的时候写的 commit很乱,那么我们合并的时候不希望把这些历史co

2021-07-12 17:30:37 611

原创 浏览器输入网址之后发生了什么?------url全过程

浏览器输入网址之后发生了什么一、DNS域名解析域名系统(英文:Domain Name System,缩写:DNS)1、浏览器自己的DNS缓存中找,没有就下一步2、在操作系统的DNS缓存中找3、操作系统本地自己的host文件中找4、操作系统就向本地域名服务器发起域名解析请求(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。如果找不到,运营

2020-09-23 14:34:47 2650

原创 面试必问---jvm入门

大家都说java是一个能够跨平台的语言,就是写的java代码,能在window、mac、linux里面运行,那个这个java到底是怎么跨平台的?现在我们写了一个java代码,后缀是.java,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。jvm:jvm在整个jdk中处于最底层,负责于操作系统的交互,用来屏蔽操作系统环境,提供一个完整的java运行环境类加载器:1.自定义加载器继承java.

2020-09-23 14:30:18 157

原创 oop原则

OOP设计原则:OCP(Open-Closed Principle),开放封闭原则:软件实体应该扩展开放、修改封闭。实现:合理划分构件,一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里;一种可变性不应当与另一个可变性混合在一起。**DIP(Dependency Inversion Principle),依赖倒置原则:**摆脱面向过程编程思想中高层模块依赖于低层实现,抽象依赖于具体细节。OOP中要做到的是,高层模块不依赖于低层模块实现,二者都依赖于抽象;抽象不依赖于具体实现细节,细

2020-09-23 14:17:06 192

原创 面试必问---TCP连接

TCP连接TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求!三次握手Client首先发送一个连接试探,ACK=0 表示确认号无效,SYN = 1 表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq = x 表示Client自己的初始序号(seq = 0 就代表这是第0号包),这时候Client进入syn_sent状态,表示客户端等待服务器的回复Server监听到连接请求报文后,如同意建立连

2020-09-23 14:16:03 1587

原创 Spring和数据库的事务

Spring和数据库的事务1.首先说明一下事务并发引起的三种情况:1) Dirty Reads 脏读一个事务正在对数据进行更新操作,但是更新还未提交,另一个事务这时也来操作这组数据,并且读取了前一个事务还未提交的数据,而前一个事务如果操作失败进行了回滚,后一个事务读取的就是错误数据,这样就造成了脏读。2) Non-Repeatable Reads 不可重复读一个事务多次读取同一数据,在该事务还未结束时,另一个事务也对该数据进行了操作,而且在第一个事务两次次读取之间,第二个事务对数据进行了更新,那么

2020-07-13 12:04:46 396

原创 数据库的锁---让你面试不再害怕

数据库的锁InnoDB,是MySQL的数据库引擎之一,在5.5后为MySQL的默认存储引擎,另外一种是MyISAM简单介绍区别:1、MyISAM是非事务安全的,而InnoDB是事务安全的2、InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败3、MyISAM锁的粒度是表级的,而InnoDB支持行级锁4、InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保

2020-07-13 12:04:00 1990

原创 leetcode做题笔记----435. 无重叠区间

435. 无重叠区间给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。

2020-07-10 17:31:26 311

原创 leetcode做题笔记---66. 加一

leetcode66. 加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。想法:1、数组转成数字加一 后转成数组 麻烦放弃2、直接数组处理 判断最后一位是不是9

2020-07-10 17:30:36 273

原创 leetcode做题笔记----67. 二进制求和

leetcode[67. 二进制求和]给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”解题:1两个字符串长度要保持一致,少掉的要用0补全2字符串计算完后,字符串是倒着的,你要reverse翻转代码:public static String addBinary(String a, S

2020-07-10 17:29:54 280

原创 Lock和synchronized----心上锁用哪个呢?

Lock和synchronizedsynchronized的缺点释放对象的锁有两种情况:程序执行完同步代码块会释放代码块。程序在执行同步代码块是出现异常,JVM会自动释放锁去处理异常。如果获取锁的线程需要等待I/O或者调用了sleep()方法被阻塞了,但仍持有锁,其他线程只能干巴巴的等着,这样就会很影响程序效率。因此就需要一种机制,可以不让等待的线程已知等待下去,比如值等待一段时间你不想等了,想去干别的事情先,Lock锁就可以办到,而synchronized就不行,不能中断。(lock中断只

2020-07-10 17:26:32 433

原创 java 中的锁----锁的基础和升级过程

java 中的锁----锁的基础和升级过程锁的类型锁从宏观上分类,分为悲观锁与乐观锁。乐观锁:顾名思义,就是一个很乐观的锁,他就认为你一直不会上锁,直到用的时候,判断一下你会不会上锁。即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。java中的乐观锁基本都是通过CAS操作实现的,CA

2020-07-10 17:24:02 1887

原创 2020年了,你还不知道JAVA8新特性??

Java8新特性lambda表达式在JDK8之前,一个方法能接受的参数都是变量,例如: object.method(Object o)那么,如果需要传入一个动作呢?比如回调。那么你可能会想到匿名内部类。//传统方式:interface Printer{ public void printer(integer id);}class Operation(){ public static void create(integer id,Printer printer){ p

2020-07-10 17:21:25 319

原创 有状态和无状态---你懂了?

有状态和无状态基本概念:有状态就是有数据存储功能。**有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。**在不同方法调用间不保留任何状态。无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类,是线程安全的。class statefulbean{ //有实体类,要存取信息,在多线程下,是共享,非线程安全 User user; userget(); use

2020-07-10 17:18:58 849

原创 virtualbox安装ubuntu18超详细教程

ubuntu 下载地址,里面有service和desktop版本添加链接描述上一篇写了怎么安装virtualbox,里面也有下载virtualbox的资源添加链接描述小编下载的是18版本的ubuntuservice版本,你可以按你自己的需求下载我们先打开下载好的virtualbox点击新建,名称可以自己写,把该系统要下载的插件和资源找个目录放下,点击下一步给该系统分配运行内存,小...

2020-03-17 16:50:09 2782

原创 virtualbox6.0.18

virtualbox6.0.18下载地址 windows64https://download.virtualbox.org/virtualbox/6.0.18/VirtualBox-6.0.18-136238-Win.exe打开安装好的exe可以自己选择安装路径,我一般都安装在d盘下面下一步,自己选择要那个下载完成,打开该软件下一篇写virtualbox怎么安装ubuntu18servic...

2020-03-17 16:17:58 740

原创 java I/O输入输出流小总结

缓冲流的作用:缓冲流是处理流的一种, 它依赖于原始的输入输出流, 它令输入输出流具有1个缓冲区, 显著减少与外部设备的IO次数, 而且提供一些额外的方法.优势:减少内存和硬盘之间的交流使用一些缓冲流的额外的方法.(一下Buffered开头都是缓冲流,能够提高读写速度)字节流​ 输入流​ InputStream​ int read(): 一次读取一个字节​ ...

2020-03-07 01:05:05 260

空空如也

空空如也

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

TA关注的人

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